次の方法で共有


レンダー ターゲット アルファ (Direct3D 9)

フレーム バッファー ブレンダーで、レンダー ターゲット上のカラー チャネル ブレンドに依存しないアルファ チャネルをブレンドできるようになりました。 このコントロールは、新しいレンダリング状態 (D3DRS_SEPARATEALPHABLENDENABLE) で有効になります。

D3DRS_SEPARATEALPHABLENDENABLEが FALSE (既定の条件) に設定されている場合、レンダー ターゲットブレンド係数とアルファに適用される操作は、カラー チャネルのブレンドに定義されているものと同じです。 ドライバーは、レンダー ターゲットアルファ ブレンドをサポートできることを示すために、D3DPMISCCAPS_SEPARATEALPHABLENDキャップを設定する必要があります。 D3DRS_ALPHABLENDを有効にして、アルファ ブレンドが必要であることをパイプラインに通知してください。

レンダー ターゲット ブレンダーのアルファ チャネルの要因を制御するために、2 つの新しいレンダリング状態を次のように定義します。

D3DRS_SRCBLENDALPHA 
D3DRS_DESTBLENDALPHA 

D3DRS_SRCBLENDやD3DRS_DESTBLENDと同様に、 D3DBLEND 列挙の値のいずれかに設定できます。 ソースとターゲットのブレンド設定は、 D3DCAPS9 の SrcBlendCaps メンバーと DestBlendCaps メンバーの設定に応じて、いくつかの方法で組み合わせることができます。

アルファ ブレンドは次のように行われます。

renderTargetAlpha = (alphain * srcBlendOp) BlendOp (alphart * destBlendOp)

この場合、

  • alphain は入力アルファ値です。
  • srcBlendOp は、 D3DBLEND のブレンド要因の 1 つです。
  • BlendOp は D3DBLENDOP のブレンド要因の 1 つです。
  • alphart はレンダー ターゲットのアルファ値です。
  • destBlendOp は、 D3DBLEND のブレンド 要因の 1 つです。
  • renderTargetAlpha は、最終的にブレンドされたアルファ値です。

アルファ ブレンド