我们需要OpenGL ES的colorbuffer中有多少种颜色?

时间:2011-02-17 09:05:45

标签: opengl-es

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

gl.glEnableClientState(GL10.GL_COLOR_ARRAY); gl.glColorPointer(4,GL10.GL_FLOAT,0,mColorBuffer);

与此问题有关。

OpenGL ES如何知道我指定的颜色与多维数据集的哪一侧匹配?

1 个答案:

答案 0 :(得分:1)

应按顶点指定颜色,但由于每个面具有不同的颜色,因此您无法在面之间共享顶点。不是绘制一个立方体(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 };