我正在开发一个2D Open GL
游戏,我必须在屏幕上绘制多个正方形的方块,与纹理有不同的glTexCoordPointer
。
现在,我不知道如何使用Gldrawelements
绘制多个正方形,如果我想绘制多个正方形,这将是指数的结构?
而且,如何将每个数组(顶点)放在vertexbuffer
上,其中包含每个方块的坐标?
此外,是否可以在一次调用方法时为每个方块设置不同的glTexCoordPointer
,或者是否需要像GlDrawArrays
这样的循环?但是,我想使用gldrawelements
,因为我不想为每个方格执行多次gldrawarrays
的循环,我的fps
显着下降。
答案 0 :(得分:2)
如果方块彼此相邻,则使用四条带(或等效的三角形条带):
如果方块是不相交的,只需使用四边形
您也可以使用四条(相当于三角形条) 在这种情况下,通过添加简并四边形(三角形):
GLushort indices[] = {A, B, C, D, D, E, E, F, G, H, H, I, I, J, K, L}
具有相同顶点位置的两个正方形,但不同的纹理坐标必须用不同的四边形表示。