D3D12_RASTERIZER_DESC 構造体 (d3d12.h)
ラスタライザーの状態について説明します。
構文
typedef struct D3D12_RASTERIZER_DESC {
D3D12_FILL_MODE FillMode;
D3D12_CULL_MODE CullMode;
BOOL FrontCounterClockwise;
INT DepthBias;
FLOAT DepthBiasClamp;
FLOAT SlopeScaledDepthBias;
BOOL DepthClipEnable;
BOOL MultisampleEnable;
BOOL AntialiasedLineEnable;
UINT ForcedSampleCount;
D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;
メンバー
FillMode
レンダリング時に使用する塗りつぶしモードを指定する、 D3D12_FILL_MODE型指定された値。
CullMode
指定した方向に向いている三角形が描画されないことを指定する、 D3D12_CULL_MODE型指定された値。
FrontCounterClockwise
三角形が正面向きか背面向きかを決定します。 このメンバーが TRUE の場合、頂点がレンダー ターゲット上で反時計回りに配置されている場合、三角形は前面と見なされ、時計回りである場合は背面と見なされます。 このパラメーターが FALSE の場合、その逆は true です。
DepthBias
指定されたピクセルに追加された深度値。 深度バイアスの詳細については、「 深度バイアス」を参照してください。
DepthBiasClamp
ピクセルの最大深度バイアス。 深度バイアスの詳細については、「 深度バイアス」を参照してください。
SlopeScaledDepthBias
特定のピクセルの傾きのスカラー。 深度バイアスの詳細については、「 深度バイアス」を参照してください。
DepthClipEnable
距離に基づいてクリッピングを有効にするかどうかを指定します。
ハードウェアは、ラスター化された座標の x と y のクリッピングを常に実行します。 DepthClipEnable を default-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
DepthClipEnable を FALSE に設定すると、ハードウェアは z クリッピング (つまり、前のアルゴリズムの最後の手順) をスキップします。 ただし、ハードウェアでは "0 < w" クリッピングが引き続き実行されます。 z クリッピングを無効にすると、ピクセル レベルで不適切な深度順序が発生する可能性があります。 ただし、z クリッピングを無効にすると、ステンシル シャドウの実装が簡略化されます。 言い換えると、バック クリッピング 平面を超えるジオメトリに対する複雑な特殊なケース処理を回避できます。
MultisampleEnable
マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲットで四角形またはアルファ線のアンチエイリアシング アルゴリズムを使用するかどうかを指定します。 四角形の線のアンチエイリアシング アルゴリズムを使用する場合は TRUE 、アルファ線のアンチエイリアシング アルゴリズムを使用する場合は FALSE に設定します。 このメンバーの詳細については、「解説」を参照してください。
AntialiasedLineEnable
線のアンチエイリアシングを有効にするかどうかを指定します。線の描画と MultisampleEnable が FALSE の場合にのみ適用されます。 このメンバーの詳細については、「解説」を参照してください。
ForcedSampleCount
型: UINT
UAV のレンダリングまたはラスタライズ中に強制されるサンプル数。 有効な値は 0、1、4、8、および必要に応じて 16 です。 0 は、サンプル数が強制されていないことを示します。
- 深度ステンシル ビューはバインドしないでください。
- 深度テストを無効にします。
- シェーダーが深度を出力しないことを確認します。
- レンダー ターゲット ビューがバインドされていて (D3D12_DESCRIPTOR_HEAP_TYPE_RTV)、 ForcedSampleCount が 1 より大きい場合は、すべてのレンダー ターゲットに 1 つのサンプルのみが含まれるようにします。
- サンプルの頻度でシェーダーを操作しないでください。 そのため、 ID3D12ShaderReflection::IsSampleFrequencyShader はFALSE を返します。
ConservativeRaster
保守的なラスター化がオンかオフかを識別するD3D12_CONSERVATIVE_RASTERIZATION_MODE型指定された値。
注釈
D3D12_GRAPHICS_PIPELINE_STATE_DESCにはラスタライザー状態構造が含まれています。
ラスタライザーの状態は、ラスタライザー ステージの動作を定義します。
ラスタライザーの状態を指定しない場合、Direct3D ランタイムではラスタライザーの状態に次の既定値が使用されます。
状態 | 既定値 |
---|---|
FillMode | D3D12_FILL_MODE_SOLID |
CullMode | D3D12_CULL_MODE_BACK |
FrontCounterClockwise | FALSE |
DepthBias | 0 |
DepthBiasClamp | 0.0f |
SlopeScaledDepthBias | 0.0f |
DepthClipEnable | TRUE |
MultisampleEnable | FALSE |
AntialiasedLineEnable | FALSE |
ForcedSampleCount | 0 |
ConservativeRaster | D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF |
線レンダリング アルゴリズム | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
エイリアス | FALSE | FALSE |
アルファアンチエイリアシング | FALSE | TRUE |
四辺形 | TRUE | FALSE |
四辺形 | TRUE | TRUE |
MultisampleEnable メンバーと AntialiasedLineEnable メンバーの設定は、マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲット (つまり、サンプル数が 1 より大きいレンダー ターゲット) にのみ適用されます。 機能レベルの動作が異なるため、線描画を実行しないか、線が四辺形としてレンダリングされることを気にしない限り、MSAA レンダー ターゲットでレンダリングするたびに常に MultisampleEnable を TRUE に設定することをお勧めします。
要件
要件 | 値 |
---|---|
Header | d3d12.h |