游戏画质的发展远远超出人们的想象,现在已经有不少号称具备电影级画质的游戏,但它们仍然与真实的世界有差距。那么究竟怎样才能让游戏的画质趋近于真实世界?未来的游戏画质会朝什么方向发展?今天,我们将从三款代表了当前高游戏画质水平、号称电影级画质的DEMO中寻找答案。通过对这三款DEMO的画质分析和术对比,让你看得爽快,又看得明白。
游戏依旧是游戏,现实仍然是现实,人们在赞赏CG和电影中惊人的画面效果时,实际上赞赏的是其极高的拟真度。在游戏中,人们首先会将视觉重心放在画面的整体感受上,因此设计人员首先会对画面整体的感官效果倾尽力量做出优化,比如使用更为精细的贴图、设计宏大的场景、加入了比较容易抓住用户眼球的高动态范围光照和体积光、环境光遮蔽等光线处理技巧……这些技术的使用,搭建了一个比较优秀的游戏画面。可惜受限于性能,在细节呈现上,游戏画面依旧做得不算理想。
首先依旧是老大难的光线和阴影部分。光线和阴影的处理是画面呈现中为重要的部分,但是受限于目前的图形技术和计算压力,整个画面只允许有数个或者不超过十个光源。这些光源一般都是呈现全局固定光照或者点光照,折射和反射的计算也被压缩到一个很低的程度。唯一的反例是在《战地3》中,光照效果被大幅度加强,PC上运行的游戏支持多超过2000个光源的计算。这样庞大的光源计算量,大幅度加强了光照的真实程度。因此光源数量较少,光线计算精度低以及部分特效滥用,是目前很多游戏画面光线效果不佳的问题所在。
此外,光源本身种类太少(比如很少有线型、面型的光源),对部分光照现象模拟不到位或者干脆无法处理,也是图形处理中光线计算的问题所在。阴影则受制于比较少的光源,无法呈现出现实状态下复杂的阴影情况。当然,还有物体本身顶点数量不够、物体不够复杂却空有高精度纹理所导致的阴影不真实等情况。如何运用多光源、反射折射以及全局的动态光源和全局的动态阴影依旧是目前游戏难以解决的问题,对半透明物体的呈现,特别是半透明物体中渐变效果的呈现,也是光影处理中的难题。
其次是模型精度问题。顶点数量不足,建模精度不高一直都影响着画面的真实度。模型精度在目前的游戏中有一些变化,物体精度有一定提高,但这只是一小步而已。在游戏中,依旧可以看到非主要部分的模型精度不高,圆形物体不够圆,弧形物体棱角分明等现象出现。在非玩家关注的重点部位,比如草木、游戏环境等方面,依旧使用精度比较低的模型来实现,大环境的构建则干脆使用一张贴图。这些为了性能而妥协画质的做法,虽然损失了20%的画质换取了40%的性能提升,但从长远来看并非解决之道。曲面细分技术的出现可以有效解决顶点数量不足的问题,但由于该技术对性能要求过高,并且使用相对麻烦、应用范围较为狭窄,导致曲面细分一直属于“辅助物品”的地位。加入曲面细分只是为了证明游戏使用了Direct3D 11的曲面细分而已,这几乎已经让曲面细分技术存在的意义变得无足轻重。
第三,物理模拟的问题。实际上现实生活中存在大量的物理现象,这些物理现象存在得过于普遍、过于理所应当,到了游戏中加入了一些物理模拟反而让人觉得就是应该如此,对画质变化没有太大的影响。甚至有论调称物理模拟和游戏终呈现效果关系不大,游戏画面呈现是3D图形技术的工作范围,物理只是锦上添花而已。实际上物理模拟不但是画质改善的关键性因素,而且是未来游戏发展的重要方向。目前遇到的问题依旧是物理模拟太少。由于物理模拟无论是对CPU还是GPU来说性能要求都很高,因此只能在画面局部使用少许,比如飘荡几片布料,来一点破碎等——就是这些使用,都会由于性能压力而大幅度降低物理处理所需要的顶点数量和破碎数量,并将后期计算尽可能掩蔽掉(比如掉下的石块不再会发生二次互动而是静止不动或者干脆直接消失)。
性能要求高,导致物理应用少,又导致画面改善不明显,终令物理模拟显得不那么重要。在这一点上,物理模拟和曲面细分、光照处理很像,都是由于性能问题而减缩,到头来反而觉得使用这些技术并没有带来太大的画质变化。其根本问题依旧是性能,没有计算性能做保证,这些技术就算强行使用一些也只能是虚有其表而已。
我们的现实世界,是从微小粒子开始,一步一步堆积到目前的宏观状态的。但图形画面的处理,却一直在走取巧和从大到小的道路。取巧是指由于性能不足,人们迫不得已发展出各种节约性能的算法来保证画面呈现。从大到小是指人们对图形呈现依旧是体积、面的状态,没有更进一步从粒子的运动方向进行探索。在长期的发展过程中,游戏中很多问题都得到了改善,比如纹理精度等。目前游戏中应用的纹理精度达到了16K×16K之高,甚至还在进一步增大。纹理精度的大幅度提升,让画面精细度得到了明显的改善。不过还有更多的内容需要一步一步努力。
未来的游戏肯定会随着图形技术的发展变得更为真实,那么究竟会达到怎样的程度呢?下面本文将介绍三个DEMO,它们分别是《孤岛危机3》技术预览DEMO、《撒玛利亚人》DEMO(使用了Unreal Engine 3引擎,进行了改良)、使用Unreal Engine 4引擎的《Elemental》(本文暂译为《元素》),它们就是未来游戏图形发展的标杆。《孤岛危机3》所采用的CryEngine 3、Unreal旗下的Unreal Engine 3以及Unreal Engine 4依旧是目前受关注的游戏引擎。这些游戏引擎本身所拥有的技术,代表了从现在开始到未来很长一段时间内的游戏图形发展水平。解读这些游戏引擎的画质内容,就能比较清晰地把握未来新游戏的发展脉络特别是在图形技术上的变化。
这三款DEMO和本刊之前介绍的NVIDIA的《破晓》和CryEngine 3的《Forets》相比,《孤岛危机3》技术预览DEMO所服务的《孤岛危机3》即将上市,属于已经有应用的典型代表;另外一款《撒玛利亚人》虽然发布时间较早(2011年已经发布),但作为当时的Unreal Engine 3进化至Unreal Engine 4的技术验证演示,使用了大量的全新先进技术,在今天看来其超前性依旧十足,整个DEMO中对光线的应用以及折射、反射的处理应用相当惊人;另外一款则是更偏重于物理应用、使用UnrealEngine 4引擎的《Elemental》,它展示了大规模物理计算加强后的粒子、破碎、碰撞和流体应用,同时结合拥有曲面细分、置换贴图等先进3D图形技术后,能带来令人震撼的场景。
在本文DEMO介绍内容开始之前,需要强调的是,本文只能以截图这种静态方式来呈现DEMO的动态演示,并且这些DEMO都是无法进行测试的,无法给予性能方面的分析。静态截图可能很难甚至完全无法表现出动态视频中物体的运动、光线的变化以及粒子的飞扬、刚体的碰撞,强烈建议玩家在网络上观看这几款DEMO的高清视频,这会给你带来为直接、为深刻和为震撼的感受。
从上文的分析来看,目前的游戏还是在光影、模型和物理效果上存在着巨大的问题。这些问题需要耗费更多的显卡计算资源,而且对性能要求都非常高。因此,大部分面向普通用户和大部分玩家的游戏都不会使用太多的创新技术。力求全面解决这些问题的软件和游戏除了《孤岛危机》系列外,大部分都是厂商发布的技术演示DEMO。下面,本文就分别为大家展示这些DEMO中都运用了那些技术来解决光影、模型和物理问题。
光影问题解决代表:《孤岛危机3》技术DEMO、《撒玛利亚人》DEMO模型问题解决代表:《孤岛危机3》技术DEMO、《撒玛利亚人》DEMO物理问题解决代表:《元素》DEMO、《孤岛危机3》技术DEMO
更完美的光影效果
《孤岛危机3》技术DEMO
1.Real Time Volumetric CloudShadows实时体积云阴影
传统的云是以贴图的形式呈现的,并没有体积表现。在DirectX 10时代产生了体积云后,云本身拥有了体积,自然可以和光线发生互动。现在新的实时体积云阴影的本质主要是实时计算光线和云雾之间的互动效果。从实际视频效果来看,光线穿过半透明的云雾,形成了明暗不等的效果,这和现实世界中云雾在阳光下的效果比较相似。不过类似这样的效果如果采用传统算法的话,光线被遮挡部分会加入计算,资源耗费太多。Crytek应该采用了延迟光照的算法,降低了性能损耗,让这种计算变得更为实用(图1)。
2.Composite 3D Lens Flare &FX混合3D镜头光特效
目前的游戏中,当观察者和光源之间有物体遮挡时,会使用2D的方式加入一些光斑或者光束,并根据遮挡面积的大小来计算光束透明情况,其表现力和实际效果都显得很一般。混合3D镜头光特效则使用了3D的方法建立了数据模型,对光线、光斑以及透明度等效果的计算显然更为精准,效果也更为出色(图2)。
3.Procedural HDR Flares andShapes程序化高动态范围眩光和外形处理
这里展示的是程序化的HDR高光效果,以及对H DR效果做范围检测后所带来的过曝、光溢出等状态。传统的H DR效果也有范围检测等技术,但是可能在精度和使用方便程度上不够出色,因为传统HDR效果一般不会带来太多次生光源照亮场景。演示中的H DR和过曝效果不但很明显,而且明显次生光源照亮了墙壁和地板,并在这些物体上呈现了准确的明暗过度效果和阴影状态(图3)。
4.3rd Generation Real-timeGlobal Illumination第三代全局实时光照
全局光照一直是实现更高精度光照计算的重要方法,这种方法通过模拟光线在虚拟场景中的传播方式,将折射和反射光计算在内,生成了次生光源,可以带来非常逼真的光影效果。在该DE MO中,Crytek展示了第三代全局实时光照的实际效果(图4)。可以看到整个环境只有一个主光源,但是次生光源带来的反射光照还是照亮了一些暗部物体并呈现出了恰如其分的阴影。如果不使用类似技术的话,除了主光源直接照亮的部分外,其余处于阴影中的部分由于没有二次反射因此无法照亮,在实际画面中不会呈现出明暗相间的效果,立体感会大幅度削弱。
5.Dynamic Water Volume Caustics动态液体体积散射
这里呈现的是水本身对光的反射和折射带来的光照。在视频中大的亮点是右侧水滴处,水滴下来后改变了水面的状态,让光线有可能被反射到右侧的石壁上,再照亮石壁(图5)。这个过程不但是动态的,而且效果非常优秀。在传统的游戏中,类似处理是基本上不存在的。
6.Real-Time Volumetric FogShadows实时体积雾阴影
从实时体积雾阴影的效果来看,更像是传统体积光照计算的更进一步延伸。体积光的主要目的是给观察者和光源之间的物体,加入背向光源的阴影,用于凸显光照的立体感。体积光本身是后期处理,目前已经被滥用。而实时体积雾阴影则是真正的根据雾气和遮挡效果存在来计算出阴影和明暗状态,比体积光基本上没有明暗变化的“取巧”的效果更胜一筹(图6)。
7.Real-Time Area Lights实时面光源
目前的游戏中大多数使用的是点光源,面光源的使用基本没有。但实际生活中面光源的使用很多,比如电视机屏幕、广告牌等都是典型的面光源。环境如何和面光源发生互动并且完成面光源光照在终画面上的呈现,一直都是技术难题。这次在演示Demo中出现的面光源很可能是实时面光源首次在游戏中的应用(图7)。
8.Unlimited Particle FX Lighting无限粒子光照
目前的粒子效果,只是粒子本身存在光照,不会和周围环境产生互动。因为在一般情况下,场景中一旦出现粒子,数量肯定不少,如果每个粒子都存在光照,那么这些光照和周围物体的互动计算量将是一个庞大的数字,按照目前的计算能力来看很可能直接导致系统崩溃。所以我们一般只能看到粒子,但光照效果则基本没有。在这个DEMO中,令人惊讶的是Crytek实现了粒子对周围环境的光照效果,随机掉落的粒子带来了明暗不同的光照效果,给整个场景的气氛渲染带来了完全不一样的感受(图8)。据估计,Crytek应该没有使用精度比较高的算法,多是执行了一个低精度的近似算法,以尽可能在降低计算压力的基础上实现更好的效果。
图11
《撒玛利亚人》DEMO
1. Shadowed Point Light Reflection阴影点光源反射
传统的点光源反射技术无法产生理想的反射效果。传统的反射只是呈现一个死板的没有太多动态的“纯粹”反射而已。实际上在公路或者雨夜,地面并非绝对平面,也就是说反射光线存在各种各样的阻碍,因此终呈现效果是不连续的、多变的。在这种有阴影的点光源反射中,加入了不同的纹理,使得终呈现效果看起来如此多变而真实(图9)。
2.Billboard Reflection广告牌反射
和上文的阴影点光源反射一样,传统的广告反射是缺乏细节的。但是新的广告牌反射则让光源的细节尽可能符合真实情况并呈现在地面反射区域,同时结合地面不同的情况给予变化,终呈现出动态而符合实际的反射效果。此外,这些广告牌反射可以互相叠加、互相影响,使得画面更为精确、逼真(图10)。
3.Boken Depth of Field景深和散射
目前的新游戏中景深和散射也应用得比较多,但是高质量的景深效果还是很少有游戏能够实现。高质量景深的难度主要在于背景物体是否能够与符合光学特性的技术“融合”在一起。一些质量比较低的景深效果只是模糊了物体而已,不同物体的边缘依旧显得很清晰。在《撒玛利亚人》中,景深效果非常出色,和天然的摄影景深效果几乎难以区分(图11)。
4.Dynamic Reflection Shadows动态阴影反射
在湿滑、充满反射的环境下,物体本身需要在地面上呈现反射阴影,并且反射阴影需要随着物体运动而运动,这就是动态阴影反射效果(图12)。如果失去这种效果,在光微弱的环境下,物体很难呈现出光照阴影。如果再加上没有反射阴影的话,就类似飘浮在空中一样,显得虚假而令人难以接受。
5.Subsurface Scattering次表面散射
次表面散射是一个出现得比较早、但应用却比较少的技术,因为这个技术需要极高的计算量。一般次表面散射用于呈现半透明的物体,比如皮肤、玉石等。在次表面散射的计算中,需要先在物体内部设定一个反射面,然后使用光线照射,光线会在物体表面、反射面之间来回折射投射直到消失。折射透射的次数决定了次表面散射的成像质量,如果有类似渐变过度等效果还需要加入分支判断等更为复杂的程序,计算量极其庞大(图13)。
6.High Quality Shadows and Enhanced Bloom高质量阴影和增强的Bloom效果
《撒玛利亚人》DEMO中大约有120多个光源,这些光源本身会带来错综复杂的阴影情况。在阴影处理上,《撒玛利亚人》考虑到了多光源情况下对阴影的影响,带来了高质量的阴影效果。增强的Bloom效果主要用于呈现在雨夜发光物体周围的光亮情况,这种Bloom更为精确,影响范围更恰当,不会造成整个画面“虚糊”的感觉(图14)。
图19
图21
更为精美的模型细节
《孤岛危机3》技术DEMO
1.Pixel-Accurate Displacement Mapping精确像素置换贴图
传统的置换贴图基于颜色而生成偏移,终实现凹凸效果,因此也叫位移映射贴图。这项技术早在ATI的Di rectX9.0c演示《玩具店》DEMO中关于地面凹凸的效果就已经开始应用。一些游戏也利用这个技术来实现墙面的凹凸感,比如《孤岛危机》系列游戏就全部使用这个技术来实现石子路的凹凸起伏感。基于颜色的偏移精度不够,该技术只能用于一些比较大块、粗糙的地方,对树皮等细节表现上不太合适。在NVIDIA的《破晓》DEMO中,对树皮本身粗糙感的演示是基于曲面细分技术的。这次在《孤岛危机3》技术DEMO中,Crytek使用了类似技术,带来了基于像素的置换贴图,精度更高,效果逼真。(图15)。
2.Tessellated Vegetation植被曲面细分
传统曲面细分主要应用在墙面、地面等。在这次的演示DEMO中,为了更为精确地表现植物的细节,对植被也使用了曲面细分技术,配合高精度贴图,带来了几乎栩栩如生的植物细节表现(图16)。目前没有详细的说明来表明类似曲面细分技术的使用过程,据估计可能依旧是大幅度增加了三角形数量来实现更为平滑的植物叶片呈现,使其视觉效果更为优秀。
3.Top Secret Tessellated ToadTech绝密级曲面细分蟾蜍技术
从名字就可以看出,这项技术的应用效果肯定是令人震惊的。Crytek使用曲面细分技术模拟了蟾蜍背部凹凸不平的皮脂腺,再加上高精度的贴图和模型,带来了一个栩栩如生的蟾蜍效果(图17)。项技术暂时没有太多资料,因此不太清楚曲面细分在蟾蜍背部实现的具体过程。
《撒玛利亚人》DEMO
DX11 Tesselation&Displacemen曲面细分和置换贴图特殊应用
一般来说,表现烟雾的体积,就需要大量的顶点。大量的顶点又会给系统带来比较高的计算负荷。对烟雾、头发等细密、柔软物体的处理,一直都是图形处理中的难点。在烟雾的处理上,该DEMO使用了大量的多边形来形成烟雾本身,不过顶点数量非常少,在曲面细分技术处理后顶点大幅度增加,烟雾变得柔软而美观。事实上,该DEMO中烟雾的实现和NVIDIA的《破晓》DEMO中仙子的头发,其技术本质如出一辙,属于对曲面细分技术的典型应用。除了曲面细分以外,《撒玛利亚人》还在人物模型上使用曲面细分和置换贴图技术,实现了更为丰富的细节和更有立体感的效果(图18)。
逼真的物理效果
《元素》DEMO
1.大规模的粒子效果《元素》DEMO从一开始就展示了UE4引擎在粒子特效上的优势,比如一开始飘动的雪花、开门时爆出的雪片、炎魔苏醒时眼睛中的火花、炎魔动作带来的各种火焰粒子等,都是展示的重点(图19)。粒子效果的难度在于传统的CPU模拟这种大规模的个体行为显得力不从心,因为每个粒子都有自己独特的物理行为,大规模粒子的运动更适合GPU的并行处理。目前没有证据表明《元素》中的粒子模拟使用的是CPU模拟、Direct Compute模拟还是PhysX模拟。但无论如何,这是大规模粒子在3D图形中的一次成功应用。尤其需要提醒的是,粒子效果基本上都属于动态效果,强烈建议玩家观看视频,这样才能感受到大规模粒子模拟的震撼效果。
2.无处不在的破碎
目前有很多游戏使用破碎效果,不过问题在于这些破碎效果都显得很虚假,比如在《战地3》中,碎片会直接穿透地面,没有二次互动。反倒是在《暗黑破坏神3》中有比较优秀的破碎和物理效果,但是规模也不够大。其余的只有在《光荣使命》的测试软件中,才使用到PhysX的破碎效果,但是效果也显得不够完美。在《元素》中,大规模的破碎效果终于人带来真实和震撼的感觉(图20)。无论是圣殿垮塌的大规模掉落,还是炎魔举手投足对岩体造成的破坏,都有丰富的、随机而完全不同的碎片爆出。并且这些碎片在爆出后不会穿地消失,而是反弹或者碰撞,存在二次互动,碎片阴影也得以实现,充分展示了《元素》中优秀的破碎效果。如果不出意外的话,UE4依旧会和NVIDIA联手使用APEX的破碎和物理模拟,效果颇为不错。
3.高拟真的流体模拟
流体模拟也是一个难点。一般游戏中的水使用了动画模拟,除了溅起的水花外,游戏中的玩家和水本身是没有太多互动关系的。流体模拟的难度在于它也是大规模的粒子行为,如果将水看作一个一个水分子的话,流体就是一堆小球在重力作用下的运动,其中也包含了碰撞和反弹等,相当难处理。《元素》中的流体模拟主要用在火山熔岩的模拟上,比较恰当地展示了类似熔岩的高密度粘性流体的运动行为(图21)。
《孤岛危机3》技术DEMO
1 . Integrated Cloth&Vegetation Simulation集成布料和植物模拟系统
在这部分,《孤岛危机3》技术DEMO演示的重点是布料被气浪掀起的动态模拟、掉落的刚体以及植物对外界受力所产生的自然反应(图22)。布料和刚体部分实际上并不少见,在国产测试软件《光荣使命》中利用NVIDIA PhysX甚至有更好的实现。植物对外界受力所产生的自然反应则不太常见,演示使用的是直升飞机降落前的强大气流作用在密集植物上的场景,效果非常好,能明显感觉到,植物随着直升机螺旋桨旋转而带来的气流而有规则的运动效果。
未来游戏大有可为
经常听到有玩家抱怨说目前3D游戏已经快到尽头,画质也不会有太大提升,GPU和CPU也会渐渐变得性能过剩。从本文的介绍和分析来看,现在的游戏离真实场景还差得很远。GPU和CPU根本不是性能过剩,而是性能远远不足以支撑更多精美特效的发展,从而导致目前的游戏图形技术发展不够迅速。
好在从2012年开始,游戏的发展和技术进步速度又开始有了新变革,诸如《战地3》、《孤岛危机2》等一批新游戏的出现,进一步推动了游戏技术的应用和发展。未来游戏还是大有可为的,随着技术进步、GPU和CPU的不断前进,在不远的将来,玩家一定会玩到图形画质更为出色的3D游戏大作。
从技术发展的速度来看,未来游戏将会继续在光影效果、模型细节和物理效果上做出突破。其中各种物理效果可能是先被广泛应用的,因为无论是大规模图形粒子还是物理粒子的加入,都能显著提升游戏画面的细节和画质表现,给玩家更为震撼的游戏感和临场感。
其次,光影效果会在进一步加强计算精度、加强画面感染力和临场感的基础上进行加强,光源数量会大幅度增多,游戏中使用上千个光源来加强图形效果将不再罕见,这些变化会带来整体画面感官效果的大幅度提升。
后,受限于性能和游戏引擎支持问题,大规模曲面细分可能在未来一代甚至两代游戏中依旧很难看到全面应用,但是局部的应用会越来越多,并且游戏中人物和细节的建模也会越来越精细。
总的来说,随着显卡性能的进一步提升,那些受限于性能而无法使用的图形效果会逐渐开始使用,下一代游戏的画质革命的大幕正在徐徐拉开。