特效更多?NV40重点技术Shader Model 3.0理论篇
NVIDIA和FarCry
从之前公布的画质比较来看,Shader Model 3.0和Shader Model 1.1相比确实有巨大的画质提升。我们最近已经看到很多使用Pixel Shader 2.0特效的游戏带来了更动人的游戏体验,而FarCry正是这些游戏之一。我们现在想知道的是,在Shader Model 3.0中是否有Shader Model 2.0所无法实现的特效。
我们先来看看下面的表格,从中可以清楚的了解到Shader Model 3.0所具备的新功能。
|
Pixel Shader功能
|
Shader 2.0
|
Shader 3.0
|
描述
|
|
Shader长度 |
96 |
65535+ |
允许采用更复杂的阴影、光线和程序 |
|
动态分支 |
不支持 |
支持 |
通过跳过无关像素上的复杂着色以提高性能 |
|
Shader抗锯齿 |
不支持 |
内置派生指令 |
开发人员能够计算屏幕空间以调整着色频率或者进行多重采样处理,以降低画面失真 |
|
背面寄存器 |
不支持 |
支持 |
允许在一次处理工序中处理双面材质的光源 |
|
内插值色彩格式 |
最低8-bit整数 |
最低32-bit浮点 |
更高的颜色范围和色彩精度,允许采用顶点级别的高动态范围光源 |
|
多重渲染目标 |
可选
|
4个 |
允许高级光源算法,以节省过滤和顶点操作。能够以最低成本实现更多的光源处理 |
|
雾和镜面效果 |
固定8-bit功能 |
可自定义的fp16-fp32 shader程序 |
Shader Model 3.0让开发人员能够完全、精确的控制雾和镜面反射效果。在Shader Model 2.0中,这些效果都是固定的。 |
|
材质坐标数量 |
8 |
10 |
更多的per-pixel输入允许更逼真的渲染,尤其适合渲染皮肤。 |
下面是Vertex Shader Model 2.0到Vertex Shader Model 3.0所作出的改变:
|
Vertex shader 功能
|
Shader 2.0
|
Shader 3.0
|
描述
|
|
Shader长度 |
256指令 |
65535指令 |
更多的指令允许更为细致的角色光源和动画处理 |
|
动态分支 |
不支持 |
支持 |
通过跳过无关像素上的复杂着色以提高性能 |
|
顶点材质 |
不支持 |
对多达4个的材质进行查找 |
允许置换贴图和粒子特效 |
|
支持实例 |
不支持 |
必须 |
允许使用一条指令绘制各种物体 |
Shader长度和处理流程
我们先看看Pixel和Vertex Shader的shader长度。在Pixel Shader 2.0中,shader长度能够达到96条指令,但是Pixel Shader 3.0将这一数字增加到了65535个,GeForce 6800Ultra的指令长度甚至是无限的。更长的指令意味着在游戏中,我们可以为每个像素应用更多的特效。尽管如此,使用长指令来编写shader程序并不是达到复杂特效的唯一手段,开发人员也可以使用多重处理流程来达到相同的效果。例如,我们可以在Pixel Shader 2.0中使用若干个指令长度为96的shader,并通过多重处理流程来达到长指令shader程序可以输出的画面。实际上,Radeon 9800系列都内建了F-Buffer以辅助shader多重处理流程。
另外,实际情况是今年最受期待的游戏之一Half Life 2(采用了Shader Model 2.0),其shader长度也仅为30~40指令之间,距离Pixel Shader 2.0限制的96指令也还有一定距离。所以现在让我们迷惑的就是,运行Shader Model 2.0多重处理流程和运行Shader Model 3.0长shader指令之间的性能区别、GeForce 6系列显卡运行长指令shader的能力如何、Radeon系列显卡运行Shader Model 2.0多重处理流程能够达到什么程度。
Shader分支
现在我们看看Shader Model 3.0的新技术之一:动态分支。动态分支技术让程序员能够控制程序的实际流程,可以在合适的地方开始和停止程序代码而不是将shader程序从头到尾地执行。这或许能够带来更快的shader性能,不过并不会对画质带来任何改善。即时动态分支技术被应用到像素或者顶点程序中,这些代码也能够被拆开并在Shader Model 2.0中使用。动态分支技术确实有提升性能的可能,不过这也取决于GeForce 6系列处理动态分支的技术。
SM3.0和置换贴图
顶点材质查找(Vertex Texture Lookups)是Shader Model 3.0的主要进步之一,通过它可以实现置换贴图这样的功能。Shader Model 3.0和Shader Model 2.0之间可能存在的画质差异主要是由置换贴图的使用造成的。目前被广泛应用的凹凸贴图能够给人以物体材质高低不平的幻觉,但是材质本身仍然是平的,如果贴近物体观看就会显得很假。由于材质本身是平的,这也造成光线和阴影不能准确反射。通过处理材质的高度,置换贴图实际上增加了物体表面的细节程度;置换贴图甚至能够自行创建模型。置换贴图能够大幅度提高游戏画面的拟真程度,如果开发人员熟悉了该技术的使用,我们将从使用Shader Model 3.0的游戏和使用Shader Model 2.0的游戏画面中看出明显的区别。因此,置换贴图或许才是Shader Model 3.0决定性的优势所在。
几何实例(Geometry Instancing)
Shader Model 3.0的另一个功能“几何实例”能够带来值得一提的性能提升。通过使用该技术,游戏能够循环使用顶点缓冲中的信息,以创建以前使用过的物体。一个例子是在RPG(角色扮演)游戏中,当玩家控制一整支军队时,场景中的角色实际上都采用了相同的模型。通过几何实例技术,显卡只需要绘制其中一个角色,并复制出其它的角色,而不需要单独绘制每一个角色,这能够带来性能上的提升。这个功能也不会带来画质上的改变,只会影响性能。
底线
似乎Shader Model 3.0中的多数功能都是为了提升显卡性能,这一点非常不错。不过在Shader Model 3.0的新特性中,能够为游戏环境带来直接冲击的就是置换贴图技术了。置换贴图当然能够带来更高的游戏画质表现,NVIDIA已经在公布的FarCry屏幕截图中展示了这一点。不过对我们来说,游戏开发人员必须要积极使用这一功能才行。这种功能在Shader Model 2.0中也能在某种程度上被伪造,不过这和真正的置换贴图还是有区别的。
就算是游戏开发人员也还不能确定Shader Model 3.0的能力。下面是EPIC公司的Tim Sweeney在谈到Shader Model 3.0的应用中所说的话:“我们应用了一些PS3.0代码,不过由于我们最近才拿到有SM3.0能力的硬件,所以还有很多可以优化性能,让PS3.0得到广泛应用的机会。”
尽管目前看来,Shader Model 3.0的优势还不是很明显,Sweeney仍然认为SM3.0将会比现有技术好得多。他表示:“我们还不清楚SM 2.0和SM 3.0之间在画质和性能上究竟有多达的差距,不过我期望在18个月以后,Unreal Engine 3游戏发售的时候,目前的PS 2.0硬件都会成为相对低端的产品,只能在较低分辨率下运行降低了画质的游戏。Unreal Engine 3是为下一代个人电脑和下一代游戏机所开发的,因此它对显卡性能和功能的要求远远高于目前的主流硬件。”
那么,关于SM3.0和NVIDIA到目前为止公布的比较结果,最重要的一点是什么呢?如果你正在使用的显卡不能支持SM2.0,例如GeForce FX以前的NVIDIA显卡或者Radeon 9500以前的显卡,如果需要想要享受最新的游戏画面,你将不得不对自己的显卡进行升级。如果你正在使用支持SM2.0的显卡,例如NVIDIA的GeForceFX系列或者ATI的Radeon 9500系列,以及更好的显卡,目前还没有必要为了获得更好的Shader Model质量而升级自己的显卡。不过如果你要求更好的抗锯齿、各项异性过滤以及更高解析度的游戏画面,那么升级是在所难免。
我们很高兴看到NVIDIA再一次的作了“吃螃蟹者”,为游戏开发商带来了更新的和更好的创造方式,这也让NVIDIA能够在技术上领先ATI相当一阵子了。不容置疑,ATI凭借R300优异的DX9表现站稳了脚跟,NVIDIA率先对SM3.0提供支持也能够为GeForce 6系列GPU带来相似的影响。从过去的经验来看,直到相应的硬件产品上市以前,游戏开发商都不会广泛应用新技术。
主板
显卡
显示器
CPU
内存|存储
光存储
机箱|电源
键鼠|摄像
音频
笔记本
台式机
数码相机
手机
MP3|MP4
IE7直接输入FTP地址无法登录怎办
女性首选长焦相机 富士S1000到货
8115国产版 双飞燕防水战警热卖
英特儿45纳米迅驰移动高清芯世界
英特尔45纳米酷睿 高清"芯"视界
西部全覆盖 雷柏新品键鼠专题报道
影驰 GF9600GT中将限量版 Crysis
经典游戏壁纸再现4
经典游戏壁纸再现3
经典游戏壁纸再现2
经典游戏壁纸再现1