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 つの方法は、 DepthBiasClamp メンバーを使用することです。このメンバーは、z バイアスの大きさに対してアプリケーションによって設定可能な上限 (正または負) を提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
Header | d3d10umddi.h (D3d10umddi.h を含む) |