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

こちらもご覧ください

ID3D11DeviceContext