15.カラーキー
2D画像で使用したカラーキーをポリゴンでも使用してみます。
これにより、複雑な形をしたポリゴンを作成することなく、
テクスチャで複雑な形に見せることができます。

キューブノードの作成
メインループ前に立方体を作成します。
ノードを使用して描画していますが、もちろん今までのようにポリゴンを
作って反映させても大丈夫です。
ISceneNode* node = smgr->addCubeSceneNode();
ITexture* tex = driver->getTexture("wall2.bmp");
driver->makeColorKeyTexture(tex, 0x00000000); //カラーキー設定
node->setMaterialTexture(0, tex);
node->setMaterialFlag(EMF_LIGHTING, false); //光源計算:off
node->setMaterialFlag(EMF_BACK_FACE_CULLING, false); //背面書込み禁止:off
node->setMaterialType(EMT_TRANSPARENT_ALPHA_CHANNEL); //透過
|

addCubeSceneNode
立方体を描画します。
ISceneNode* addCubeSceneNode(
f32 size = 10.0f,
ISceneNode* parent = 0,
s32 id = -1,
const vector3df& position = vector3df(0, 0, 0),
const vector3df& rotation = vector3df(0, 0, 0),
const vector3df& scale = vector3df(1.0f, 1.0f, 1.0f)
)
|
size 立方体の大きさを設定します。
parent 立方体の親を設定します。親が動けば立方体も動きます。
id IDを指定します。
position 立方体の位置を指定します。
rotation 立方体の回転を指定します。
scale XYZ方向への倍率を指定します。
|
描画
メインループ前に変数を用意して、メインループではそれを利用してノードを回転させます。
float rotate = 0.0f;
while(device->run())
{
driver->beginScene(true,true,0xFF6060FF);
//図形作成
node->setRotation(vector3df(45,rotate,0));
rotate += 0.01f;
//シーンの描画
smgr->drawAll();
|
ダウンロード
今回作成したファイル一式です。
宿題
1.ノードを使用せずにポリゴンを使用してみましょう。
|
|