Home » Flash相关 » 技术人生 » starling1.6升级starling2.1的心酸历程

starling1.6升级starling2.1的心酸历程

starling1.6升级starling2.1的心酸历程

starling2.0一出来,业界哗然,因为这次2.0的框架跟starling 1.x系列相比,实在是差别太大:
1、之前的四边形(Quad)是实际显示对象的基础,2.0之后便是以网格(Mesh)作为最基本的显示对象结构。
这一点,我必须要给个赞。网格模型要比四边形更加灵活。我们在Quad时代,就扩展了一个网格显示对象。网格的妙处,谁用谁知道。基于网格思想,我们对原本的矩形纹理机进行了裁剪,可以省下不少内存空间。
2、以前渲染直接在显示对象里面写Shader着色器(更加内聚),starling2.0将这部分代码进行了解耦。引入了style和effect这两个概念类。一个网格的显示效果是通过style来控制的。style对象保存显示对象的样式参数,比如apha,color等等。effect则定义了AGAL底层代码。
看上去更加优雅。
3、MeshBatch,批处理。这是starling一贯的做法。这个改变更加强化了批处理的应用范围。
4、自动检测脏区域。刚开始觉得挺高大上,后面发现,实际是在牺牲了部分CPU资源,来减少GPU负荷。个人觉得,有点得不偿失。因为我们的目标其实是希望GPU干更多的活。

总而言之,便利往往会有代价的。解耦不是越小越好。升级starling2.x,作为游戏,还是三思而行。

    分享到: