<入门精要>第16章读书笔记.
影响性能的因素
-
CPU
-Drawcall数量多.
-物理计算,骨骼蒙皮,粒子系统以及复杂的脚本等. -
GPU
-顶点数量多
-分辨率大
-overdraw次数多
-显存不足
-顶点,片源着色器计算复杂 -
带宽
-使用了大尺寸未压缩的纹理
-分辨率过高的帧缓存
针对于CPU的优化
CPU主要负责保证帧率,最常见的优化技术是采用批处理(Batching),目的是减少每帧的drawcall数量.
批处理的核心思路,就是每次调用drawcall的时候尽量多的处理多个物体.
批处理的过程:使用同一个材质球(注意不是同一个shader)的物体.把这些物体的顶点数据合并,一起发送给GPU,就完成了一次批处理.
Unity支持两种方式:动态批处理和静态批处理.
批处理
-
动态批处理
动态批处理基本由Unity自动完成,不需要自己操作,并且对象可移动,缺点是受限比较多
动态批处理的限制条件:
1.网格顶点数量不能过多.(目前版本粗略限定在900以内)
2.使用Lightmap的物体需要使用额外的渲染参数,这些参数需要指向Lightmap中的同一个位置.
3.多Pass的Shader会中断批处理. -
静态批处理
实现原理:只在运行开始阶段,将需要批处理的模型合并到一个新的网格结构中,并且这些模型不可以在运行时移动.
缺点:需要占用更多内存来存储合并后的