|
[原创]浅谈游戏中的各种优化手段。
(转载请注明A9VG)
作为一个老玩家,一直都喜欢研究游戏中的各种优化手段,虽然只是从玩家的角度观察游戏的表面,但是日子久了也对此有所研究。
科技日新月异,游戏机的运算能力也大幅提高,但是若一个游戏没有很好的运用优化手段,即便是在再强大的平台上也无法得到完美的体现,所以对于一个游戏来说,优化是相当重要的,完美的优化手段甚至可以使游戏看起来比想象中更加棒。
--------------------------------------
下面我就粗略的浅谈几个常用的优化手段,说的不正确的地方请大家踊跃指出来:
--------------------------------------
1,远近推递法:
适用于大场景游戏,但是游戏途中不可以出现有缝loading,比如TDU无限试驾/GTA等,建模师会根据需要建若干个精度的模型,绘制若干个精度的帖图,用于对应从玩家视角的不同的距离,远处就用低模低帖图,稍近一点用中模中帖图,最近时用高模高帖图,模型由远至近,精度由低至高,如果用渐变的手段,一般看起来并不会显得突兀。
--------------------------------------
2,滤镜挡板/细节挡板:
同样适用于庞大场景的游戏,在玩家视角合适的距离(远处)设置挡板,当二级场景(树木、行人、ai车等)进入该范围时才开始细化,阴影效果、反射等则通过滤镜挡板,因为太远的地方没有必要做的很仔细,两种挡板的距离可以设置一前一后,根据需要可以有效节约资源,因为二级场景(特别是即时投影)是吃资源大户。
--------------------------------------
3,材质转移模糊法:
比如极品9、GOW战争机器等,因为运用了高精度的材质,所以快速转移场景(极品9高速行驶/GOW180度转镜头时),材质就会变得模糊,以减少运算量,当玩家停住视角时,高精度的材质又被重置回。
--------------------------------------
4,障目法(节约视角):
如果你把电视机再拉宽几厘米,你也许会十分沮丧,因为在你看来是一个完整的游戏内部世界,其实只不过是只有你眼前大概75度的范围,其他295度的(你的身后、左边、右边)范围都是一片空白,当你朝你的身后看的时候,身后的游戏场景就被重建,之前身前的场景就被删除了,所以你看见的永远只是那大约75度范围内的东西,当然物理场景被删除不等于逻辑场景被删除,它们会以纯数据的形势驻留在缓存里,只要你一变视角,它们就又要出来“造房子”了。
--------------------------------------
5,障目法(看见的既是唯一的):
这是比较新的技术,最早是ATARI公司运用在DRIVER PARELLER-LINE(车神4-平行线)上的技术,这个游戏是目前大场景自由类游戏中能最快速切换场景的游戏,你若在布鲁克林接了一个任务,要你去新泽西杀一个混混,但是你到了新泽西任务失败后需要RETRY时,整个游戏可以在0.5秒内把你丢回布鲁克林。这是本节中要讲的技术的最完美的运用,所有你所看见的场景,都是唯一存在的,换句话说,你站在一栋大楼前,大楼后面的场景,也就是说被大楼挡住的地方实际上是空的,如果大楼的后面还有一栋大楼,一半可以被你看见,另一半被前面的大楼挡住了,那实际上后面的楼只有半栋,就是你能看见的范围,你看不见地方实际上是不存在的,(这个看起来比第4种方法更牛比!!),车神4把这种技术运用到了极限,每个物体都能拆分成无数个多边形,使它们如果被另一个物体挡住时,可以根据需要删除一部分你看不见的地方。目前XBOX360上运用这个技术比较完善的是[SAINTS ROW]黑街圣徒。
--------------------------------------
6,无LOADING大法(放在一起):
有些游戏,没有很大的场景,但是又需要的频繁的在无数个互相之间没有关联的场景中切换来切换去的,如果直接LODAING的话,游戏就会不流畅,也浪费系统的资源,所以有些游戏会把所有的场景放在一个空间里,当需要的时候,就把你随意的“丢来丢去”,这些游戏,最常见的一种情况就是刚刚进入游戏时需要 LOADING较长一段时间。
--------------------------------------
7,无LOADING大法(回不去了and先别走):
呵呵,玩过金刚、GOW、使命召唤的朋友一定知道,你走着走着,会有一个台阶要你跳下去,然后你跳下去后就跳不回去了,或者你刚刚走出一个场景,立马从天上飞落一块巨石堵住你原先来的路,回不去了,既然你已经回不去了,那么那些以前的场景就用不着了,系统会删了它们腾出缓存。第二种情况,你打完这个场景里所有的敌人,队友才把通往前方的路打开,你才能继续前进,因为那段期间,前面的场景正在拼命loading进刚才腾出的缓存中,如果你先过去了,还不掉进 “无底深渊”??所以当你“回不去了”的时候“先别走”。
--------------------------------------
8,顶点运算自救!!
有些游戏,如gta系列的,玩家的自由度较高,有时候某些牛比的玩家会以连开发人员都无法预料的方式“折腾”游戏,他们或者抢来30辆车子放在一起,然后丢颗雷,或者用秘籍打出无限火箭筒对这街道狂射。这些情况都会使游戏可以超过额定系统的顶点运算值,当超过顶点运算,系统就崩溃了,俗称“死机”,所以这类游戏一般都有一套完善的顶点运算自救程序,会预测下一个动作的运算值,如果预计会超过顶点运算值的话,就适当衰减游戏的效果和性能,(safe mode),直到不再出现有超过顶点运算的动作后才恢复游戏的本来效果和性能,包括调整场景/材质的精度、粒子和浮点的数量、衡定多边形的数量等,使之不会超出顶点运算范围。
--------------------------------------
9,美工优化:
这是最重要的一种优化方式之一,一个优秀的美工可以给物体贴上优秀的材质(法线/向量/凹凸等),或者进行场景的优化烘培,这样做能够节省场景角色的多边形数量来腾出更多资源用于处理其他的方面,美工的优化可以使原来不怎么像的建模看起来更逼真,在某种角度来说,这种优化方式的目的其实就是以欺骗玩家的眼睛来达到华丽的游戏效果的。
至于motion blur(动态模糊),许多人不理解,动态模糊的本来目的就是为了降低材质的精度来节约显存的吞吐量,只是你们这些只是知道好看的,呵呵,我知道的是,pc版的nfs9是没有关闭动态模糊的选项的,如果你的显卡不支持动态模糊的话,只能在低材质下运行游戏
:funk: :funk: |
|