作者:Darren
【IT168 资讯】可编程的shader自从在DirectX8规格中引入以来,就开始占据游戏设计的中坚位置,OpenGL也加入之后它的地位更加强势,几乎市面上所有的3D加速游戏都进行shaders处理,即使是仅需要一点点水面反光效果。2000年DX8问世直到2002年DX9中引入Shader Model 1.0,ATI、nVIDIA兼容硬件的推广使得shader模式大行其道。
GeForce3中引入的可编程shaders处理概念就是这项革命的开始,在此之前开发人员关注的是多材质帖图和硬件T&L处理,而现代的显卡如R520、R580等内部结构则完全是一副顶点以及象素shader处理单元的架势,游戏开发者们大大提高了自由度,他们再也不需要像以前那样等待独立硬件厂商的举动才能加入各种游戏特效了。D3D和OpenGL还能够提供真实光照以及运动模糊等特效,就让我们随着这款Offset游戏引擎,来感受一下最热门的未来3D图形技术吧。
Offset公司开发的这款未来“Project Offset”是一款FPS、RPG结合的游戏,其中最引人瞩目的是他们自行设计的统一光照与shader构架的Offset引擎,号称能够实现游戏的真正实时电影画质,进步方面据称现在已经完成了70%。Offset的创立者为Sam McGrath、Travis和Trevor Stringer,艺术总监Rod Green有着丰富的游戏创作经验,他是非常看好这款引擎才来到Offset公司的。而更有震撼力的是,
暴雪公司的人要用这个引擎来打造他们的下一代MMO游戏!今年2月份, 魔兽世界的Mark Kern、暴雪总监William Petras已经与这个引擎签订了和约!在Offset engine中使用了很多先进的技术和特效,甚至Doom和Unreal游戏中我们都没有见到,而每一种下面我们将要介绍的特效都对游戏的画面真实性有很大的影响。offset引擎力求在整合这些特效的同时达到很大的效率,高画质下现代显卡的帧数也不错,看吧,你的上千美元的显卡就是用来干这个的!
shaders和DirectX
这款Project Offset游戏的最低需求为Shader Model 2.0的显卡,不过是使用完全的DirectX 9.0c Shader Model 3.0设计的,还能够在Vista问世之后过渡到DirectX10平台,也就是统一构架的SM4.0,大大提高效率。
SM2.0与SM3.0是非常相似的,SM3.0的优势就是能够在每个shader中使用更多的指令,同时还多了额外的指令支持。例如SM3.0可以让函数中的一个变量参加运算而其余的保持不变,SM2.0是做不到这一点的,这就使得SM3.0的效率更过一些。
High Dynamic Range
![]() |
![]() |
HDR不能称作是一个特效,似乎叫做一种运算更合适,基本上HDR是用来运算出那些超过亮度水平的颜色值的(当前色深下,如24bit、32bit),通常都是浮点值运算,这也使得它非常影响速度。HDR使得不同环境中的光线有了更好的表现,也实现了Bloom、曝光等特效。SM2.0中就已经引入了HDR运算,SM3.0中将其精度提高到了32bit。
对性能的影响:低——因为Offset引擎把它集成在了渲染管线中。
部署难度/时间:中等——对于一款已经成型的引擎转换到HDR支持是非常困难的,但是对于设计用来支持HDR的Offset引擎就是轻而易举的事情了。
光晕特效(Specular Bloom):
![]() |
![]() |
因为HDR集成到了渲染管线中,境面光晕效果也非常容易加入了,亮光在物体的周围形成了一个非常耀眼的光晕效果。
性能影响:中低——加入了一些预处理,可以设置光晕效果的质量。
部署难度/时间:预处理结构使得光晕效果可以很容易的加入到引擎中。
贴图光泽(Specular mapping):
![]() |
![]() |
游戏设计者们可以为贴图的每一个区域设定一个对于HDR效果的敏感度,根据这个敏感度的值贴图的不同部分就会呈现出不同的HDR效果表现,比如上图实例中兽人铠甲发光而皮肤粗黑。通过为物体采用几乎统一的材质,而不是根据光泽大小给予一个物体两种或多种材质,Specular mapping大大提高了渲染的效率。
性能影响:低。
部署难度/时间:无需更多编程工作,高效率轻松实现。
阴影(Shadowing):
![]() |
![]() |
3D游戏的投影处理一直是非常头疼的事情,原始的Quake上是采用预计算背影帖图的方法,Doom3上使用的是实时z-fail光影计算。Offset引擎上使用材质阴影技术,因为使用了普通的处理管线,所以对性能的影响是非常小的。这也是一种实时阴影技术,不过因为阴影的材质细节较低,在高分辨率下画质就受影响。
性能影响:根据场景需要渲染的物体光源等而有所不同。
部署时间难度:中等。
副表面扩散(sub-surface scattering):
![]() |
![]() |
3D中对液、固体的真实模拟必须考虑到物体内部对光的吸收和反射,比如光线投射到皮肤上时,它通常会进入表面然后散开一些,最终停留在了表面的另外一个位置。为了创建真实可信的皮肤等表面,就必须引入副表面扩散效应,这个是实时进行的运算,而现时其他多数引擎都是使用静止的复杂的一种材料shader。有了这种SSS效果的引入,人物再也不会看起来像塑料的感觉了。
性能影响:中等。
部署时间/难度:相对较为简单。
法线帖图(normal mapping):
![]() |
![]() |
在3D电脑图像中,法线贴图工具是一种像bump贴图一样的工具,它可以在不使用更多多边形从而不增加GPU负荷的情况下,大大增加物体的细节。模型被一个材质象素渲染,每个材质象素定义了三角形区域的法线,结果是能够得到更多的表面定义。
性能影响:低。
部署时间/难度:鉴于现在normal mapping已经成为现代游戏引擎的标准技术,集成起来也比较容易。
视差帖图(Parallax mapping):
![]() |
![]() |
通常与法线帖图同时工作,也被称作offset mapping,这项技术把材质做一些偏移从而实现一种推出效果,使凹凸感增强。Unreal Engine3与FEAR中大家都有很深的印象吧。
性能影响:低。
部署时间/难度:较为成熟,比较容易。
运动模糊(Motion blur):
![]() |
![]() |
Offset引擎的运动模糊效应更加先进,在其他游戏引擎中,当一个物体移动的时候只是对整个物体的每个帧做渲染,这样一来当物体运行比较迅速的时候就会有很大的间隔的感觉,模糊渲染就在物体的两帧运动之间插入一个3D模糊效果帧。填充了眼睛对高速运动物体视觉间隔之后,得到更好的视觉效果。
性能影响:低,而且能够渲染几乎所有的场景物体,是offset引擎的一大优势之处。
部署时间/难度:较难。
置换阴影帖图(Displacement shadow mapping):
offset引擎在阴影上使用了材质,自然而然为它们部署普通帖图,这样一来阴影能够更好的结合物体表面,而不是漂浮在上面。从而实现游戏中更好的效果,这项技术目前是offset独家的。
性能影响:低
部署时间/难度:容易。
景深(Depth of Field):
定义一个中心聚焦点,你可以创建一种类似相机景深拍摄出来的效果——想要突出表达的物体变得清晰,而背景变的模糊。offset引擎考虑以后加入这个效果的支持。
性能影响:低。
部署时间/难度:低。
体积光照(Volumetric lighting):
体积光源可以造成光线穿过烟、雾、尘的效果,如果没有经过体积光源处理,光线在穿过体积雾时会变得过于明显或模糊。
性能影响:中等,需要实时的光影效果检测。
部署时间/难度:中等。
物理特效(Physics):
确切的说这不是3D图形的一个内容,现在的PPU就是专门用来处理物理关系运算的,移动汽车、掉落物体等之间的互动物理效果处理还好说,而人体的头发、衣服以及水波等的物理互动效果处理就是象素级的了。
性能影响:根据场景不同而有所变化。
部署时间/难度:考虑与PhysX或Havok的方案结合。
![]() |
![]() |
上图为全部加特效与全部关特效对比。
最后别忘了,Project Offset并不仅仅是一个演示的引擎,它还是一个非常好玩的游戏,达到了高画质与高游戏性的完美结合。这款游戏是一个在令人惊奇的绚丽世界里的FPS游戏,玩家可以选择多种主角、装备,场景包括太空、城堡、城市等等,有单人、多人等多种游戏模式,还有RPG的一些元素。
Offset游戏与引擎将向我们展示现有的游戏硬件以及软件API的最高实力,而一年之内的Vista上DX10、SM4.0统一构架将让更加绚丽的实时渲染推向大众。“我们正处在一个计算机图形游戏的革命时代,软件变得更加高级,硬件变得更加强大,终有一日我们可以突破系统的限制,真正自由发挥我们的艺术天赋”,Green说,“当然不管画质如何,游戏的游戏性始终应该是第一位的,这才应该是我们的焦点所在”。