虚幻3引擎针对性能和内存的优化办法

发表于2016-09-28
评论0 4k浏览
  制作关卡时除了要考虑视觉效果以外,还需要关注性能和内存。
  内存即载入关卡时所需要的数据量,被暂存在内存里。包括:贴图、Mesh、VFX、音效等。XBOX360的总内存是512M(比现在的PC的内存要小很多),被分配给各个部分。各个部分有一处内存不足时,游戏就会报错跳出。就好像现在的PC游戏都要求一个最低配置,达不到配置时,就玩不了这个游戏。
  在实时游戏中,以某款游戏为例,Xbox360 内存是这样划分的:
  Xbox 360 Memory distribution
  48 MB for meshes (static & skeletal)
  175 MB textures (texture cache)
    --120 MB Texture Cache
    --55 MB non-streamed textures
           UI
           Light Map textures
           Other textures flagged to not stream
  32 MB Animation
  32 MB Audio
  性能即每一帧的计算速度,计算每一帧花费的时间越长表明性能越差。影响性能的因素有:同屏面数,同屏DPC(物件个数),材质球的复杂程度等
  以FPS游戏为例,它的FPS(Frame per second)底限是30帧/秒,有时候高于30帧/秒时也会人为锁定在30.
  在制作时,优先考虑内存,在内存不超的情况下考虑性能。处理性能和内存的方式不是固定的,需要根据实际情况而定。
  Level制作中针对内存的优化方法:
1、避免出现只有使用1-2次的物件,用类似的频繁使用的物件替换,提高重用率
2、提高贴图重用率=减少贴图数量或提高贴图精度
3、尽量使用24位TGA图
4、通过玩游戏确认哪些是看得到的,通常mesh被加到玩家看不到的地方
5、确保没有隐藏的不起作用的mesh
6、通过跑游戏确认哪些是看得到的,避免mesh被加到玩家看不到的地方,玩家不太注意的地方也可以用精度比较低的模型贴图,如远景
7、在U3中优化ASE属性,一般用在游戏场景外的模型

  Level制作中针对性能的优化方法:
1、利用大的遮挡减少出现在屏幕中的物件数量,尽量避免开阔的空间(能看到很多东西)
2、合理利用实时光,尽量用半径小的区域光,避免同一物体受多盏实时光的照射
3、使用静态光替代实时光,使用LightMap或顶点光
4、简化Shader,用便宜的方法模拟;经常用到有类似功能的Shader整合成模版;尽量不要使用双面显示
5、使用次数很多的高面mesh去掉或减面;确保使用次数很多的为简单Mesh,例如一个2000面的物件用了100次,考虑用200面的物件替换
6、通过修改设定,达到同样的视觉效果(原设没有太多限制的情况下可以使用)
腾讯GAD游戏程序交流群:484290331Gad游戏开发核心用户群

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引