unity静态和动态批处理
目的:批处理是为了减少CPU发给GPU顶点信息的次数,也就是draw call。批处理需要物体有相同的材质和较少的顶点。
动态批处理:
1、unity自行完成,用于可移动物体的批处理
2、顶点小于900时可进行,需要用到位置、法线和纹理坐标等信息时顶点会减少到300以下。
3、多pass shader会减少顶点的批处理,例如做的多pass毛发时,使用C#来生成物体实例可以减少draw call的次数。
4、使用光照纹理的物体需要小心处理。为了让这些物体可以被动态批处理,需要保证它们指向光照纹理中的同一位置(待高人指点)
静态批处理:
1、开始阶段运行,静态物体合并到一个新网格。
2、只进行一次合并,比动态批处理高效。
3、要使用更多的内存存储新网格。
影响draw call的因素:
1、顶点过多。
2、使用多pass,一个pass需要draw call一次。
3、材质不同。