动态合批(运行时自动将贴图合并减少渲染批次):
1、可以在项目中指定设置 CLEANUP_IMAGE_CACHE 宏配置,当设置为false时动态合批开启。原理是指定贴图上传到gpu后是否删除原始图片的缓存,如果删除了就无法动态合批。如果对内存要求不高可以关闭。
2、动态合批默认只有宽高都小于512的图片才能参与,否则会打断合批,可以通过dynamicAtlasManager.maxFrameSize = 512自行更改设置。
3、动态合批的过程可以理解为深度优先遍历,按节点树从显示层级高到低遍历合并贴图,如果遇到无法合批的节点会打断合批,重新开始新合批。
遍历顺序:
4、每一个mask节点及其子节点都可以理解为一个独立的动态合批,不会与其他节点合批,并且mask组件会打断动态合批。
5、label组件不会与sprite组件进行动态合批,但是label组件在设置为bitmap时,连bitmap模式的label组件会与sprite组件进行动态合批(将字符串纹理合并为一个大的图集),这样每次修改文本会导致图集需要重新生成,所以只适合静态文本。
6、label组件的char模式会将文本以字符为单位,将每个使用到的字符纹理添加到一张固定大小的全局的图集中去渲染,对于重复使用的例如数字文本,可以采用char
官方文档: