Share via


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 のクリッピングを常に実行します。 DepthClipEnabledefault-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

DepthClipEnableFALSE に設定すると、ハードウェアは z クリッピング (つまり、前のアルゴリズムの最後の手順) をスキップします。 ただし、ハードウェアでは "0 < w" クリッピングが引き続き実行されます。 z クリッピングを無効にすると、ピクセル レベルで不適切な深度順序が発生する可能性があります。 ただし、z クリッピングを無効にすると、ステンシル シャドウの実装が簡略化されます。 言い換えると、バック クリッピング 平面を超えるジオメトリに対する複雑な特殊なケース処理を回避できます。

ScissorEnable

種類: BOOL

ハサミ四角形のカリングを有効にします。 アクティブなハサミの四角形の外側にあるすべてのピクセルがカリングされます。

MultisampleEnable

種類: BOOL

マルチサンプル アンチエイリアシング (MSAA) レンダー ターゲットで四角形またはアルファ線のアンチエイリアシング アルゴリズムを使用するかどうかを指定します。 四角形の線のアンチエイリアシング アルゴリズムを使用する場合は TRUE 、アルファ線のアンチエイリアシング アルゴリズムを使用する場合は FALSE に設定します。 このメンバーの詳細については、「解説」を参照してください。

AntialiasedLineEnable

種類: BOOL

線のアンチエイリアシングを有効にするかどうかを指定します。線の描画と MultisampleEnableFALSE の場合にのみ適用されます。 このメンバーの詳細については、「解説」を参照してください。

注釈

ラスタライザーの状態は、ラスタライザー ステージの動作を定義します。 ラスタライザー状態オブジェクトを作成するには、 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
 
メモ機能レベル 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 d3d11.h

こちらもご覧ください

コア構造