 |
| |
新一代精彩的视觉效果 |
|
|
| 第三代NVIDIA® CineFX™引擎释放出了新的NVIDIA GeForce™6系列图形处理单元(GPU)的威力并为新兴PC游戏倾泻出视觉效果的创造力。通过Microsoft’s DirectX® 9.0 Shader Model 3.0和SGI的OpenGL® 1.5软件,程序员可以开发没有硬件长度限制的shader程序。开发者同样可以从增加的程序流控制以及诸如多渲染对象(Multiple Render Targets, MRTs)等技术中得到好处,以创造出下一代影视般的特殊效果。由于具有CineFX 3.0的强大威力,这些效果可以在没有性能折衷的情况下创造出来,并带来创新的视觉体验(参看图1)。 |
| |
|
©2004 NVIDIA Corporation |
|
图1 CineFX 3.0技术可以使得高级实时效果变成可能 |
| |
| CineFX 3.0引擎包含了业界唯一的贯穿整个流水线的真正32位着色能力并提供了比任何过去技术更多的处理能力。CineFX 3.0给与了程序员创造当前最复杂数字世界的可能。先进的实时效果甚至可以欺骗最有鉴别能力的狂热游戏玩家的眼睛——诸如位移贴图(displacement mapping),复杂的阴影和实时的皮肤和毛发——这些都可以在新的GeForce 6系列中得到实现。 |
| |
完全支持不断进步的标准 |
| |
| NVIDIA带来了对DirectX 9.0顶点着色器模型3.0(Vertex Shader Model 3.0)和像素着色器模型3.0(Pixel Shader Model 3.0)的完全支持,同样也完全支持OpenGL着色器程序规范,因此游戏开发者可以容易地获得CineFX 3.0引擎的能力和精度。对高级着色语言——包括Microsoft高级着色语言(HLSL),OpenGL着色语言(GLSL)以及Cg着色环境——的最完善支持给与了程序员任意使用DirectX或者OpenGL接口来进行游戏开发的选择权。 |
| |
Vertex Shader 3.0 |
| |
| NVIDIA CineFX 3.0引入了事实上无限长度的顶点程序和动态程序流控制,去除了原来着色程序在复杂性和结构方面的限制。由于具有完整的编程自由度以及最新的NVIDIA GeForce GPU超常的性能,开发者因此可以从新的顶点着色器功能中得到很大的好处,这些功能诸如位移贴图和顶点程序流的分频器。 |
|
无限长度的顶点程序 |
|
| 顶点着色器程序现在没有长度的限制了。先前,复杂的效果不得不使用多个着色器程序进行组合,以使得每个程序都遵守程序长度的限制。在某些情况下,终止一个程序和开始另一个程序的开销降低了游戏的速度并使得这种效果的应用变得不切实际。 |
|
| 现在,由于着色器程序不再有长度限制,复杂效果可以编写成能够榨取游戏平台的所有性能。即使较长的程序的处理时间比较短程序的更长,但是CineFX 3.0引擎具有的技术和速度确保较长的程序依然可以运行如飞。 |
|
动态程序流控制 |
| |
| 额外的循环/分支选项和新的子程序调用/返回功能给与程序员更多的选择以开发出更有效率的着色器程序。没有了长度的限制,加上增强的程序流控制,这都给与程序员空前的自由度,可以为游戏世界释放出新一代水平的创造力。 |
| |
| 新的程序流控制包含这些能力: |
| 新指令(IFC/BREAKC, IF/BREAK/CALLNZ) |
| 一个统一的返回地址和地址寄存器的8级堆栈:分支,子程序调用;压栈、弹出地址寄存器 |
条件代码选择 |
| |
位移贴图 |
| |
程序员同样可以从新的CineFX 3.0的能力——带纹理的顶点处理——中获得好处,为场景中的每个成分、表面和角色带来更多的深度和真实性。纹理信息可以实时地通过容易使用的纹理调入寄存器指令映射到顶点上。这种技术——也就是大家知道的位移贴图(displacement mapping)——避免了表面显得过分光滑,而开发者过去要么就不得不围绕着像素着色器级别的技术(诸如凹凸贴图,Bump Mapping)进行工作或者干脆在他们的3D环境中保留光滑的表面 |
| |
| 位移贴图将计算机产生的世界在视觉效果上与电影中世界的水平靠近了一大步。模型几何的细微变化可以有很强的视觉影响因为每个顶点都可以与场景中的各种光线相配合,与上一代的3D生成技术相比这些仅仅只需要付出微小的计算代价就可以得到。 |
| |
| 在图2中,注意初始的不带位移贴图的模型。左边的图像显示了一个带有高亮显示的3D模型网格的恐龙头部模型。右边的表示的是应用了纹理颜色的同一模型。 |
| |
|
| |
3D scan and representations by headus; design and clay sculpt by Martin Rezard |
| |
图2. 高亮显示的3D模型网格的恐龙头部局部模型(左)和应用了纹理颜色的模型(右) |
| |
| 当位移添加进模型网格后,这个恐龙的头部展示出突起、凹下和更精细的纹理(图3)。由于与光源的作用更详细,就给与了模型更多的逼真度,而这只需要一点计算开支。 |
| |
|
| |
3D scan and representations by headus; design and clay sculpt by Martin Rezard |
| |
图3. 位移已经加入了图2模型的网格中 |
| |
顶点着色器复用流分频器 |
| |
CineFX 3.0让程序员指定多种频率或者偏量以读取不同种类的顶点信息,诸如动画和位移信息。一个效果可以高效地应用到多个角色或者对象中,当模型在其他方面完全没有差别的时候分别提供个性。想象一支军队的士兵,每个士兵都有一个不同的动作跑在战场上。在这个例子中,个别的运动参数可以单独地应用到每个拷贝中,使得每个士兵都看起来不是一样的。 |
|
|
| 这个效果可以非常高效地执行。程序员可以将动画参数批量执行到场景中的每一个模型中,令其能在整个场景中应用复杂的特效达成绚丽的视觉吸引力。 |
| |
Pixel Shader 3.0 |
| |
CineFX的技术进步提升了像素着色器的能力使其到顶点着色器相同的水平。在像素级别上增强的控制能力帮助下,程序员可以更加生动地装饰他们的游戏,为每个角色、对象和场景带来更多接近于现实世界的品质。
GeForce 6系列GPU原生的32位处理能力提升了像素着色的总精度,将像素着色器带到了极为逼真的图像品质的新水平。 |
| |
无限长度的着色器程序 |
| |
| 由于不再强迫将每个像素着色器程序压缩到96条指令中,因此程序员现在可以从硬件限制2中解脱出来,可以在像素级别执行更复杂的效果。 |
| |
动态程序流控制 |
| |
| 完全支持子程序、循环和分支——包含循环计数寄存器和条件码——以及一个新的back/face寄存器给与了程序员完整的控制能力。 |
| |
灵活的数据类型支持 |
| |
| 浮点操作数可以使用原生的32位或者可选的16位格式,这种格式也是电影行业的标准格式。尽管两种模式提供了相同的性能,但32位浮点模式需要使用两倍的的存储空间来存放操作数。程序员可以任意选择原生的32位和可选的16位模式以满足每种情况的对精度的需要。当存储空间是需要考虑的时候他们可以高效率地管理存储空间的使用。其他数据格式同样是可以支持的。 |
| |
多渲染目标 |
| |
| 多渲染目标(MRT)技术允许像素着色器将每像素的数据保存到不同的缓冲区当中。这些缓冲区从而可以当成照片级光照效果着色器的参数。在这种方法的帮助下,光照可以在所有几何被渲染后再进行应用,不再需要进行多步渲染。这种技术也被指为延期着色(deferred shading)。一些典型的存储在这种类型的表面中的信息包括:位置、法线、颜色和材质。 |
| |
| 图5到图7描述了MRT技术用于产生一个高动态范围的场景。在第一个渲染步骤(pass),创造出三个输出缓冲区——一个颜色贴图、一个法线贴图和一个深度贴图。在第二个步骤,使用法线和深度贴图结合光照条件计算出光照。然后,场景在带有颜色贴图的情况下被精确地照明。 |
| |
| 最后,在第三个步骤中,超过0到1范围的超高亮度的光线值被带入场景中,计算包含高亮度像素附近的像素的发光。这个步骤产生出难以置信的发光效果。(图7) |
| |
|
©2004 NVIDIA Corporation |
|
图5. 没有光照的场景的颜色缓冲区(左)和深度缓冲区(右) |
| |
|
©2004 NVIDIA Corporation |
|
图6. 没有光照的场景的法线缓冲区(左)以及使用法线缓冲区和深度缓冲区带照明的场景(右) |
| |
|
©2004 NVIDIA Corporation |
|
图7. 颜色贴图和图像联合后(左)以及最终的发光效果(右) |
| |
| 因为应用了MRT,在创造出图7那样惊人场景时多个渲染步骤就被省去了。随着像素着色器的日趋复杂,延期着色执行变得越来越有价值因为它们避免了那些对图象可见部分没有贡献的像素的不必要的处理时间。 |
| |
额外的视觉效果 |
| |
| CineFX 3.0增强的能力和新技术使得程序员们能够创造出与以往不同的特征和效果,包括这些: |
| |
| 次表面散射 Subsurface scattering. 皮肤和表面呈现出深度感,光线随着深度产生变化,这就可以表现出非常逼真的半透明效果(图8)。 |
| |
|
| |
Model courtesy of De Espona Infographica |
| |
图8. 使用次表现散射效果可以产生出半透明和多层次光线穿透的效果 |
| |
| 柔和阴影 Soft shadows. 这个技术使得阴影不会显得很刺眼。场景中由光线和物体阴影的边沿线的很柔和,因此更精确地表现出实际的状况。 |
| |
| 环境和地面阴影 Environmental and ground shadows. S阴影可以投射到周围环境表面上,诸如草或者其他植物上,不再会有眼睛可见的异常或者影响性能。32位流水线允许地面阴影精确地随着观察点的移动而移动。 |
| |
| 全局照明 (Global illumination). 预渲染和实时渲染之间一个最主要的区别就是光照。要产生尽可能逼真的图像效果,电影渲染工具通常需要花费以小时计的时间来确定场景中光线在物体之间反射的情况。由于支持接近无限长度的像素着色器程序以及浮点格式的滤波以及颜色混合,这些难以置信的复杂效果可以以接近实时地完成,因此给实时的应用程序带来更接近照片质量的效果。 |
| |
|
| |
图9 CineFX 3.0可以使诸如柔和阴影这样的效果成为现实 |
| |
结论 |
| |
NVIDIA CineFX 3.0准备好释放出空前水平的编程能力。由于具备了完整的DirectX 9.0 Shader Model 3.0的支持,最新能的GeForce GPU立刻为新一代游戏以及具备无比真实感、幻想般的复杂的数字世界和逼真的角色在影视品质的环境中活动提供强大动力。
先前,高度复杂的效果是不可能在不牺牲性能和精度的情况下得到的。一个原因就是一个长的着色器程序需要很多的计算步骤。现在,NVIDIA GeForce 6系列GPU配合NVIDIA CineFX 3.0以及DirectX 9.0 Shader Model 3.0,突破性的效果可以在没有性能折衷的情况下获得。 |
| |
注意
所有 NVIDIA® 设计规范、参考板卡、文件、图纸、诊断信息、列表和其他文档(一并或分别称为“资料”)均“按现状”提供。NVIDIA® 公司不以明示、暗示、法定或其他方式对材料的非侵权性、适销性和适用于任何特定用途做出保证,并明确否认任何此类暗示保证。
我们认为所提供的信息是准确、可靠的。然而,对于由于使用该信息所造成的后果,或者由于其使用可能导致的对第三方专利权或其他权利的任何侵犯,NVIDIA® 公司不承担任何责任。不以暗示或其他方式授予NVIDIA® 公司的任何专利或专利权的任何使用许可。本出版物中述及的规范如有更改,恕不另行通知。本出版物取代并替换以前提供的所有信息。NVIDIA® 公司未将其产品授权用于生命支持装置或系统的重要组件,除非获得NVIDIA® 公司的明确书面认可。
商标
NVIDIA、NVIDIA徽标、CineFX和NVIDIA GeForce均为NVIDIA® 公司在美国和其他国家的商标或注册商标。其他公司和产品名称均为其各自所属公司的商标。
版权
©NVIDIA公司,版权所有,2005年。 |
|
| |
| 注:操作系统或者API可能会有所限制,但是硬件不会限制着色程序的长度。 |