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_CONSERVATIVE_RASTERIZATION_MODE型別值,可識別保守點陣化是否開啟或關閉。

備註

D3D12_GRAPHICS_PIPELINE_STATE_DESC包含點陣化狀態結構。

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

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

狀態 預設值
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_CONSERVATIVE_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

保守點陣化

核心結構

轉譯器排序檢視