Share via


D3D10_RASTERIZER_DESC 結構 (d3d10.h)

描述轉譯器狀態。

語法

typedef struct D3D10_RASTERIZER_DESC {
  D3D10_FILL_MODE FillMode;
  D3D10_CULL_MODE CullMode;
  BOOL            FrontCounterClockwise;
  INT             DepthBias;
  FLOAT           DepthBiasClamp;
  FLOAT           SlopeScaledDepthBias;
  BOOL            DepthClipEnable;
  BOOL            ScissorEnable;
  BOOL            MultisampleEnable;
  BOOL            AntialiasedLineEnable;
} D3D10_RASTERIZER_DESC;

成員

FillMode

類型: D3D10_FILL_MODE

D3D10_FILL_MODE列舉型別的成員,決定轉譯時要使用的填滿模式。 預設值為 D3D10_FILL_SOLID

CullMode

類型: D3D10_CULL_MODE

D3D10_CULL_MODE列舉型別的成員,指出是否繪製面向指定方向的三角形。 預設值為 D3D10_CULL_BACK

FrontCounterClockwise

類型: BOOL

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

DepthBias

類型: INT

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

DepthBiasClamp

類型: FLOAT

指定圖元的最大深度偏差。 預設值為 0.0f。 如需深度偏差的相關資訊,請參閱 深度偏差

SlopeScaledDepthBias

類型: FLOAT

指定指定圖元斜率的純量。 預設值為 0.0f。 如需深度偏差的相關資訊,請參閱 深度偏差

DepthClipEnable

類型: BOOL

根據距離啟用或停用裁剪。 預設值為 TRUE

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

啟用或停用剪刀或矩形擷取。 使用中剪刀或矩形外的所有圖元都會被消除。 預設值為 FALSE。 如需詳細資訊,請參閱 設定 Scissor Rectangle

MultisampleEnable

類型: BOOL

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

AntialiasedLineEnable

類型: BOOL

指定是否啟用行反鋸齒;僅適用于啟用 Alpha 混合、您正在繪製線條,而 MultisampleEnable 成員為 FALSE時。 預設值為 FALSE。 如需此成員的詳細資訊,請參閱。

備註

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

注意 針對 功能層級 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

規格需求

   
標頭 d3d10.h

另請參閱

核心結構