D3D11_RASTERIZER_DESC結構 (d3d11.h)

描述轉譯器狀態。

語法

typedef struct D3D11_RASTERIZER_DESC {
  D3D11_FILL_MODE FillMode;
  D3D11_CULL_MODE CullMode;
  BOOL            FrontCounterClockwise;
  INT             DepthBias;
  FLOAT           DepthBiasClamp;
  FLOAT           SlopeScaledDepthBias;
  BOOL            DepthClipEnable;
  BOOL            ScissorEnable;
  BOOL            MultisampleEnable;
  BOOL            AntialiasedLineEnable;
} D3D11_RASTERIZER_DESC;

成員

FillMode

類型: D3D11_FILL_MODE

決定轉譯時要使用的填滿模式, (請參閱D3D11_FILL_MODE) 。

CullMode

類型: D3D11_CULL_MODE

表示未繪製指定方向的三角形, (請參閱 D3D11_CULL_MODE) 。

FrontCounterClockwise

類型: BOOL

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

DepthBias

類型: INT

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

DepthBiasClamp

類型: FLOAT

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

SlopeScaledDepthBias

類型: FLOAT

指定像素斜率上的純量。 如需深度偏差的相關信息,請參閱 深度偏差

DepthClipEnable

類型: BOOL

根據距離啟用裁剪。

硬體一律會執行點陣化座標的 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 裁剪時,樣板陰影實作會簡化。 換句話說,您可以避免針對超過回裁剪平面的幾何進行複雜的特殊案例處理。

ScissorEnable

類型: BOOL

啟用剪刀或矩形擷取。 使用中剪刀或矩形外的所有像素都會被消除。

MultisampleEnable

類型: BOOL

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

AntialiasedLineEnable

類型: BOOL

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

備註

轉譯器狀態會定義轉譯器階段的行為。 若要建立轉譯器狀態物件,請呼叫 ID3D11Device::CreateRasterizerState。 若要設定轉譯器狀態,請呼叫 ID3D11DeviceContext::RSSetState

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

狀態 預設值
FillMode 實線
CullMode 上一步
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0.0f
DepthBiasClamp 0.0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
 
注意 針對 功能層級 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

規格需求

需求
標頭 d3d11.h

另請參閱

核心結構