Opengl es OpenGL ES的colorbuffer中需要多少颜色?

Opengl es OpenGL ES的colorbuffer中需要多少颜色?,opengl-es,Opengl Es,如果我在OpenGL ES中有一个立方体网格,并且我希望立方体的每一侧都有一个平面颜色,以便每一侧都有不同的颜色,那么我是否需要指定每个顶点的颜色或每个三角形的颜色或每一侧的颜色? 这两行代码: gl.glEnableClientState(GL10.gl\u颜色\u数组); gl.glColorPointer(4,GL10.gl_FLOAT,0,mColorBuffer) 都与这个问题有关 OpenGL ES如何知道我指定的颜色与立方体的哪一侧相匹配?应该为每个顶点指定颜色,但由于每个面都有不

如果我在OpenGL ES中有一个立方体网格,并且我希望立方体的每一侧都有一个平面颜色,以便每一侧都有不同的颜色,那么我是否需要指定每个顶点的颜色或每个三角形的颜色或每一侧的颜色? 这两行代码:

gl.glEnableClientState(GL10.gl\u颜色\u数组); gl.glColorPointer(4,GL10.gl_FLOAT,0,mColorBuffer)

都与这个问题有关


OpenGL ES如何知道我指定的颜色与立方体的哪一侧相匹配?

应该为每个顶点指定颜色,但由于每个面都有不同的颜色,因此无法在面之间共享顶点。不要绘制立方体(8个顶点、8种颜色、12个三角形),而是绘制6个恰好具有重合顶点位置的四边形(24个顶点、24种颜色、12个三角形)

编辑:四边形只是共享一些顶点的两个三角形。例如,覆盖单位正方形的四边形(在2D中)可以具有顶点数组和三角形索引数组,如下所示:

// bottom left, top left, bottom right, top right order
float[] verts = new float[]{ 0, 0, 0, 1, 1, 0, 1, 1 };
// anti-clockwise vertex order
int[] tris = new int[]{ 0, 2, 1, 2, 3, 1 };

但是OpenGL ES不支持四边形。鉴于OpenGL ES的这一局限性,您能否澄清您的答案?