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 のクリッピングが常に実行されます。 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 クリッピングを無効にすると、ステンシル シャドウの実装が簡略化されます。 言い換えると、後方クリッピング平面を超えるジオメトリに対する複雑な特殊なケース処理を回避できます。
ScissorEnable
ハサミ四角形のカリングを有効にするかどうかを指定します。 アクティブなハサミ四角形の外側にあるすべてのピクセルがカリングされます。
MultisampleEnable
マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲットで四角形またはアルファ線のアンチエイリアシング アルゴリズムを使用するかどうかを指定します。 4 辺線アンチエイリアシング アルゴリズムを使用する場合は TRUE 、アルファ線アンチエイリアシング アルゴリズムを使用する 場合は FALSE に設定します。 このメンバーの詳細については、「解説」を参照してください。
AntialiasedLineEnable
行のアンチエイリアシングを有効にするかどうかを指定します。線の描画を行い、 MultisampleEnable が FALSE の場合にのみ適用されます。 このメンバーの詳細については、「解説」を参照してください。
ForcedSampleCount
UAV のレンダリングまたはラスター化中に強制されるサンプル数。 有効な値は、0、1、2、4、8、および必要に応じて 16 です。 0 は、サンプル数が強制されていないことを示します。
- 深度ステンシル ビューをバインドしないでください。
- 深度テストを無効にします。
- シェーダーが深度を出力していないことを確認します。
- レンダー ターゲット ビューがバインドされていて (D3D11_BIND_RENDER_TARGET)、 ForcedSampleCount が 1 より大きい場合は、すべてのレンダー ターゲットに 1 つのサンプルのみが含まれるようにします。
- サンプル周波数でシェーダーを操作しないでください。 したがって、 ID3D11ShaderReflection::IsSampleFrequencyShader は FALSE を返します。
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 |
線レンダリング アルゴリズム | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
エイリアス | FALSE | FALSE |
アルファアンチエイリアシング | FALSE | TRUE |
四辺形 | TRUE | FALSE |
四辺形 | TRUE | TRUE |
MultisampleEnable および AntialiasedLineEnable メンバーの設定は、マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲット (つまり、サンプル数が 1 より大きいレンダー ターゲット) にのみ適用されます。 機能レベルの動作が異なるため、線の描画を実行しない限り、または線が四角形としてレンダリングされることを気にしない限り、MSAA レンダー ターゲットでレンダリングする場合は常に MultisampleEnable を TRUE に設定することをお勧めします。
必要条件
Header | d3d11_3.h |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示