Home | Lesson | Game | Tool | Link

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.ノードを使用せずにポリゴンを使用してみましょう。