广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3008 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
mingsheng
个人头像
个人文章 个人相簿 个人日记 个人地图
知名人士
级别: 知名人士 该用户目前不上站
推文 x2 鲜花 x16
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[影画] [转贴] 下一代DirectX
原文出处:http://www.beyond3d.com/articles/directxnext/index.php?p=4

通用I/O模型
Unified shading model会带来一系列有趣的结果,其中有一些无法很快能得知。其中最显着的莫过于在vertex shader中处理texturing。这对于通用目的尤其重要,但并不仅限与此。另外一个显着后果是,拥有可以在vertex shader中直接写vertex buffer的能力,允许为今后的passes快取结果。这在使用high-order surface mapping和high-order displacement mapping时显得尤为重要。允许你执行一次tessellate、displace然后将结果储存于在显示记忆体中的vertex buffer中,在以后所有的passes中只需执行一个简单的搜寻(lookup)就能达到利用先前结果的目的。

也许最显着的特征发生在,将虚拟显示记忆体的哲学和上面提到的两个特征组合在一起时。有了虚拟显示记忆体,从texture中读资料和写资料的程序变得与读记忆体或写记忆体非常相似。而因此,导致了下一代DirectX中的通用IO模型的诞生。你现在可以在显示记忆体中写入任何资料,然后在pipeline的任意stage中都可以读取,甚至在后一个pass中也行。这些资料可以不必是vertex,pixel,或者其他图形资料——你拥有了对当前索引和vertex buffer的访问能力,你就可以为轮廓边的检测产生连通性讯息。事实上,你应该可以在GPU上完成的一个pass中,产生所有的shadow volumes,然后将结果储存于在显示记忆体中,让以后的passes使用。但这还有个小问题:在几何缩放(tessellation)之外,当前的显示卡不能直接新增三角形。

拓扑学处理器
实际上,当前的图形处理器可以在使用点线等primitives时,新增新三角形。多数主流图形处理器只能将三角形光栅化(rasterizing),意味着所有的点线要在某一时刻转换成三角形。而任一点或者线要由2个三角形表示,这就需要2到6倍的顶点数(vertices)(取决于你的索引方式),而这一步当然越晚做越好。这样做是有好处的,而且实际上,对于shadow volume的操作也遇到同样的问题。这就需要将pipeline中这个部分做为完全可编程的(programmable),且先前阻塞的场景可以不依赖于主处理器。Microsoft将它称为拓扑学处理器(Topology Processor),并允许shadow volume和fur fin extrusions得以完全在图形处理器上完成。其他如proper line mitering,point sprite expansion和single pass render-to-cube也同样可以在图形处理器上完成。

拓扑学处理器在逻辑上是和tessellation元件分开的。这完全可能,然而一个设计合理的programmable primitive processor应该对这两方面都能进行操作。

增强的Tessellator
高次表面(higher-order surfaces)由DirectX 8首先推出,而很多硬体支持该特性(nVidia以RT-Patches的形式,ATI以N-Patches的形式),但由于他们的功能限制以及过于晦涩难懂,所以一直没有什么人对它们感兴趣。因此,所有硬体厂商都放弃了对高次表面的支持。直到DirectX9的出现,带来了adaptive tessellation(自适应几何缩放)和displacement mapping(置换贴图)。高次表面现在使用起来依然让人痛苦不堪,而且功能很受限制;但displacement mapping很好的解决了它的问题,并且已有不少开发者开始关注它。但不幸的是,硬体厂商已经放弃了对高次表面的支持,所以对displacement mapping感兴趣的开发者也只能因缺乏硬体支持而被迫放弃它。公平的说,对displacement mapping的实现一开始有点偏重Matrox公司,所以毫不奇怪没有很多硬体厂商支持它(甚至连Matrox自己也放弃了对它的支持)。有了符合pixel/vertex shader 3.0的硬体,情况可能会有所改观,硬体厂商可能会重拾高次表明和displacement mapping的旧局。但这还有一个关于所有当前DirectX高次表面的公式限制问题(formulations limitations)。

