NVIDIA 2.0+

NVIDIA 2.0+

像素与顶点着色器的可编程功能很明显地超越了DirectX 9规格中的要求条件。这也是为什么 NVIDIA在它们的规格加了一个“+”记号以作为强调。介绍这些新着色器的所有功能与特色不属于本文的范围,而且也只有着色器设计人员会对这些功能的价值有所了解。

Ogre from YEAH

Spellbound的电影YEAH中一个角色Ogre的截图。NVIDIA将它用在一个实时的示范程序中。

综观GeForceFX的扩充功能:

GeForceFX Vertex Shader 2.0+

与DirectX 9(标准型)相比较: 程序可以集成256条指令(DirectX 9为128条); 256个常数(DirectX 9为96个); 向量地址寄存器(DirectX 9为标量); 每组shader现在最多可以执行65,536道指令。

NVIDIA的特色: 每组vertex(一组shader最多可以执行256项静态指令)着色器最多可以执行65,536组vertex指令。
CineFX成像引擎增加了大量的vertex处理功能。除了让指令储存空间倍增之外,流程控制的加入也大幅提升了每组vertex可以执行的实际运算次数。这样的灵活性减少了应用程序所需要的vertex shader总数。

最多256项向量常数
CineFX vertex shader中的常数寄存器数量的增加可不只两倍-从96增加到256个!这使得矩阵调色板变形(matrix palette skinning)的矩阵数目大幅增加,并能够同时拥有更多的光源。

16组暂时向量寄存器
暂时寄存器个数从12提升到16,增加了33%。这个暂时寄存器空间会对于支持较大程序的CineFX引擎特别有帮助。

最多64个独立循环
CineFX顶点着色引擎借着完全支持相关循环与条件分支运算(包含嵌套循环与条件分支运算)并在单一shader程序中搭配最多64组分支条件目标来简化程序。扫过所有光源并对对应光线形式进行分支处理现在变成一项相当简单的工作。

每组组件条件码与写入屏蔽
条件码是数据相关性条件分支运算背后的机制,但它们也能够改善性能并简化条件式的程序代码。

调用与返回(子例程)
除了CineFX的分支预测功能之外,vertex处理器支持了完整子例程CALL/ RETURN(调用与返回)的语意分析。

静态与动态控制流程的循环与条件分支运算
完全一般化的循环与条件分支运算(搭配相关性数据参考)正是让CineFX顶点着色引擎如此灵活且强大的原因。


Google 广告
广告
显示卡的文章和评比
Recherches populaires