ID3D10Device::OMSetBlendState 方法 (d3d10.h)

設定輸出合併階段的 混合狀態

語法

void OMSetBlendState(
  [in] ID3D10BlendState *pBlendState,
  [in] const FLOAT [4]  BlendFactor,
  [in] UINT             SampleMask
);

參數

[in] pBlendState

類型: ID3D10BlendState*

混合狀態介面的指標 (請參閱 ID3D10BlendState) 。 傳入 Null 表示預設混合狀態。 如需詳細資訊,請參閱備註。

[in] BlendFactor

類型:const FLOAT

混合因數陣列,每個 RGBA 元件各一個。 混合因數會調整圖元著色器、轉譯目標或兩者的值。 如果您使用 D3D10_BLEND_BLEND_FACTORD3D10_BLEND_INV_BLEND_FACTOR建立 blend-state 物件,混合階段會使用混合因數的非 Null 陣列。 如果您未使用 D3D10_BLEND_BLEND_FACTORD3D10_BLEND_INV_BLEND_FACTOR來建立混合狀態物件,混合階段就不會使用混合因數的非 Null 陣列;執行時間會儲存混合因數,您稍後可以呼叫 ID3D11DeviceCoNtext::OMGetBlendState 來擷取混合因數。 如果您傳遞 Null,執行時間會使用或儲存等於 { 1, 1, 1, 1 } 的混合因數。

[in] SampleMask

類型: UINT

32 位範例涵蓋範圍。 預設值為 0xffffffff。 請參閱<備註>。

傳回值

備註

混合狀態是由 輸出合併階段 使用,以決定如何將兩個 RGB 圖元值和兩個 Alpha 值混合在一起。 兩個 RGB 圖元值和兩個 Alpha 值是圖元著色器輸出的 RGB 圖元值和 Alpha 值,以及輸出轉譯目標中已經有的 RGB 圖元值和 Alpha 值。 混合選項可控制混合階段用來調整圖元著色器、轉譯目標或兩者之值的資料來源。 混合作業會控制混合階段如何以數學方式結合這些調色值。

若要建立混合狀態介面,請呼叫 ID3D10Device::CreateBlendState

傳遞 blend-state 介面的 Null 表示執行時間設定預設混合狀態。 下表指出預設混合參數。

狀態 預設值
AlphaToCoverageEnable FALSE
BlendEnable FALSE[8]
SrcBlend D3D10_BLEND_ONE
DstBlend D3D10_BLEND_ZERO
BlendOp D3D10_BLEND_OP_ADD
SrcBlendAlpha D3D10_BLEND_ONE
DstBlendAlpha D3D10_BLEND_ZERO
BlendOpAlpha D3D10_BLEND_OP_ADD
RenderTargetWriteMask[8] D3D10_COLOR_WRITE_ENABLE_ALL[8]
 

範例遮罩會決定所有作用中轉譯目標中更新的樣本。 範例遮罩中的位對應到多重取樣轉譯目標中的樣本是個別應用程式的責任。 一律會套用範例遮罩;它與是否啟用多重取樣無關,而且不取決於應用程式是否使用多重取樣轉譯目標。

方法不會保存傳入之介面的參考。 基於這個理由,應用程式應該小心不要釋放裝置目前使用的介面。

規格需求

   
目標平台 Windows
標頭 d3d10.h
程式庫 D3D10.lib

另請參閱

ID3D10Device 介面