优化渲染提高性能
CPU
- 对象的创建、加载、文件读取采用对象池,少使用临时变量;
- 对象隐藏而不销毁
- 使用预加载,推迟对象的创建,将创建放到多个任务中
- 提前计算好排版布局,缓存起来,简化视图层级组件,不可见的顶点不计算
- 减少顶点骨骼面片数量,减少计算复杂度
- 减少绘制参数变更
GPU
- 纹理渲染:尽量减少短时间内显示大量图片,将纹理打包成图集,多张图片合成一张显示来减少材质的数量;减小图片大小;采用多级纹理
- 双缓存机制
- 将离屏渲染操作转嫁到CPU上,比如用一张已绘制好的圆角矩形图片覆盖上去模拟相似的视觉效果。
- 避免使用阴影、遮罩、反光,会增加渲染次数,使用光照贴图而非实时光。
- 视图混合:减少视图数量和层次,不透明物体关闭混合,避免alpha通道合成
内存优化
- 释放AssetBundle占用的资源
- 压缩美术资源,减小模型和贴图大小
- 压缩自带类库
合批,降低drawcall
合批发生在裁剪之后,材质相同,mesh相同,在一定面片数以内的物体可采用合批的方式
静态合批: 内存开销大,限制少
动态合批: 限制多: 1. 材质相同 2. mesh顶点数少于300
3. 不能缩放 4. shader不能使用多通道