D3D11_RASTERIZER_DESC2 構造体 (d3d11_3.h)

ラスタライザーの状態について説明します。

構文

typedef struct D3D11_RASTERIZER_DESC2 {
  D3D11_FILL_MODE                       FillMode;
  D3D11_CULL_MODE                       CullMode;
  BOOL                                  FrontCounterClockwise;
  INT                                   DepthBias;
  FLOAT                                 DepthBiasClamp;
  FLOAT                                 SlopeScaledDepthBias;
  BOOL                                  DepthClipEnable;
  BOOL                                  ScissorEnable;
  BOOL                                  MultisampleEnable;
  BOOL                                  AntialiasedLineEnable;
  UINT                                  ForcedSampleCount;
  D3D11_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D11_RASTERIZER_DESC2;

メンバー

FillMode

レンダリング時 使用する塗りつぶしモードを決定するD3D11_FILL_MODE型指定の値。

CullMode

指定した方向に向いている三角形が描画されないことを示す、 D3D11_CULL_MODE型指定された値。

FrontCounterClockwise

三角形を前面または背面のどちらにするかを指定します。 TRUE の場合、頂点がレンダー ターゲットで反時計回りに配置され、時計回りである場合は逆向きと見なされる場合、三角形は正面向きと見なされます。 FALSE の場合、その逆は true です。

DepthBias

特定のピクセルに追加された深度値。 深度バイアスの詳細については、「 深度バイアス」を参照してください。

DepthBiasClamp

ピクセルの最大深度バイアス。 深度バイアスの詳細については、「 深度バイアス」を参照してください。

SlopeScaledDepthBias

特定のピクセルの傾きのスカラー。 深度バイアスの詳細については、「 深度バイアス」を参照してください。

DepthClipEnable

距離に基づいてクリッピングを有効にするかどうかを指定します。

ハードウェアでは、ラスター化された座標の x と y のクリッピングが常に実行されます。 DepthClipEnabledefault-TRUE に設定されている場合、ハードウェアは z 値もクリップします (つまり、ハードウェアは次のアルゴリズムの最後のステップを実行します)。


0 < w
-w <= x <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
-w <= y <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
0 <= z <= w

DepthClipEnableFALSE に設定すると、ハードウェアは z クリッピング (つまり、前のアルゴリズムの最後の手順) をスキップします。 ただし、ハードウェアは "0 < w" クリッピングを実行します。 z クリッピングを無効にすると、ピクセル レベルでの深度の順序が正しくない場合があります。 ただし、z クリッピングを無効にすると、ステンシル シャドウの実装が簡略化されます。 言い換えると、後方クリッピング平面を超えるジオメトリに対する複雑な特殊なケース処理を回避できます。

ScissorEnable

ハサミ四角形のカリングを有効にするかどうかを指定します。 アクティブなハサミ四角形の外側にあるすべてのピクセルがカリングされます。

MultisampleEnable

マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲットで四角形またはアルファ線のアンチエイリアシング アルゴリズムを使用するかどうかを指定します。 4 辺線アンチエイリアシング アルゴリズムを使用する場合は TRUE 、アルファ線アンチエイリアシング アルゴリズムを使用する 場合は FALSE に設定します。 このメンバーの詳細については、「解説」を参照してください。

AntialiasedLineEnable

行のアンチエイリアシングを有効にするかどうかを指定します。線の描画を行い、 MultisampleEnableFALSE の場合にのみ適用されます。 このメンバーの詳細については、「解説」を参照してください。

ForcedSampleCount

UAV のレンダリングまたはラスター化中に強制されるサンプル数。 有効な値は、0、1、2、4、8、および必要に応じて 16 です。 0 は、サンプル数が強制されていないことを示します。

メモForcedSampleCount を 1 以上に設定してレンダリングする場合は、次のガイドラインに従う必要があります。
  • 深度ステンシル ビューをバインドしないでください。
  • 深度テストを無効にします。
  • シェーダーが深度を出力していないことを確認します。
  • レンダー ターゲット ビューがバインドされていて (D3D11_BIND_RENDER_TARGET)、 ForcedSampleCount が 1 より大きい場合は、すべてのレンダー ターゲットに 1 つのサンプルのみが含まれるようにします。
  • サンプル周波数でシェーダーを操作しないでください。 したがって、 ID3D11ShaderReflection::IsSampleFrequencyShaderFALSE を返します
それ以外の場合、レンダリング動作は未定義です。 深度ステンシルを構成する方法については、「 Depth-Stencil 機能の構成」を参照してください。
 

ConservativeRaster

保守的なラスター化がオンかオフかを識別するD3D11_CONSERVATIVE_RASTERIZATION_MODE型指定の値。

解説

ラスタライザーの状態は、ラスタライザー ステージの動作を定義します。 ラスタライザー状態オブジェクトを作成するには、 ID3D11Device3::CreateRasterizerState2 を呼び出します。 ラスタライザーの状態を設定するには、 ID3D11DeviceContext::RSSetState を呼び出します。

ラスタライザーの状態を指定しない場合、Direct3D ランタイムはラスタライザーの状態に次の既定値を使用します。

State Default value
FillMode [実線]
CullMode 戻る
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0.0f
DepthBiasClamp 0.0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
ConservativeRaster D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF
メモ機能レベル 9.1、9.2、9.3、および 10.0 の場合、MultisampleEnableFALSE に設定すると、サンプル数が 1 より大きいレンダー ターゲットでも、アンチエイリアシングなしですべてのポイント、線、三角形がレンダリングされます。 機能レベル 10.1 以降では、 MultisampleEnable の設定は MSAA に関してポイントと三角形には影響を与えず、次の表に示すように、ライン レンダリング アルゴリズムの選択にのみ影響します。
 
線レンダリング アルゴリズム MultisampleEnable AntialiasedLineEnable
エイリアス FALSE FALSE
アルファアンチエイリアシング FALSE TRUE
四辺形 TRUE FALSE
四辺形 TRUE TRUE

MultisampleEnable および AntialiasedLineEnable メンバーの設定は、マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲット (つまり、サンプル数が 1 より大きいレンダー ターゲット) にのみ適用されます。 機能レベルの動作が異なるため、線の描画を実行しない限り、または線が四角形としてレンダリングされることを気にしない限り、MSAA レンダー ターゲットでレンダリングする場合は常に MultisampleEnableTRUE に設定することをお勧めします。

必要条件

   
Header d3d11_3.h

関連項目

コア構造