经济学中关于该门学科有一段表述:社会中所有的财富和资源总是有限的,而消费群体的欲望总是无限的,为了尽可能的将最合理、最迫切的资源最有效率地分配给所有的人群,经济学孕育而生,因为它本质上是关于 资源有效率的配置的科学,稀缺性是它存在的原因,效率则是它存在的意义。虽然没有什么交集,但是对于我们每天都要进行的游戏而言,机器的运算力和我们的感官欲望也是这样的一对矛盾:在有限的运算力下,对应的是无限的 感官欲望,这时我们需要将有限的机能最合理的分配给不同的特效,在画面质量和体验、帧率中取得一个最科学的平衡。
由风格一向硬核的id Software开发的Doom在选项上十分复杂
和家用主机(Console)不同,PC游戏面对的是以千万计的玩家,虽然技术上我们一直鼓励更多、更特别的游戏画面选项,因为这不仅是图形技术最好的利用之一,同时也可以反哺图形技术的发展。然而考虑到玩家群体几乎海量的硬件情况,想要获得和家用主机一样稳定的开发环境是不可能的,不仅开发团队需要耐心的为尽可能多的设备优化,玩家也需要对主要的画面选项及其原理有大致的了解,这样才能有助于自己的游戏体验,因此游戏过程中帧数不加的读者可以根据实际配置适当优化画面选项。
从特性(Features)上分类,我们的画面选项可以分为功能性(Functional)、材质纹理(Tressure)、光影效果(Lightings)、建模(Models),以及其他更具体的特性。首先解释一下如此分类的依据:功能性一般为最基础的选项,包括垂直同步开关、输出屏幕比率(16:9)、抗锯齿(AA)方案、等等, 它们起到的是一般的功能性作用。材质纹理为最基础、最常见的选项之一,包括材质效果、纹理效果、贴图精度、植被效果、地表效果等等,几乎可以覆盖所有以分辨率为单位的目标,我们常说的“全高画质”、“最高特效”中的“高”对应的也是这一类。光影效果可能是最为复杂多变的类别之一, 从环境光遮蔽、体积光、阴影、软阴影、硬阴影、镜头光晕等等,多样化而复杂化的光影效果都是为了提供更逼真的光效。
简单暴力、土豪随意:超级采样抗锯齿(Super Sampling Anti-Aliasing)
我们首先从抗锯齿技术开始说起,之所以会产生锯齿是因为3D图形绘制过程中像素定位引起的,而抗锯齿原理本身就是在某个像素的周围采样若干次,让某一个像素拥有周围其他几个像素的信息,因此看起来仿佛变得圆润流畅了,但是如何在消除锯齿的同时又避免图形变得模糊就相当考验开发人员的算法水平了。
作为性能敏感名单的头名,超级采样并不是一个性能黑洞,正相反它可以提供相当好的抗锯齿效果,只不过超级采样抗锯齿在原理上相当的直接暴力:直接将图形按照数倍于屏幕分辨率的规格 再选取2-4个采样然后再压缩为原始分辨率压缩至显存中,也就是放大-采样-模糊-压缩-输出的过程。再实际游戏中,你以为你看到的是人畜无害的1920*1080分辨率,但是 在背后人家却以4K的规格渲染采样,显卡的工作量也很容易成倍数的上升,这样一来 虽然锯齿被消除的很干脆,但同时资源耗用呈直线上升,原理上NVIDIA的动态超级分辨率(Dynamic Super Resolution)和AMD的VSR(Virtual Super Relolution)也是如此。
我们使用《古墓丽影:崛起》内置的Benchmark功能在1080P分辨率、DX12下进行对于超级采样抗锯齿性能测试,为了消除干扰性选项的影响,我们首先将抗锯齿方案、真实毛发效果、环境遮蔽光方案全部关系,仅仅保留抗锯齿作为变量,同时为了真实体现性能影响,我们将Benchmark三个场景的帧数全部记录,而不仅仅对比最后平均帧数。
关于测试平台,这次选用的是稍稍年迈一些的B75平台,Intel Ivy Bridge架构E3-1230V2处理器,8GB内存,索泰GTX 1060 AMP! Edition显卡。
在上述选项全部关闭的条件下,三个场景的帧数分别为103.29、75.92、54.87帧,平均帧数为78.02帧,这时的帧数体验已经很完美。开启SSAA 2X之后,三个场景的帧数暴跌至69.52、38.07、42.52,平均帧数为50.07,而更进一步开启SSAA 4X之后,三个场景的帧数分别为50.81、28.36、16.85,平均帧数为32.07。
多重采样抗锯齿(Multi Sampling Anti Aliasing)
从原理上说多重采样抗锯齿是超级采样抗锯齿的一个衍生品,所不同的是它仅仅对画面中的Z缓存和模板缓存进行高倍采样,换句话说只对画面中的物体边缘进行抗锯齿,但往往锯齿都出现在物体的边缘而非内部,因此多重采样抗锯齿也可以说是一种讨巧的算法,但原理本身依然是画质至上的产物,因此对于性能依然有较大的影响。
自从2013年的《古墓丽影9》以来加入TressFX技术、《使命召唤:幽灵》加入HairWorks技术以来,更为真实的毛发技术开始为我们熟知,这些技术大多利用计算能力强大的GPU生成大量真实独立的毛发,但是这背后的计算量也相当惊人。
我们使用《巫师3:狂猎》和《古墓丽影:崛起》测试真实毛发效果对于帧数的影响,虽然都是一种技术,但是在前者中被称为HairWorks,也是我们最为熟悉的名称,而在后者游戏选项中被称为PireHair。我们先选用后者的Benchmark参与测试,大家可以参见下方的图表,红色数据为关闭一切选项,蓝色为开启毛发选项。大家可以重点看到第三个场景,也就是野外场景的帧数下降十分明显。
我们再来看看《巫师3》中HairWorks性能敏感程度,我们选取室外和城镇中心街道两处场景,每处场景帧数毛发技术开启与否各测试两遍。在农田中关闭毛发技术之后帧数为平均帧为70.912、67.425帧,而开启之后帧数降至56.895、54.025帧。回到城镇中,关闭毛发技术帧数为75.011、68.291帧,而开启之后帧数为55.463、52.658帧。
环境光遮蔽(Ambient Occlusion)
顾名思义,环境光遮蔽解决的是光影问题,具体来说是光线在多次反射、漫反射之后的路径和投影情况,因此可以大幅度增强复杂环境下的光影立体感,层次感,否则平面内的光影缺乏变化和过渡,看上去苍白而空洞。光线的路径和反射需求的是庞大的计算量,甚至是树叶和草木都需要计算光线的阴影和反射,真实的光影背后是沉重的性能消耗。
我们利用《全境封锁》自带的Benchmark功能进行测试,环境遮蔽光、粒子效果、粒子雾化、随风飘舞等效果全部关闭,可以跑出72.9帧的帧数,但是将环境遮蔽光选项开至HBAO 后帧数下降至66.1帧。
粒子系统在游戏中往往以烟雾、火焰、体积光、雪花等形式存在,它们不仅仅需要以相当大的数量体现,同时往往需要风或者其他物体互动,比如全境封锁中的雪花粒子会随风飘动、烟雾不仅会根据周围走过的特工的动作而飘动,甚至可以体现光线穿透烟雾的真实粒子效果,如同我们熟知的丁达尔效应。
这一类选项我们依旧选用《全境封锁》测量,将粒子效果和粒子雾化水平开至最高,便开启随风飘舞效果,帧数跌落60帧,只有58.5帧。
草木、植被系统(Grass Vagatation)
草木和植被同样是一个计算量上颇为尴尬的问题:如果它们的数量太小太零星或者太重复则视觉难以满足感观的要求,这方面可以参考《巫师3:狂猎》,虽然后者是一款颇为难得的游戏,但是草木却缺乏立体感和多样性,因此经常和纸片一样飘动。而如果你在植被上花了太多功夫,使用非常精细的建模,就算美工的人力没有问题,运算量也会让显卡捉襟见肘,如果各位在玩《上古卷轴5:天际》的时候使用过疯狂的植被Mod,就会体验到对于帧数和显存的双重折磨,原理上说我们熟知的毛发技术,也就是TressFX、Hairworks为何对于帧数影响也有这方面的原因。
虽然《巫师3:狂猎》画面素质一骑绝尘,但是植被的单调仍然比较遗憾
绘制距离(Draw Distance)
又是一个顾名思义的选项,绘制距离这个选项在早期的《侠盗猎车手:圣安地列斯》起到了十分明显的影响,在Xbox 360/PlayStation 3世代又让《武装突袭》系列成为了硬件杀手。绘制距离可怕的地方在于它可以直接将需要计算的单位数量提高几个层次,瞬间给予CPU/GPU极大的压力和杀伤,相信曾把《武装突袭2》的绘制距离开至最高的玩家应该深有体会。
就算半径没有增加很多,绘制面积依然可能大爆炸般的提高,单位也随之提高
这一类选项最好也是最适宜的测试项目就是《武装突袭》系列了和《侠盗猎车手5》这类沙盘游戏了。我们首先选取《武装突袭2:箭头行动》进行测试,该作的可见度可在500单位至10000单位之间进行滑块调节,我们可以发现最低和最高之间差异简直天差地别,500单位距离下远处几乎全部是海市蜃楼,而最高10000单位距离下远处的山体一个不剩全部渲染了出来。我们选取了视野中一块较高的山头,在山顶上奔跑15秒记录过程中的帧数,选取了最高1000单位距离、5000单位距离、默认1600单位距离和最低500单位距离 。
渲染距离对于帧数的影响就像心跳对生命的影响一般,在四种单位渲染距离下平均帧数依次只有39.801、94.463、214.407、287.111帧,足以见得渲染距离对于性能和帧数的影响。
同时我们还可以利用《侠盗猎车手5》的自带Benchmark进行测试,我们在设置中将渲染距离和阴影距离在最高和最低环境通过Benchmark场景测试,具体成绩大家可以参考下方的帧数对比图,五个场景的成绩用五种颜色被标注了出来,需要特别提醒大家的是最后一个场景,也就红色场景的时长远远超过其他的四个场景,因此第五个场景的成绩最有价值。
分辨率比率(Resolution Scale)
从原理上说Resolution Scale和超级采样抗锯齿有相似之处,都是将超倍数的像素渲染之后压缩输出,也就是1080P的屏幕输出压缩之后的4K画面,所不同的是前者往往采用百分比的形式表示,而后者采用倍数的形式表示。分辨率比率这一选项在大家熟知的《战地4》、《荣誉勋章:战士》和《战地1》中都有出现,当你提高百分比的时候你的显卡就在如同界王拳的强度下工作,因此帧数暴降也是必然的。
所有的Ultra、Max质量选项
这一项泛指所有游戏的最高档画面设置,为什么要一棒子打死所有的游戏?原因在于就画质(Quality)和帧数(Preformance)这对矛盾的对比中,最高档选项的性价比往往是最低的。如果你将贴图质量每一档选项下的贴图进行横向对比会发现从画质上最高一档比倒数第二档往往提升并不明显,但是帧数却下滑的相对严重,因此从性价比上说玩家选择倒数第二档的Very High往往是更实惠的选择。
总结:大家要对原理学习一个
从上面的例子中我们可以看出,之所以很多选项会让帧数受到较大的影响,关键就是原理上他们需要相当大的计算量,而这些特效往往都是比较奢侈路线的,不过大家都理解市场规律,有针对高端玩家的玩物出现都往往在日后会出现针对主流玩家的妥协方案上市,比我们熟悉的后处理(Post-Processing)抗锯齿 ,也就是FXAA、SMAA此类,相比计算量较大的超级采样抗锯齿和多重采样抗锯齿,后处理抗锯齿的特点在于处理速度快得多,性能损耗也小得多,虽然不可避免得会导致画面模糊问题,但是微不足道的模糊相对于帧数已经是难以察觉的幸福了。因此大家看到一个陌生的选项应该收集一些原理上的成因,再寻找一些原理上的替代物,这样才能在画面质量和帧数上获得一个不错的平衡。