News:一个优化的Starling图片批处理类
来自Starling中文站
翻译:郭少瑞
一个优化的Starling图片批处理类
注意:代码和文档仍处于测试阶段
ImageBatch类可以高效的(在CPU和内存方面)渲染大量的共享纹理的图片。这个类被设计为一个对象池:对象会被回收,数组永不修改。
尝试这个演示:有8千个粒子(位置,透明度,旋转以及不同的纹理)
http://philippe.elsass.me/lab/StarlingImageBatch
如果您不为所动,没有关系 - 只需要注意一下,Starling渲染模型相对于高度优化的演示或纯GPU粒子添加了一个重要的开销。但在这里,您可以独立实现每个对象的动画,并且和运动一些高多边形有很大的不同。
特性:
- 低内存占用,对象池
- 动画支持:x,y,缩放,透明度,颜色,旋转,纹理
- 共享的spritesheet支持
- 用"tag"属性自定义数据存储
重要细节:
批次有一个包含对象的数组(对象池),和一个'count'索引,表示有多少个对象在池中。当删除一个对象,它并不会被真的删除:
- 删除一个对象,只是根据索引,比如是索引i,将它和最后一个对象的索引交换'count-1',
- 计数器递减,因为现在的最后一个项目不应该被渲染
- 如果您遍历整个数组,索引为i的对象必须被重新处理
这个类是根据Starling的粒子系统,但受到了新的启发。