正在阅读:详细剖析DirectX10和统一Shader架构威力详细剖析DirectX10和统一Shader架构威力

2007-02-02 11:38 出处:PConline 作者:海盗旗 责任编辑:zhouxijian

  微软在2007年1月31日正式发布举世瞩目的Windows Vista操作系统,而作为重头戏的DirectX 10也史无前例得离我们那么近。本文会DirectX10和统一Shader架构做一些介绍。由于目前NVIDIA的G80为唯一硬件支持DirectX 10的显卡,因而在下面的介绍下,会用G80作为例子。

  DirectX 10最大的革新就是统一渲染架构(Unified Shader Architecture)。目前的GPU架构还是沿用的分离式渲染架构,目前NVIDIA的G71和ATI的R580都是采用这样的架构,顶点渲染和像素渲染各自独立进行,而且一旦当架构确定下来,顶点和像素shader单元的比例就会固定下来。不过分离式渲染架构设计更为简便而且经验丰富,例如NVIDIA的NV40发成到后来的G70/G71,又或者是R420到R580,性能都得到显而易见的提升。

 

 

详细剖析DirectX10和统一Shader架构威力

  微软认为这种分离渲染架构不够灵活,不同的GPU,其像素渲染单元和顶点渲染单元的比例不一样,大大限制了开发人员自由发挥的空间。不同的应用程序和游戏对像素渲染和顶点渲染的需求不一样,导致GPU的运算资源得不到充分利用。微软在DirectX 10中提出了统一渲染架构,在通用和独立的shader单元中可以执行不同的shader程序,包括vertex、pixel和在DirectX 10中首次提出的geomery shader。而且随着这些通用独立的shader单元功能的不断完善,日后有望执行更多的shader程序,例如物理效果。

详细剖析DirectX10和统一Shader架构威力

  相对顶点渲染来说,像素渲染将面临大规模使用纹理所带来的材质延迟,这是统一渲染架构急待解决的问题。不过在Geforce880 GPU里面,这种情况得到很大的改善,分组的steam processor都用联立一定数量的texture单元和L1/L2高速缓存。

详细剖析DirectX10和统一Shader架构威力

详细剖析DirectX10和统一Shader架构威力
(更多的纹理意味着物体表面精度更真实)

  Shader Modle 4.0无论是vertex还是pixel指令,最大指令长度相当于Shader Modle 3.0的128倍(64K),越长越复杂的指令可以产生越真实的画面,Shader Modle 4.0的寄存器也激增到4096个,Constant寄存器采用16×4096阵列。input寄存器采用16/32规格等,上述指标都比以前的DirectX有明显的改进。Shader Modle 4.0允许程序员在渲染物体时使用128个纹理,而DirectX 9只提供4/16规格,更多的纹理意味着物体表面精度更真实,游戏开发者拥有更广泛的选择。

键盘也能翻页,试试“← →”键

为您推荐

加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
加载更多
热门排行

DIY论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品