Starling的性能优化(译文)Part 3
一日不复药,血压归旧高,诚如二弟所言,高血压是一辈子的事。继续完成剩余译文。
扁平化Sprite(Flattened Sprites)
为了追求最小化的状态变更,你已经做了一大堆事以期你的游戏获得性能提升。然而Starling仍然需要遍历你所有的对象,检查它们的状态,并且把它们的数据提交到GPU——这可是在每一帧都发生的事啊!(好恐怖啊!)
别慌,我们下一步就来搞定这个问题。如果在你的游戏中的某个部分的几何图案处于静态,不发生(或者很少发生)变化,可以在这个Sprite上调用flatten方法。Starling将会预处理它和它的子对象数据并提交给GPU。在接下来的帧调用中,它将被正常的绘制,不触发任何CPU处理,也不需要在上传它的数据给GPU。
这是一个非常棒的特性,这潜在地大量减轻了GPU的负担。但是要注意的是即便扁平化的sprite们被从状态变更的苦难中隔离了出来:如果被扁平化的Sprite中包含有不同渲染状态的子对象,它仍然是会被多步骤的绘制的。