2014-01-17 28 views
0

對於我的Java OpenGL項目,我試圖製作一個魔方。 我已經完成了所有的旋轉計算和工作,但有一件事我不知道該怎麼做,即給立方體的每一面帶來自己的顏色。 我使用glRotatef和glTranslatef來定位27個塊的每一個,並用glutSolidCube繪製每個塊。 我如何給glutSolidCube的每一面添加不同的顏色? 我看過紋理的立方體,但這似乎很難,因爲我不知道每個塊的(x,y,z)座標,我只有轉換矩陣(旋轉和平移)。 最簡單的方法是什麼?Java OpenGL - 在glutSolidCube中應用不同顏色的每一面

回答

1

這可能不是直接的:glutSolidCube不會生成顏色屬性(請參見freeglut source code中的fghCube函數)。

最簡單的方法是自己生成立方體的幾何圖形。生成6個(面)* 4 =總共24個頂點,每個頂點具有期望的位置,法線和一個附加的顏色屬性。就像普通屬性一樣,對於立方體上8個不同的頂點位置,你應該有3種不同的顏色(因爲同一個頂點由3個面共享,但每個面需要不同的顏色)。

如果你真的堅持使用glutSolidCube,另一種方法是根據頂點着色器中的頂點法線指定頂點顏色。但也許你沒有使用頂點着色器...