D3D11_RASTERIZER_DESC 構造体 (d3d11.h)
ラスタライザーの状態について説明します。
構文
typedef struct D3D11_RASTERIZER_DESC {
D3D11_FILL_MODE FillMode;
D3D11_CULL_MODE CullMode;
BOOL FrontCounterClockwise;
INT DepthBias;
FLOAT DepthBiasClamp;
FLOAT SlopeScaledDepthBias;
BOOL DepthClipEnable;
BOOL ScissorEnable;
BOOL MultisampleEnable;
BOOL AntialiasedLineEnable;
} D3D11_RASTERIZER_DESC;
メンバー
FillMode
種類: D3D11_FILL_MODE
レンダリング時に使用する塗りつぶしモードを決定します ( 「D3D11_FILL_MODE」を参照)。
CullMode
種類: D3D11_CULL_MODE
指定した方向に向いている三角形が描画されないことを示します ( 「D3D11_CULL_MODE」を参照)。
FrontCounterClockwise
種類: BOOL
三角形が正面向きか背面向きかを決定します。 このパラメーターが TRUE の場合、頂点がレンダー ターゲット上で反時計回りに配置されている場合、三角形は前面と見なされ、時計回りである場合は背面と見なされます。 このパラメーターが FALSE の場合、その逆は true です。
DepthBias
型: INT
指定されたピクセルに追加された深度値。 深度バイアスの詳細については、「 深度バイアス」を参照してください。
DepthBiasClamp
型: FLOAT
ピクセルの最大深度バイアス。 深度バイアスの詳細については、「 深度バイアス」を参照してください。
SlopeScaledDepthBias
型: FLOAT
特定のピクセルの傾きのスカラー。 深度バイアスの詳細については、「 深度バイアス」を参照してください。
DepthClipEnable
種類: BOOL
距離に基づいてクリッピングを有効にします。
ハードウェアは、ラスター化された座標の 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
種類: BOOL
ハサミ四角形のカリングを有効にします。 アクティブなハサミの四角形の外側にあるすべてのピクセルがカリングされます。
MultisampleEnable
種類: BOOL
マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲットで四角形またはアルファ線のアンチエイリアシング アルゴリズムを使用するかどうかを指定します。 四角形の線のアンチエイリアシング アルゴリズムを使用する場合は TRUE 、アルファ線のアンチエイリアシング アルゴリズムを使用する場合は FALSE に設定します。 このメンバーの詳細については、「解説」を参照してください。
AntialiasedLineEnable
種類: BOOL
線のアンチエイリアシングを有効にするかどうかを指定します。線の描画と MultisampleEnable が FALSE の場合にのみ適用されます。 このメンバーの詳細については、「解説」を参照してください。
注釈
ラスタライザーの状態は、ラスタライザー ステージの動作を定義します。 ラスタライザー状態オブジェクトを作成するには、 ID3D11Device::CreateRasterizerState を呼び出します。 ラスタライザーの状態を設定するには、 ID3D11DeviceContext::RSSetState を呼び出します。
ラスタライザーの状態を指定しない場合、Direct3D ランタイムではラスタライザーの状態に次の既定値が使用されます。
状態 | 既定値 |
---|---|
FillMode | [実線] |
CullMode | 戻る |
FrontCounterClockwise | FALSE |
DepthBias | 0 |
SlopeScaledDepthBias | 0.0f |
DepthBiasClamp | 0.0f |
DepthClipEnable | TRUE |
ScissorEnable | FALSE |
MultisampleEnable | FALSE |
AntialiasedLineEnable | FALSE |
線レンダリング アルゴリズム | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
エイリアス | FALSE | FALSE |
アルファアンチエイリアシング | FALSE | TRUE |
四辺形 | TRUE | FALSE |
四辺形 | TRUE | TRUE |
MultisampleEnable メンバーと AntialiasedLineEnable メンバーの設定は、マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲット (つまり、サンプル数が 1 より大きいレンダー ターゲット) にのみ適用されます。 機能レベルの動作が異なるため、線描画を実行しないか、線が四辺形としてレンダリングされることを気にしない限り、MSAA レンダー ターゲットでレンダリングするたびに常に MultisampleEnable を TRUE に設定することをお勧めします。
要件
要件 | 値 |
---|---|
Header | d3d11.h |