次の方法で共有


D3D11_1_DDI_RASTERIZER_DESC 構造体 (d3d10umddi.h)

ラスタライザーの状態について説明します。 Windows ディスプレイ ドライバー モデル (WDDM) 1.2 以降のユーザー モード ディスプレイ ドライバーで使用されます。

構文

typedef struct D3D11_1_DDI_RASTERIZER_DESC {
  [in] D3D10_DDI_FILL_MODE FillMode;
  [in] D3D10_DDI_CULL_MODE CullMode;
  [in] BOOL                FrontCounterClockwise;
  [in] INT                 DepthBias;
  [in] FLOAT               DepthBiasClamp;
  [in] FLOAT               SlopeScaledDepthBias;
  [in] BOOL                DepthClipEnable;
  [in] BOOL                ScissorEnable;
  [in] BOOL                MultisampleEnable;
  [in] BOOL                AntialiasedLineEnable;
  [in] UINT                ForcedSampleCount;
} D3D11_1_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 の値を無視します。

[in] ForcedSampleCount

順序指定されていないアクセス ビュー (UAV) またはレンダリング ターゲット ビュー (RTV) のレンダリング中に、サンプル数を強制するかどうかを指定し、その場合は最大サンプル数を指定します。 有効な値は、0、1、4、8、16 です。

0 の場合、ドライバーはサンプル数を強制しないようにする必要があります。

注釈

シャドウ バッファーベースのシャドウを持つアーティファクトの 1 つは、"シャドウ アクネ" です (つまり、シャドウ バッファー内の同じサーフェスの深さと比較されるシェーダーからのサーフェスの深さを計算する際の非アクティブさのために、断続的な方法で自身をシャドウするサーフェス)。 影のにきびを軽減する 1 つの方法は、シャドウ バッファーをレンダリングするときに DepthBias メンバーと SlopeScaledDepthBias メンバーを使用することです。 目的は、シャドウ バッファーをレンダリングするときにサーフェスを十分にプッシュすることです。 シャドウ テスト中にシェーダー計算 z を使用してこれらのサーフェスを自身と比較すると、比較結果はサーフェス全体で一貫性があり、ローカルセルフシャドウは回避されます。

ただし、 DepthBiasSlopeScaledDepthBias のみを使用すると、いくつかの成果物が発生する可能性があります。 たとえば、非常に急なポリゴンの場合、バイアス方程式が爆発し、シャドウ マップ内の元のサーフェスからポリゴンが非常に遠くに押し出されます。 深さの偏りによって親オブジェクトの寸法に対して非常に遠くに押し出される光に関して、急な顔を考えてみましょう。 この顔が浅い顔で囲まれているとします。バイアス方程式が押し出す量がはるかに少ないとします。 結果として得られるシャドウ マップは大きな不連続性を持ち、1 つのサーフェスによって分解面よりも近い別のサーフェスに投影されるシャドウの穴を引き起こす可能性があります。 この特定の問題を軽減する 1 つの方法は、 DepthBiasClamp メンバーを使用することです。このメンバーは、z バイアスの大きさに対してアプリケーション設定可能な上限 (正または負) を提供します。

要件

要件
サポートされている最小のクライアント Windows 8
サポートされている最小のサーバー Windows Server 2012
Header d3d10umddi.h (D3d10umddi.h を含む)