2011-02-17 131 views
0

如果我在OpenGL ES中有一個立方體網格,並且我希望立方體的每一面都有一個平面顏色,以便每邊都有不同的顏色,是否需要指定每個頂點的顏色或每個三角形的顏色或每邊的顏色? 這2行代碼:我們需要OpenGL ES色彩緩衝區中的多少種顏色?

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

與此問題有關。

OpenGL ES如何知道我指定的顏色與多維數據集的哪一側匹配?

回答

1

顏色應該指定爲每個頂點,但由於每個面都有不同的顏色,因此您將無法在面之間共享頂點。而不是繪製一個立方體(8個頂點,8個顏色,12個三角形),繪製6個剛剛碰巧具有重合頂點位置的四邊形(24個頂點,24個顏色,12個三角形)

編輯:四邊形只是2個三角形共享一些頂點。例如,覆蓋單位正方形(在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 }; 
+0

但是四邊形未在OpenGL ES支持。您能否根據OpenGL ES的這種限制來澄清您的答案? – ace 2011-02-17 16:35:03