1 远景原理介绍
1.1 什么是远景?
在大多数使用3D技术的角色扮演游戏里,玩家所看到的游戏内画面都是通过一个位于玩家面前或者附近,能够相对自由地转动的镜头展现出来的。在游戏的三维空间里,离镜头越近的物体就显得越大;离镜头越远,物体便显得越小,到最后彻底不可见。这就产生了一个问题:怎么处理那些离镜头较远,玩家看不见或者看不太真切的物体?毕竟,设备的性能总是有限的,而渲染远处的物体听上去简单,实则却相当耗费性能。举个例子:如果游戏渲染玩家附近5*5范围内的物体,那么需要渲染的面积是25个平方单位;但是如果我们把渲染距离提升一倍,来到10*10,那么需要渲染的面积就变成了100个平方单位,是原先的4倍之多。很明显,与其顶着不成比例的性能消耗去把远处的物体完整渲染出来,不如耍个花招,把它们替换成低精度模型或者干脆让一些不那么显眼的物体消失。如此节约下来的性能可以用来提升帧数,也可以用于提升近景的表现——毕竟大多数情况下玩家主要关注的还是近处的物体。这便是LOD(细节层次,level of detail)系统的基本理念:为一个物体配上若干个不同精度的缩水版模型;距离玩家越远的物体,其实际使用的模型精度就越低,从而达到节省性能的目的。在通俗的说法当中,LOD这一简称已经失去了它原本的意义,而被用来指代这些只会出现在远处的缩水版模型,也就是中文里的“远景”。
一言以蔽之,远景系统的根本目的在于节约性能。就目前而言,近景模型和材质质量的提升依旧可以说一眼望不到头:只要镜头凑得够近,玩家总能看到更多的细节,而现有的硬件机能和3D渲染技术还并不能做到实时输出足以以假乱真的画面。但是在正常的游戏体验里,远景是不可能出现在靠近镜头的地方的。在距离足够接近时,远景模型自然会被替换成完整模型。这也意味着,远景的精度只要达到了“位于远处时不仔细看看不太出和近景完整模型的区别”就足够了。超过这个临界点,任何往远景上额外投入的资源和性能基本都相当于打了水漂。这条原则需要时刻牢记——不要把宝贵的性能挥霍在无谓的地方!
当然,不同玩家对远景细致程度的要求不可能完全相同,而在大多数时候,远景也并不能真的做到以假乱真。部分情况下,远景系统可能会导致游戏观感显著下降:远景模型过于粗糙;部分物体在距离较远时直接消失;远景模型和近景模型出现较为明显的不匹配,以上这些都是常见的例子。我们可以借助各种手段减少这类现象出现的频率,或者降低它们造成的影响,但是只要远景系统的基本运行原理没有改变,它们就无法根除。
1.1 什么是远景?
在大多数使用3D技术的角色扮演游戏里,玩家所看到的游戏内画面都是通过一个位于玩家面前或者附近,能够相对自由地转动的镜头展现出来的。在游戏的三维空间里,离镜头越近的物体就显得越大;离镜头越远,物体便显得越小,到最后彻底不可见。这就产生了一个问题:怎么处理那些离镜头较远,玩家看不见或者看不太真切的物体?毕竟,设备的性能总是有限的,而渲染远处的物体听上去简单,实则却相当耗费性能。举个例子:如果游戏渲染玩家附近5*5范围内的物体,那么需要渲染的面积是25个平方单位;但是如果我们把渲染距离提升一倍,来到10*10,那么需要渲染的面积就变成了100个平方单位,是原先的4倍之多。很明显,与其顶着不成比例的性能消耗去把远处的物体完整渲染出来,不如耍个花招,把它们替换成低精度模型或者干脆让一些不那么显眼的物体消失。如此节约下来的性能可以用来提升帧数,也可以用于提升近景的表现——毕竟大多数情况下玩家主要关注的还是近处的物体。这便是LOD(细节层次,level of detail)系统的基本理念:为一个物体配上若干个不同精度的缩水版模型;距离玩家越远的物体,其实际使用的模型精度就越低,从而达到节省性能的目的。在通俗的说法当中,LOD这一简称已经失去了它原本的意义,而被用来指代这些只会出现在远处的缩水版模型,也就是中文里的“远景”。
一言以蔽之,远景系统的根本目的在于节约性能。就目前而言,近景模型和材质质量的提升依旧可以说一眼望不到头:只要镜头凑得够近,玩家总能看到更多的细节,而现有的硬件机能和3D渲染技术还并不能做到实时输出足以以假乱真的画面。但是在正常的游戏体验里,远景是不可能出现在靠近镜头的地方的。在距离足够接近时,远景模型自然会被替换成完整模型。这也意味着,远景的精度只要达到了“位于远处时不仔细看看不太出和近景完整模型的区别”就足够了。超过这个临界点,任何往远景上额外投入的资源和性能基本都相当于打了水漂。这条原则需要时刻牢记——不要把宝贵的性能挥霍在无谓的地方!
当然,不同玩家对远景细致程度的要求不可能完全相同,而在大多数时候,远景也并不能真的做到以假乱真。部分情况下,远景系统可能会导致游戏观感显著下降:远景模型过于粗糙;部分物体在距离较远时直接消失;远景模型和近景模型出现较为明显的不匹配,以上这些都是常见的例子。我们可以借助各种手段减少这类现象出现的频率,或者降低它们造成的影响,但是只要远景系统的基本运行原理没有改变,它们就无法根除。