Home | Lesson | Game | Tool | Link

8.ブレンド

透過設定を行います。


ブレンド処理
ポリゴン自体が半透明になるので、光源の影響を受けないようにします。
また、透けて向こうも見えるようにするために、背面カリングもOFFにします。
ただし、このままだと描画順番によって描画されない部分が出てしまうので、
Zバッファでの描画無視もOFFにします。
最後に、マテリアルに透過設定を追加して終了です。
	//テクスチャ読み込み
	ITexture* Texture;
	Texture = driver->getTexture("wall.bmp");
	SMaterial Material;
	Material.Lighting = false;		//光源影響:OFF
	Material.BackfaceCulling = false;	//背面カリング:OFF
	Material.ZBuffer = false;		//Zバッファ無効:OFF
	Material.TextureLayer[0].Texture = Texture;
	Material.MaterialType = EMT_TRANSPARENT_ADD_COLOR;//マテリアル透過
	driver->setMaterial(Material);


テクスチャのアルファを使用する
テクスチャのアルファを使用する場合は、EMT_TRANSPARENT_ALPHA_CHANNELを指定します。
もちろんテクスチャ自体がアルファ情報を持っている必要があります。
有効な値は0x81以上で、0x81以上のアルファは値に応じてブレンドされます。
0x80以下の場合は、透明になります。(半透明ではなく、描画されません。)
またZバッファは有効にしておいてください。

記述方法
Material.ZBuffer = true;
Material.MaterialType = EMT_TRANSPARENT_ALPHA_CHANNEL;


頂点情報のアルファを使用する
頂点情報のアルファを使用する場合は、EMT_TRANSPARENT_VERTEX_ALPHAを指定します。
頂点のカラーもアルファ値を変更しておいてください。例)0x90FFFFFF
テクスチャに対してブレンドを行うため、テクスチャを貼り付けていないと
意味がないので、注意してください。(その際、テクスチャのアルファは無視されます。)
Zバッファは有効にしておいてください。

記述方法
Material.ZBuffer = false;
Material.MaterialType = EMT_TRANSPARENT_VERTEX_ALPHA;

ダウンロード
今回作成したファイル一式です。

宿題
1.テクスチャのアルファを使用したブレンドをやってみましょう。
2.頂点情報のアルファを使用したブレンドをやってみましょう。