レンダー ターゲット アルファ (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 は、最終的にブレンドされたアルファ値です。
関連トピック