动态合批适用于模型简单
,材质相同
,数量很多
的运动物体,动态合批只会在程序运行时发生,在CPU中将可以合批的对象整理合并在一起后,向GPU发送一次绘制命令。因为动态批处理的工作原理是将所有游戏对象顶点转换到CPU上的世界空间,所以仅在该工作小于进行绘制调用的情况下,才有优势。
原理
- CPU所有的顶点信息会变换到世界坐标系下
- 将所有可以合批对象的顶点,连续填充到顶点和索引缓冲区,让GPU认为他们是一个整体。
动态合批的条件
- 材质相同
- 顶点数量不超过300
- 缩放不能为负值
- 多pass着色器会中断批处理。
与静态合批的差别
- 动态合批相对静态合批不会在运行时造成内存的显著增长,不会影响包体大小。
- 动态合批主要开销在于遍历顶点进行空间变换时对CPU性能的开销,静态合批没有这个开销。
- 动态合批使用根据渲染器类型分配的公共缓冲区,静态合批使用自己的专用缓冲区。