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 を呼び出します。

メモ機能レベル 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 d3d10.h

関連項目

コア構造