Platform SDK: DirectX

ブレンディング ステージの作成

[C++]

ブレンディング ステージとは、引数を使用してテクスチャのブレンディング方法を定義する、一連のテクスチャ処理である。ブレンディング ステージを作成するとき、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]

ブレンディング ステージとは、引数を使用してテクスチャのブレンディング方法を定義する、一連のテクスチャ処理である。ブレンディング ステージを作成するとき、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」を参照すること。