最有效的方式使用OpenGL进行2D游戏?

时间:2011-09-19 09:04:37

标签: iphone performance opengl-es 2d vbo

我有一个我为iPhone编写的游戏引擎,它使用OpenGL绘制2d精灵,背景等。我本可以使用Cocos2d,但我想我会通过编写自己的东西来学到更多东西。它的工作效率似乎相当高,但是通过Instruments OpenGL分析器运行我的游戏,它会提供很多关于如何做得更好的指针,谈论VBO和类似的东西。

假设我的游戏只是绘制了许多应用了不同纹理的2d四边形,那么最有效的方法是什么?绘制2个三角形或单个四边形是否更快?这不是VBO对此的过度杀伤,还是实际上会带来性能提升?

1 个答案:

答案 0 :(得分:2)

好的,我不知道简单四边形的实际性能提升。但是如果你的“几何”是静态的,那么你可以从显示列表中获得最多。它们使用起来非常简单,几乎不需要更改代码。

值得注意的是,最昂贵的操作是上下文切换。这就是从纹理(非常昂贵)到改变颜色(不那么昂贵)的任何东西。所以你可能做的最好的事情就是一次性使用一个纹理渲染所有的精灵。

如果你有一个很大的静态级别,你可以将整个事物绘制到一个显示列表中,然后只调用它。需要注意的是,您仍应尝试针对上下文切换进行优化。

您还应该花一些时间在代码中,以防止尝试渲染不可见的内容。 (检查整个级别的DL解决方案。)