有效使用vbo for 2d sprite [opengl / android]

时间:2014-02-01 14:45:59

标签: java 2d opengl-es-2.0 sprite vbo

这些天我正在开发自己的游戏引擎,我想让渲染过程尽可能高效。通过“immidiate mode”,我发现实现我想要包含的功能非常容易。

以下是清单:

  • 转换(平移,旋转,缩放,转动)
  • 育儿(子精灵受父精灵影响,例如变换)
  • 简单的矢量图形 - 现在这不是那么重要
  • 深度管理

但是使用VBO和着色器很难确定一个好的渲染结构。起初我在VBO中放了四个顶点并用矩阵(gluniform)转换它,但很多人说这是最糟糕的方式。所以,我想听听您关于有效实施这些功能的一般想法以及我应该如何进行VBO。

1 个答案:

答案 0 :(得分:0)

你可以通过缩放宽度和高度并使用矩阵转换它并为每个精灵绑定正确的纹理,将一个正方形VBO用于所有精灵。子精灵可以将它们的矩阵与其父精灵的矩阵相乘。深度管理可以使用深度缓冲区,只需glEnable(GL_DEPTH_TEST)和GL_LEQUAL深度函数,并沿z轴平移到您想要绘制的层。您可能甚至不需要担心无论如何都要为2D精灵做最好和最快的方法。