GeForceFX pixel shader 2.0+:
GeForceFX pixel shader 2.0+:
GeForceFX pixel shader 2.0+:
扩充功能与DirectX 9(标准版)相比较: 寄存器与指令可以是12-bit的定定数、16-bit浮点数、或是32-bit浮点数; 从最多16组唯一材质中挑选出任意数目的材质; 每次成像阶段可使用1,024组指令; 8组同级材质 (最多可有16组激活材质); 如果目标是浮点表面,则其浮点值会经过“宽度转换”以符合成像目标,然后储存下来。(浮点表面无法进行混合处理); 如果来源是浮点表面,则像素单元上无法执行过滤功能(没有二重线性过滤浮点值); 可进行型态与宽度转换; 一个批次作业内的所有像素会在同样数目的时钟频率周期下执行
NVIDIA的特色是: 为像素着色引入新的指令集:之前为顶点处理所保留的指令现在可以用来处理像素着色,并搭配处理其它像素时必备的指令。 删除现有限制:随着每个像素最多可以有16组贴图以及不限级别的相关材质查阅,因此程序会变得比较长(最多1,024个指令)。 大幅扩充像素运算种类的数目:最多1,024个材质运算;组件材质的混和;每个组件的条件式写入屏蔽;任意材质过滤;以及其它先进的指令。 DirectX 8 可支持8组指令。而使用由最新一代硬件所带来的最新API功能,加上最多可支持64组指令,对于性能多少有些帮助。最多可支持1,024组指令的NVIDIA CineFX引擎,可支持真正长shader程序以达成惊人效果以及shader的功能极限。 增强碎片程序储存:与vertex程序不同的是储存在视频内存中,使得管理大量碎片程序的成本得以下降。 最多16组材质。NVIDIA CineFX允许在单一pixel shader程序中可以取用最多16组不同的材质。这些材质可以是定义表面属性的任何事物;例子包括了有凹凸贴图(bump map)、gloss/ specularity贴图、环境贴图(environment map)、阴影贴图(shadow map)和albedo贴图。 每组shader最多可用到1,024组材质指令。先前的架构将材质贴图的数目与可取用的材质数目紧密地结合在一起。NVIDIA CineFX解除了这样的限制,并且可在单一shader中使用最多1,024组材质取用指令。因此多出一堆依赖多材质存取的新效果: 柔和阴影柔和阴影可以通过使用任意大量从阴影贴图所得到的取样,并应用在产生阴影过滤效果。 Framebuffer后期处理效果。有一堆有趣效果可以通过使用来自framebuffer的多材质取样来进行创造。像模糊、空心、以及非真实图形的成像效果,toon着色技术以及painterly效果如今都已经变得可能。 复杂过滤高品质过滤可以应用在材质上。举例来说,双立方体过滤(bicubic filter)就会要求同一个材质要有16个取样。
在此我们不再对这些扩充功能加以介绍。Ati认为目前的硬件无法在可接受时间内处理更长且更复杂、供游戏所使用的shader。当然,NVIDIA的说法则完全不同。而这最后还是得看游戏开发者是不是要利用到GeForceFX所提供的新功能-或是不这么做。