3.色の追加
ポリゴンに色を追加します。
各頂点に色を設定することでカラフルなポリゴンに、同じ色で単色なポリゴンになります。
前回作成したプログラムを変更していきます。

三角形の設定
S3DVertexの頂点カラーを変更します。
各頂点に個別の色を設定していきます。
//三角形作成
u16 triList[] = {0,1,2};
S3DVertex triVer[3];
triVer[0] = S3DVertex( 0, 1,0, 0,0,0, 0xFFFF0000, 0,0);//上 :赤
triVer[1] = S3DVertex( 1,-1,0, 0,0,0, 0xFF00FF00, 0,0);//右下:緑
triVer[2] = S3DVertex(-1,-1,0, 0,0,0, 0xFF0000FF, 0,0);//左下:青
mat.setTranslation(vector3df(-2,0,0));//左に2移動
driver->setTransform (ETS_WORLD, mat);//ワールドに反映
driver->drawIndexedTriangleList(&triVer[0], 3, &triList[0], 1);
|
四角形の設定
S3DVertexの頂点カラーを変更します。
各頂点を同じ色にするので、予め変数を用意しておきます。
//四角形作成
u16 rectList[] = {0,1,2, 1,3,2};
S3DVertex rectVer[4];
SColor color = 0xFFFFFF00;
rectVer[0] = S3DVertex(-1, 1,0, 0,0,0, color, 0,0);//左上:黄
rectVer[1] = S3DVertex( 1, 1,0, 0,0,0, color, 0,0);//右上:黄
rectVer[2] = S3DVertex(-1,-1,0, 0,0,0, color, 0,0);//左下:黄
rectVer[3] = S3DVertex( 1,-1,0, 0,0,0, color, 0,0);//右下:黄
mat.setTranslation(vector3df(2,0,0));//右に2移動
driver->setTransform (ETS_WORLD, mat);//ワールドに反映
driver->drawIndexedTriangleList(&rectVer[0], 4, &rectList[0], 2);
|

頂点カラー

頂点カラーは0xAARRGGBBとなっています。値はそれぞれ0x00〜0xFFで指定します。
AA:アルファ要素
RR:赤の要素
GG:緑の要素
BB:青の要素
0x00が弱く、0xFFが強くなります。
赤緑青の3つを強くすると白に、3つを弱くすると黒になります。
青と赤を強くすると紫にもなります。光の三原色になっています。
|
ダウンロード
今回作成したファイル一式です。
宿題
1.三角形を緑一色で描画してみましょう。
2.四角形を黄色/水色/紫色/白色の4色で描画してみましょう。
|
|