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