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