アルファ テクスチャー ブレンディング (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

関連項目

テクスチャー フィルタリング (Direct3D 9)D3DRENDERSTATETYPE