我正在使用flash builder为web创建一个珠光宝气的风格游戏,我想知道它是最好的(更高的帧率,渲染密集度较低,在所有类型的计算机上都很快),使用actionscript 3(显示列表)的本机渲染或Starling 2D Framework的gpu渲染?我之所以想要使用原生flash渲染,是因为根据我的研究,flash将利用重绘区域,并且只重绘需要更新的舞台部分,而starling将在每一帧中重新渲染整个舞台。在宝石风格的游戏中,有许多静态对象和较少的动态对象,因此通常不需要在每一帧中重新绘制整个阶段,只需重新绘制阶段的一小部分。使用ActionScript3的原生渲染调用是更好的性能,还是使用starling框架来利用gpu加速渲染更明智?任何观点都将不胜感激。谢谢。
发布于 2012-11-20 23:56:55
如果你正在使用图片,Starling会更快,特别是在移动设备上。
静态区域可以渲染为单个Sprite,也可以在运行时将其展平以提高性能。
如果你正在绘图,在Starling中,你需要绘制到一个位图,然后使用它作为Sprite。但是,如果所有内容都在同一个sprite表中,您将获得更好的性能。
虽然Starling确实绘制了每一帧,但这是一种不同的操作。以下是实际发生的情况:
1)将app正在使用的纹理(图片)上传到GPU。这只需要做一次。
2)每一帧,Starling告诉GPU“用这个比例和旋转在这个位置渲染这个纹理”。这被称为“绘制调用”,但它的速度非常快。Starling的巧妙之处在于,它可以在某些情况下批量处理这些绘制调用,以获得显著的速度提升。
所以,是的,每一帧都是“重绘”的,但使用的是GPU的硬件加速。
在移动设备上,Starling (或类似的)真的是以60fps的速度做事情的唯一方法。
https://stackoverflow.com/questions/13474837
复制相似问题