D3D10_DDI_RASTERIZER_DESC構造体 (d3d10umddi.h)
D3D10_DDI_RASTERIZER_DESC構造体は、ラスタライザーの状態を表します。
構文
typedef struct D3D10_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT32 DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
} D3D10_DDI_RASTERIZER_DESC;
メンバーズ
[in] FillMode
プリミティブのフィル モードを指定する値。 このメンバーは、D3D10_DDI_FILL_MODE列挙体の次のいずれかの値に設定する必要があります。
価値 | 意味 |
---|---|
D3D10_DDI_FILL_WIREFRAME (2) | ワイヤーフレームを塗りつぶします。 |
D3D10_DDI_FILL_SOLID (3) | ソリッドを塗りつぶします。 |
[in] CullMode
背面の三角形をカリングする方法を指定する値 (まったく場合)。 このメンバーは、D3D10_DDI_CULL_MODE列挙体から次のいずれかの値に設定する必要があります。
価値 | 意味 |
---|---|
D3D10_DDI_CULL_NONE (1) | 三角形をカリングしないでください。 |
D3D10_DDI_CULL_FRONT (2) | 前面をカリングします。 |
D3D10_DDI_CULL_BACK (3) | 背面をカリングします。 |
[in] FrontCounterClockwise
(ラスタライザーに関して) 反時計回りの順序で提供される頂点が正面に向いているかどうかを指定するブール値。 TRUE は、そのことを示します。FALSE は、反時計回りの頂点が背面を示していることを示します。
[in] DepthBias
バイアス式で使用する深度バイアス定数。 DepthBiasの詳細については、次の「解説」セクションを参照してください。
[in] DepthBiasClamp
バイアス式で使用される単精度浮動小数点ベクトル。 DepthBiasClampの詳細については、次の「解説」セクションを参照してください。
[in] SlopeScaledDepthBias
バイアス式で使用される単精度浮動小数点ベクトル。 SlopeScaledDepthBias の詳細については、次の「解説」セクションを参照してください。
[in] DepthClipEnable
ドライバーがビューポートの深度範囲に対して頂点 z 座標をクリップするかどうかを指定するブール値。 TRUE はクリップを示します。FALSE はクリップしないことを示します。
[in] ScissorEnable
ドライバーが適切なシザー長方形領域の外側にあるピクセルを破棄するかどうかを指定するブール値。 TRUE は破棄することを示します。FALSE は破棄しないことを示します。
[in] MultisampleEnable
ドライバーが複数サンプリングされたラスター化ルールに従う必要があるかどうかを指定するブール値。 TRUE は規則に従うことを示します。FALSE は、規則に従う必要はないことを示します。 レンダー ターゲットに 1 つのサンプルのみが含まれている場合でも、複数サンプリングされたラスタライズ ルールは true を保持します。
[in] AntialiasedLineEnable
アンチエイリアシングされたライン ラスタライズ ルールに従う線をドライバーがレンダリングするかどうかを指定するブール値。 TRUE は規則に従うことを示します。FALSE は、規則に従う必要はないことを示します。 ドライバーは、AntialiasedLineEnable の値を無視します。これは、代わりに複数サンプリングラスタライズ ルールが使用されている場合です。
備考
シャドウ バッファーベースのシャドウを持つアーティファクトの 1 つは、"シャドウ にきび" です (つまり、シャドウ バッファー内の同じサーフェスの深度と比較されるシェーダーからのサーフェスの深度を計算する際に不正確なため、断続的な方法で自身をシャドウするサーフェス)。 影のにきびを軽減する 1 つの方法は、シャドウ バッファーをレンダリングするときに、DepthBias と SlopeScaledDepthBias メンバーを使用することです。 目的は、シャドウ バッファーをレンダリングするときにサーフェスを十分にプッシュすることです。 シャドウ テスト中にシェーダーによって計算された z によってこれらのサーフェスが自身と比較される場合、比較結果はサーフェス全体で一貫性があり、ローカルセルフシャドウは回避されます。
ただし、DepthBias と SlopeScaledDepthBias のみを使用すると、いくつかのアーティファクトが発生する可能性があります。 たとえば、非常に急なポリゴンの場合、バイアス方程式が分解され、シャドウ マップ内の元のサーフェスからポリゴンが非常に遠くに押し出されます。 深さの偏りによって親オブジェクトの寸法に対して非常に遠くに押し出される光に関して、急な顔を考えてみましょう。 この顔が浅い面で囲まれているとします。バイアス方程式が押し出す数がはるかに少なくなります。 結果として得られるシャドウ マップは、分解された面よりも近い別のサーフェスに 1 つのサーフェスによってキャストされるシャドウの穴を引き起こす可能性がある巨大な不連続性を持っています。 この特定の問題を軽減する 1 つの方法は、DepthBiasClamp メンバーを使用することです。このメンバーは、z バイアスの大きさに対してアプリケーションで設定可能な上限 (正または負) を提供します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
ヘッダー | d3d10umddi.h (D3d10umddi.h を含む) |
関連項目
CalcPrivateRasterizerStateSize
CreateRasterizerState の