アルファ テクスチャ ブレンド (Direct3D 9)
照明エンジンは、マテリアルの色、頂点の色、照明情報を組み合わせて頂点ごとの色を生成します。 補間されると、フレーム バッファーに書き込まれるピクセル単位の色が生成されます。 アプリケーションでテクスチャ ブレンドを有効にすると、ピクセルカラーはフレーム バッファー内の現在のピクセルとテクスチャカラーの組み合わせになります。
この数式は、最終的にブレンドされたピクセルの色を決定します。
Color = TexelColor x SourceBlend + CurrentPixelColor x DestBlend
この場合、
- 色は出力ピクセルの色です。
- TexelColor は、テクスチャ フィルター処理後の入力色です。
- SourceBlend は、ソース テクセルの色で構成される最終的なピクセル色の割合です。
- CurrentPixelColor は、現在のピクセルの色です。
- DestBlend は、現在のピクセルの色で構成される最終的なピクセル色の割合です。
最終的なブレンド式は、 IDirect3DDevice9::SetRenderState を呼び出し、対応するブレンド 係数 (D3DBLEND) を使用してブレンド レンダー状態 (D3DRS_BLENDXXX) を指定することによって設定されます。 SourceBlend と DestBlend の値は、0.0 (透明) から 1.0 (不透明) までの範囲です。 さらに、アプリケーションでは、テクスチャのアルファ値を設定することで、ピクセルの透明度を制御できます。 この場合は、次を使用します。
SourceBlend = D3DBLEND_ZERO
DestBlend = D3DBLEND_ONE
ブレンド式を使用すると、レンダリングされたピクセルが透明になります。 既定値は次のとおりです。
SourceBlend = D3DBLEND_SRCALPHA
DestBlend = D3DBLEND_INVSRCALPHA
関連トピック