OpenGL ES顏色處理
在OpenGL ES編程中非常重要的概念就是顏色和紋理,通過這些元素可以創造出各種漂亮的情境。下面就來看一下在min3d中怎樣顯示顏色和紋理。
顯示顏色相對來說比較簡單,一種情況是整個面都具有同樣的顏色,這時該面上所有頂點的顏色值相同,如果同一面上各個頂點的顏色不同,將實現色彩坡形的效果。代碼如下:
obj = new MgnavObject(false, true, true); // 第一個參數表示禁止使用紋理,第三個參數是使用顏色
下面是加入立方體前面的代碼:
// 1. front
normalX = 0f; normalY = 0f; normalZ = 1.0f;
colorR = 255; colorG = 0; colorB = 0; colorA = 255;
// 1.1. 加入前面右上部三角片
//colorR = 255; colorG = 0; colorB = 0; colorA = 255;
short f1p1Idx = vertices().addVertex(-width, height, deepth,
textureU, textureV,
normalX, normalY, normalZ,
colorR, colorG, colorB, colorA);
//colorR = 0; colorG = 255; colorB = 0; colorA = 255;
short f1p3Idx = vertices().addVertex(width, -height, deepth,
textureU, textureV,
normalX, normalY, normalZ,
colorR, colorG, colorB, colorA);
//colorR = 0; colorG = 0; colorB = 255; colorA = 255;
short f1p2Idx = vertices().addVertex(width, height, deepth,
textureU, textureV,
normalX, normalY, normalZ,
colorR, colorG, colorB, colorA);
faces().add(f1p1Idx, f1p3Idx, f1p2Idx);
// 1.2. 加入前面的左下部三角片
//colorR = 255; colorG = 255; colorB = 0; colorA = 255;
short f1p4Idx = vertices().addVertex(-width, -height, deepth,
textureU, textureV,
normalX, normalY, normalZ,
colorR, colorG, colorB, colorA);
faces().add(f1p1Idx, f1p4Idx, f1p3Idx);
上面的代碼將立方體的前面設定為紅色。如果需要每個頂點有不同的顏色,找開每個頂點的顏色指派陳述式即可