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