Platform SDK: DirectX |
ブレンディング ステージとは、引数を使用してテクスチャのブレンディング方法を定義する、一連のテクスチャ処理である。ブレンディング ステージを作成するとき、C++ アプリケーションでは IDirect3DDevice7::SetTextureStageState メソッドを呼び出す。最初の呼び出しで、実行する処理を指定する。さらに 2 回の呼び出しで、処理を適用する引数を定義する。次のコードは、ブレンディング ステージの作成方法を示す。
// この例では、lpD3DDev が IDirect3DDevice7 インターフェイスへの // 有効なポインタであるとする。 // 最初のテクスチャの処理を設定する。 lpD3DDev->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_ADD); // テクスチャ処理用の arg1 を設定する。 lpD3DDev->SetTextureStageState(0, // 最初のテクスチャ。 D3DTSS_COLORARG1, // 色引数 1 を設定する。 D3DTA_TEXTURE); // 色引数 1 の値。 // テクスチャ処理用の arg2 を設定する。 lpD3DDev->SetTextureStageState(0, // 最初のテクスチャ。 D3DTSS_COLORARG2, // 色引数 2 を設定する。 D3DTA_DIFFUSE); // 色引数 2 の値。
テクスチャのテクセル データには、カラー値とアルファ値が含まれる。プログラムでは、単一のブレンディング ステージでカラー値とアルファ値の両方を定義できる。色処理とアルファ処理には、それぞれ独自の引数がある。詳細については、「D3DTEXTURESTAGESTATETYPE」を参照すること。
次のマクロは Direct3D API の一部ではないが、プログラムに挿入してテクスチャ ブレンディング ステージの作成に必要なコードを短縮できる。
#define SetTextureColorStage( dev, i, arg1, op, arg2 ) \ dev->SetTextureStageState( i, D3DTSS_COLOROP, op);\ dev->SetTextureStageState( i, D3DTSS_COLORARG1, arg1 ); \ dev->SetTextureStageState( i, D3DTSS_COLORARG2, arg2 ); #define SetTextureAlphaStage( dev, i, arg1, op, arg2 ) \ dev->SetTextureStageState( i, D3DTSS_ALPHAOP, op);\ dev->SetTextureStageState( i, D3DTSS_ALPHARG1, arg1 ); \ dev->SetTextureStageState( i D3DTSS_ALPHARG2, arg2 );
ブレンディング ステージとは、引数を使用してテクスチャのブレンディング方法を定義する、一連のテクスチャ処理である。ブレンディング ステージを作成するとき、Visual Basic アプリケーションでは Direct3DDevice7.SetTextureStageState メソッドを呼び出す。最初の呼び出しで、実行する処理を指定する。さらに 2 回の呼び出しで、処理を適用する引数を定義する。次のコードは、ブレンディング ステージの作成方法を示す。
' この例では、d3dDev は Direct3DDevice7 オブジェクトへの ' 有効な参照であるとする。 ' 最初のテクスチャの処理を設定する。 Call d3dDev.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD) ' arg1 をテクスチャ色に設定する。 Call d3dDev.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE) ' arg2 を、繰り返すディフューズ色に設定する。 Call d3dDev.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE)
テクスチャのテクセル データには、カラー値とアルファ値が含まれる。プログラムでは、単一のブレンディング ステージでカラー値とアルファ値の両方を定義できる。色処理とアルファ処理には、それぞれ独自の引数がある。詳細については、「CONST_D3DTEXTURESTAGESTATETYPE」を参照すること。