Laya3D优化思路
DrawCall优化思路:
1:避免交叉渲染(UI)
相邻相同的图集在渲染时会自动合并,这样可减少DrawCall。所以尽量要保证图集的图片渲染顺序是挨着的。在LayaUI编辑器中,如果相同颜色的圆点被交叉打断,就会增加DC,就需要调整层次关系,让相同颜色圆点的资源顺序排列。此外,尽量保证同一个面板中的所有资源用一个图集。
2:复用3D材质。
3D游戏的DrawCall,Laya3D会对相同的材质进行合并优化。
3:控制常用模型的面数。
Laya3D会对20个面以下的相同模型,自动动态合并(例如特效和子弹等),因此要求美术对反复使用的模型尽量控制页数。
4:静态场景的优化方法。
对于材质相同的静态场景,使用StaticBatchManager.combine(),使用后可以大量减少DrawCall数量。
减少Sprite优化思路:
1:尽量减少不必要的层次嵌套,就可减少Sprite数量。
2:非可见区域的处理:
在非可见区域的对象尽量要从显示列表移除,或者将对象设置visible=false。如果不设置,就会遍历全部的显示对象节点。存在大量的对象时,就会导致性能降低。
3:设置cacheAs属性(2D):
对于容器内有大量静态的内容或不经常变化的内容(如按钮),可以对整个窗口设置cacheAs=“bitmap”,以减少Sprite的数量。
4:3D模型数量控制:
美术尽量合并模型减少数量,达到减少Sprite数量,减少引擎渲染时遍历节点的时间。也可以在Unity中使用MeshBaker插件,合并模型。
5:摄像机裁剪优化。
对于大型的3D场景,模型的面数与材质非常多,但是远处的部分几乎是看不清楚,这时可以采用摄像机裁剪功能,将远处看不清的模型与材质不渲染,结合场景雾效果,可减少Sprite数量与DrawCall数量。
减少CPU的消耗: