我如何使用gldrawelements为许多方块?

时间:2012-05-15 01:10:44

标签: android opengl-es

我正在开发一个2D Open GL游戏,我必须在屏幕上绘制多个正方形的方块,与纹理有不同的glTexCoordPointer

现在,我不知道如何使用Gldrawelements绘制多个正方形,如果我想绘制多个正方形,这将是指数的结构?

而且,如何将每个数组(顶点)放在vertexbuffer上,其中包含每个方块的坐标?

此外,是否可以在一次调用方法时为每个方块设置不同的glTexCoordPointer,或者是否需要像GlDrawArrays这样的循环?但是,我想使用gldrawelements,因为我不想为每个方格执行多次gldrawarrays的循环,我的fps显着下降。

1 个答案:

答案 0 :(得分:2)

如果方块彼此相邻,则使用四条带(或等效的三角形条带):

quad-strip of adjacent quads

如果方块是不相交的,只需使用四边形

enter image description here

您也可以使用四条(相当于三角形条) 在这种情况下,通过添加简并四边形(三角形):

GLushort indices[] = {A, B, C, D, D, E, E, F, G, H, H, I, I, J, K, L}

具有相同顶点位置的两个正方形,但不同的纹理坐标必须用不同的四边形表示。