D3D12_RASTERIZER_DESC 結構 (d3d12.h)

描述點陣化狀態。

語法

typedef struct D3D12_RASTERIZER_DESC {
  D3D12_FILL_MODE                       FillMode;
  D3D12_CULL_MODE                       CullMode;
  BOOL                                  FrontCounterClockwise;
  INT                                   DepthBias;
  FLOAT                                 DepthBiasClamp;
  FLOAT                                 SlopeScaledDepthBias;
  BOOL                                  DepthClipEnable;
  BOOL                                  MultisampleEnable;
  BOOL                                  AntialiasedLineEnable;
  UINT                                  ForcedSampleCount;
  D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;

成員

FillMode

D3D12_FILL_MODE型別值,指定要在轉譯時使用的填滿模式。

CullMode

D3D12_CULL_MODE型別值,指定不會繪製面向指定方向的三角形。

FrontCounterClockwise

判斷三角形是否為正面或反向。 如果這個成員為 TRUE,如果頂點在轉譯目標上是反順時針,而且如果頂點是順時針,則會將其視為正面三角形。 如果此參數為 FALSE,則相反為 true。

DepthBias

新增至指定圖元的深度值。 如需深度偏差的相關資訊,請參閱 深度偏差

DepthBiasClamp

圖元的最大深度偏差。 如需深度偏差的相關資訊,請參閱 深度偏差

SlopeScaledDepthBias

指定圖元斜率上的純量。 如需深度偏差的相關資訊,請參閱 深度偏差

DepthClipEnable

指定是否要根據距離啟用裁剪。

硬體一律會執行點陣化座標的 x 和 y 裁剪。 當 DepthClipEnable 設為default-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

當您將 DepthClipEnable 設定為 FALSE時,硬體會略過 z 裁剪 (,也就是上述演算法的最後一個步驟) 。 不過,硬體仍會執行 「0 < w」 裁剪。 停用 z 裁剪時,圖元層級的深度順序不正確可能會導致。 不過,停用 z 裁剪時,樣板陰影實作會簡化。 換句話說,您可以針對超出回溯裁剪平面的幾何,避免複雜的特殊案例處理。

MultisampleEnable

指定在多重取樣反鋸齒 (MSAA) 轉譯目標上使用四方或 Alpha 線反鋸齒演算法。 設定為 TRUE 以使用四邊線反別名演算法,並將 設定為 FALSE ,以使用 Alpha 線條反別名演算法。 如需此成員的詳細資訊,請參閱。

AntialiasedLineEnable

指定是否啟用行反鋸齒;只有在執行線條繪圖和 MultisampleEnableFALSE時,才適用。 如需此成員的詳細資訊,請參閱。

ForcedSampleCount

類型: UINT

UAV 轉譯或點陣化時強制的樣本計數。 有效值為 0、1、4、8 和選擇性 16。 0 表示不會強制取樣計數。

注意 如果您想要使用 ForcedSampleCount 設定為 1 或更新版本進行轉譯,您必須遵循下列指導方針:否則,轉譯行為未定義。

ConservativeRaster

D3D12_CONSER加值稅IVE_RASTERIZATION_MODE型別值,可識別保守點陣化是否開啟或關閉。

備註

D3D12_GRAPHICS_PIPELINE_STATE_DESC包含點陣化狀態結構。

點陣化狀態會定義點陣化階段的行為。

如果您未指定某些點陣化狀態,Direct3D 執行時間會針對點陣化狀態使用下列預設值。

State 預設值
FillMode D3D12_FILL_MODE_SOLID
CullMode D3D12_CULL_MODE_BACK
FrontCounterClockwise FALSE
DepthBias 0
DepthBiasClamp 0.0f
SlopeScaledDepthBias 0.0f
DepthClipEnable TRUE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
ConservativeRaster D3D12_CONSER加值稅IVE_RASTERIZATION_MODE_OFF
 
注意 對於 功能層級 9.1、9.2、9.3 和 10.0,如果您將 MultisampleEnable 設定為 FALSE,執行時間會轉譯所有點、線條和三角形,即使樣本計數大於 1 的轉譯目標也一樣。 針對功能層級 10.1 和更新版本, MultisampleEnable 的設定對 MSAA 的點和三角形沒有作用,而且只會影響選取線條轉譯演算法,如下表所示:
 
線條轉譯演算法 MultisampleEnable AntialiasedLineEnable
鋸齒 FALSE FALSE
Alpha 反鋸齒 FALSE TRUE
四邊形 TRUE FALSE
四邊形 TRUE TRUE
 

MultisampleEnableAntialiasedLineEnable成員的設定僅適用于多重取樣反鋸齒 (MSAA) 轉譯目標 (即轉譯樣本計數大於 1) 的目標。 由於 功能層級 行為的差異,而且只要您未執行任何線條繪製,或不考慮線條轉譯為四方方塊,建議您在每次在 MSAA 轉譯目標上轉譯時,一律將 MultisampleEnable 設定為 TRUE

需求

   
標頭 d3d12.h

另請參閱

CD3DX12_RASTERIZER_DESC

保守點陣化

核心結構

點陣化排序檢視