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的粒子系统,但受到了新的启发。

http://philippe.elsass.me/lab/StarlingImageBatch

个人工具
名字空间

变换
操作
导航
Starling中文资料
Starling原创教程
论坛
友链
工具箱