如果所有硬体都能直接支持所有普通高次表面的公式,如Catmull-Rom,Bezier以及B-Splines(B样条),表面细分(subdivision surfaces),所有的圆锥公式(all the conics)和所有合理的公式,那将是非常酷的一件事。若所有这些都能被用于自适应几何缩放那就更好了。如果DirectX支持所有这些高次表面,那么离真正使用它们的日子就不远了——你可以从你喜欢的DCC应用程式(Digital Content Creation Application)中汇入高次表面,而现有系统中所有的问题全部一扫而光。幸运的是这就是Microsoft将要对下一代DirectX所要做的。有了displacement mapping和新的拓扑学处理器,我们真没有理由不去使用这些新特性了!(当然还得硬体支持)

普通API的改进
不是所有的增强都是新特性方面的——毕竟原有的DirectX接头中还存在不少累赘,特别是处理状态改变(state changes)的。当前,如果你想绘图一幅场景,它会分解成一系列批次处理的几何体,这些几何体拥有完全相同的textures,储存于在vertex buffer的同一连续块中,使用完全相同的vertex shaders,使用相同的转换矩阵等等。一般来说,如果在几何体中的一块,只要有一点点的不同,它们就必须分开来绘图。问题来了:对于每个绘图使用来说,这样的预先配置过大了。因为绘图使用指令必须通过DirectX接头,通过显示卡驱动,最终到达图形处理器。这些问题只能由操作系统提供的高效接头来解决,很显然,Microsoft计划在Longhorn中搞定这些问题。

还有一些减少预先配置的方法:通过允许网格(mesh)在图形处理器中实现具化(instancing)。网格的具化是一种程序:将一个网格新增它的多个实例,使用不同的转换,不同的textures,甚至不同的displacement maps。

实际上,有了通用IO模型,应该可以将所有可见的textures和转换矩阵放进一个阵列中,可由shader访问,将所有共享一个shader的几何体当作一个大批次处理,并让shader决定对哪个几何体集合使用哪个texture或者哪个转换矩阵。这种将所有状态管理移交给图形处理器的做法,将大大减少CPU在绘图时的工作负担。

在Pixel Shader中访问画格快取
你常常会想在某个图像上做些计算,比如做数位分阶(digital grading),色彩矫正(color correction)或者tone mapping。然而在DirectX9中,你无法读取 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被Maybe在2004-10-17 07:59重新编辑 ]



献花 x0 回到顶端 [楼 主] From:未知地址 | Posted:2004-10-16 11:51 |
takada 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

辛苦你了~~感谢提供让我长了点见识^^" 表情 表情 表情


数位男女 UD 团队
献花 x0 回到顶端 [1 楼] From:未知地址 | Posted:2004-10-16 15:13 |
鸭蛋
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x8
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

赞,大大的文章总是这么有深度和长度 表情


献花 x0 回到顶端 [2 楼] From:台湾省 固网公司 | Posted:2004-10-16 18:00 |
DDT
个人头像
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x2 鲜花 x25
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

哇~还蛮有深度的,要多充实了 !感谢! 表情


献花 x0 回到顶端 [3 楼] From:台湾省 SONY公司 | Posted:2004-10-16 18:35 |
kc038641
个人头像
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x6 鲜花 x15
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

永元赶不上 电脑进步的速度啊


献花 x0 回到顶端 [4 楼] From:台湾省 CZ88.NET | Posted:2004-10-16 22:07 |
真田
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x29
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

新知识,
增广一下见闻,

谢谢分享.


Enjoy
Always Coca-Cola
献花 x0 回到顶端 [5 楼] From:未知地址 | Posted:2004-10-18 14:52 |
codeboy 手机
个人文章 个人相簿 个人日记 个人地图
社区建设奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x6 鲜花 x331
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

果然是增广见闻的文章~收了~ 表情



连结有问题请来信,我会尽快修正~^^
通报时请附上是"哪一篇失效"...这样我才能去修正~麻烦各位好心人士了~

[连结失效通报][ 网页.伺服.程式 讨论区]
----------------------在世界中心呼喊爱情----------------------
深深思念一个人的时候,我们不知不觉的地活在世界的中心...
献花 x0 回到顶端 [6 楼] From:未知地址 | Posted:2004-10-18 15:55 |
ttncwnfbi 手机
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x3
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

好深的一篇文章啊 看不懂


献花 x0 回到顶端 [7 楼] From:台湾台湾索尼 | Posted:2005-02-09 23:57 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.073257 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言