显卡 频道

NV40:nVIDIA的翻身之作

  支持SM3.0的CineFX 3.0

  NV40可以说是全新的一代产品,增加了众多实用的功能,其中最重要的就是支持DirectX 9.0c规范中的Shader Model 3.0了。DirectX 9.0c中加入的新特性就是Pixel Shader(象素着色)和Vertex Shader(顶点着色)3.0,这个改进也使得DX 9.0c和小打小闹的DX 9.0a/b相比有了本质上的变化。Pixel Shader 3.0规范允许着色程序超过65000行,并支持动态流控制(分支),同时也需要相关硬件提供4个Multiple Render Targets(多重渲染对象,可以一次处理显存中多个着色操作)并提供完全的32位浮点精度、着色抗锯齿以及每个象素10个纹理坐标输入。

#$[*154589.gif*#Displacement Mapping贴图*#0*#0*#center*]$#

  Pixel Shader 3.0最大的好处就是让开发人员可以使用更长、更复杂的着色程序,并提高运行效率。流控制更是使得开发人员可以编写更为高效而直接的代码。分支则使得着色程序增加了根据当前状态和输入对应处理的能力。Pixel Shader 3.0中要求的硬件支持多重渲染对象可以让开发人员可以用一个着色单元完成4个不同的着色操作,以树为例,运动的树叶、接近顶部的树枝、斑驳的树皮以及带有泥土的树根就可以一次完成,而不再需要使用多个单元。

#$[*154590.gif*#色彩缓冲(左)以及深度缓冲(右)*#500*#207*#center*]$#

#$[*154591.gif*#无场景信息的正常缓冲(左)以及添加场景信息的正常缓冲区和深度缓冲区(右)*#500*#207*#center*]$#

#$[*154594.gif*#色彩信息和图像信息重叠(左)以及最终生成的效果(右)*#0*#0*#center*]$#

  Vertex Shader 3.0则通过“if/then/else”语句增加了流控制功能,并可以在着色程序中使用其他子程序。当然,VS 3.0中的指令行数限制也提高到了65000,并支持顶点纹理,允许更多的顶点动态操作。据称微软在下一代的DirectX中会引入顶点动态生成,那将给我们带来更加生动的体验。

  Vertex Shader 3.0最酷的特性就是“Instancing”(实例)功能,基于同一个三维模型的不同物体可以同时进行处理,无需像现在这样将场景中每个模型进行构建并传入GPU中渲染,开发人员可以在一个顶点流中完成一个模型的不同“实例”。这些实例经过顶点着色单元转化和操作后将具有自己的特性。还以树为例,在Vertex Shader 3.0中开发人员就可以用一个模型通过顶点流生成整个树林,CPU以及总线占用将大为降低。

  此外在CineFX 3.0中还增加以下的特效:

  • Subsurface scattering(表面散布):这种特效可以表现出皮肤表面和深度的差别,真正实现渐变半透明效果。

#$[*154595.gif*#Subsurface scattering示例*#0*#0*#center*]$#

  • Soft shadows(阴影柔化):这种技术可以让阴影看起来不再僵硬,把更真实的阴影展现出来。

#$[*154601.gif*#阴影柔化的效果*#0*#0*#center*]$#

  • Environmental and ground shadows(环境表面阴影):真实的模拟环境变化以及地表变化后阴影的变化,这种技术让程序员可以实现更加逼真的环境阴影效果。

  • Global illumination(全体照明):真正的实现光源的变化,目前我们觉得3D画面最大的差别就是光阴不真实,而这种全新技术的添加,让计算机可以真正的模拟光照的变化,当光源强度,位置变化后,最终的阴影以及效果都会随之产生变化。

0
相关文章