iOS上最快的绘图方法是什么?

时间:2012-02-13 03:14:47

标签: ios performance opengl-es

我正在iOS上开发2D游戏,但我发现很难快速绘制(Retina显示屏上的60 FPS)。

我第一次使用UIKit进行绘图,这当然不适合游戏。我不会在没有减速的情况下画几个精灵。

然后我转向OpenGL,因为我读到它是最接近GPU的(我认为这意味着它是最快的)。我正在使用glDrawArrays()。当我在模拟器上运行时,FPS在我达到200多个三角形时掉线。人们说这是因为模拟器或计算机没有经过优化来运行iOS OpenGL。然后我在真实设备上测试了它,令我惊讶的是,性能差异非常小。它仍然无法顺利运行那么少的三角形 - 我知道iOS上的其他游戏使用更多的多边形,着色器,3D图形等。

当我通过Instruments运行它来检查OpenGL性能时,它告诉我可以通过使用VBO加快速度。所以我改写了我的代码来改为使用VBO,每帧更新所有顶点。性能提升很少,我仍然不能超过200个三角形,一致的60 FPS。这就是单独的2D绘图,没有上下文更改/转换。我还没有编写游戏 - 没有任何对象没有CPU密集型任务。

我问的每个人都说OpenGL是最佳表现。我怎么可能做错了?我假设OpenGL可以处理每帧更新的多个多边形 - 是吗?其他游戏使用哪种方法,我认为它们运行良好,如3D无限刀片,甚至是拥有大量不断更新的精灵的愤怒的小鸟?制作游戏时建议使用什么?

1 个答案:

答案 0 :(得分:1)

OpenGL绝对是您最快的选择。即使在最古老的iOS设备上,您也可以以30 + fps的速度运行大约20,000个多边形。

听起来你必须做错事或额外的事情。如果没有看到您的源代码,就无法猜测可能是什么。

一般来说,您需要确保在绘图管道之外创建VBO和所有加载。

相关问题