做游戏时经常会遇到这样的场景,就是有很多人、很多怪,每个人都包含了影子、模型动画、血条三个部分。最简单的渲染方式是,将一个人设置成一个 DisplayObjectContainer,这个对象有三个子对象:一个人、一个影子和一个血条,这样每个人的渲染次数就是3,进而8个人的渲染次数就是24。优化后是10,如何做这个优化?方法非常简单,就是你把所有的影子放在一个Container上,把人放在一个Container上,再把血条放在一个Container上。
由于所有影子的纹理都是一样的,所以引擎底层会自动开启批次合并,渲染次数是是1,然后渲染8个人,这8个人的纹理一般都是不一样的,所以就是8,上面就是血条的纹理也是一样的所以也是1。把这三者加起来,最终的优化结果就是从 24降低到10。