ID3D11DeviceContext::OMSetBlendState メソッド (d3d11.h)
出力マージャー ステージのブレンド状態を設定します。
構文
void OMSetBlendState(
[in, optional] ID3D11BlendState *pBlendState,
[in, optional] const FLOAT [4] BlendFactor,
[in] UINT SampleMask
);
パラメーター
[in, optional] pBlendState
種類: ID3D11BlendState*
ブレンド状態インターフェイスへのポインター ( 「ID3D11BlendState」を参照)。 既定のブレンド状態に 対して NULL を 渡します。 既定のブレンド状態の詳細については、「解説」を参照してください。
[in, optional] BlendFactor
型: const FLOAT[4]
ブレンド係数の配列。RGBA コンポーネントごとに 1 つ。 ブレンド 係数は、ピクセル シェーダー、レンダー ターゲット、またはその両方の値を調整します。 D3D11_BLEND_BLEND_FACTORまたはD3D11_BLEND_INV_BLEND_FACTORを使用してブレンド状態オブジェクトを作成した場合、ブレンド ステージではブレンド 係数の NULL 以外の配列が使用されます。 D3D11_BLEND_BLEND_FACTORまたはD3D11_BLEND_INV_BLEND_FACTORを使用してブレンド状態オブジェクトを作成しなかった場合、ブレンド ステージではブレンド 係数の NULL 以外の配列は使用されません。ランタイムはブレンド 係数を格納し、後で ID3D11DeviceContext::OMGetBlendState を呼び出してブレンド 係数を取得できます。 NULL を渡すと、ランタイムは { 1、1、1、1} と等しいブレンド係数を使用または格納します。
[in] SampleMask
型: UINT
32 ビットのサンプル カバレッジ。 既定値は 0xffffffff です。 「解説」を参照してください。
戻り値
なし
解説
ブレンド状態は、 出力マージャー ステージ によって使用され、2 つの RGB ピクセル値と 2 つのアルファ値をブレンドする方法を決定します。 2 つの RGB ピクセル値と 2 つのアルファ値は、ピクセル シェーダーが出力する RGB ピクセル値とアルファ値、出力レンダー ターゲットに既に含まれている RGB ピクセル値とアルファ値です。 ブレンド オプションは、ブレンド ステージがピクセル シェーダー、レンダー ターゲット、またはその両方の値を調整するために使用するデータ ソースを制御します。 ブレンド操作は、ブレンド ステージがこれらの変調値を数学的に結合する方法を制御します。
ブレンド状態インターフェイスを作成するには、 ID3D11Device::CreateBlendState を呼び出します。
ブレンド状態インターフェイスに NULL を 渡すと、既定のブレンド状態を設定するためにランタイムに示されます。 次の表は、既定のブレンド パラメーターを示しています。
状態 | 既定値 |
---|---|
AlphaToCoverageEnable | FALSE |
IndependentBlendEnable | FALSE |
RenderTarget[0]。BlendEnable | FALSE |
RenderTarget[0]。SrcBlend | D3D11_BLEND_ONE |
RenderTarget[0]。DestBlend | D3D11_BLEND_ZERO |
RenderTarget[0]。BlendOp | D3D11_BLEND_OP_ADD |
RenderTarget[0]。SrcBlendAlpha | D3D11_BLEND_ONE |
RenderTarget[0]。DestBlendAlpha | D3D11_BLEND_ZERO |
RenderTarget[0]。BlendOpAlpha | D3D11_BLEND_OP_ADD |
RenderTarget[0]。RenderTargetWriteMask | D3D11_COLOR_WRITE_ENABLE_ALL |
サンプル マスクは、アクティブなすべてのレンダー ターゲットで更新されるサンプルを決定します。 サンプル マスク内のビットとマルチサンプル レンダー ターゲットのサンプルのマッピングは、個々のアプリケーションの役割です。 サンプル マスクは常に適用されます。これは、マルチサンプリングが有効かどうかとは無関係であり、アプリケーションがマルチサンプル レンダー ターゲットを使用するかどうかに依存しません。
メソッドは、渡されたインターフェイスへの参照を保持します。 これは、Direct3D 10 のデバイス状態の動作とは異なります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d11.h |
Library | D3D11.lib |