轉譯目標 Alpha (Direct3D 9)
畫面緩衝區混合器現在可以混合Alpha色板,與轉譯目標上的色彩通道混合無關。 此控件已啟用新的轉譯狀態,D3DRS_SEPARATEALPHABLENDENABLE。
當D3DRS_SEPARATEALPHABLENDENABLE設定為 FALSE (也就是默認條件),套用至 Alpha 的轉譯目標混合因數和作業會與針對混合色彩色板定義的混合因數和作業相同。 驅動程式必須設定D3DPMISCCAPS_SEPARATEALPHABLEND上限,以指出它可以支持轉譯目標 Alpha 混合。 請務必讓D3DRS_ALPHABLEND告訴管線需要Alpha混合。
若要控制轉譯目標混合器 Alpha 色板中的因素,兩個新的轉譯狀態的定義如下:
D3DRS_SRCBLENDALPHA
D3DRS_DESTBLENDALPHA
如同D3DRS_SRCBLEND和D3DRS_DESTBLEND,這些值可以設定為 D3DBLEND 列舉中的其中一個值。 來源和目的地混合設定可以透過數種方式合併,視 SrcBlendCaps 和 destBlendCaps 成員 D3DCAPS9中的設定而定。
Alpha 混合的完成方式如下:
renderTargetAlpha = (alphain * srcBlendOp) BlendOp (alphart * destBlendOp)
哪裡:
- 中的alpha 是輸入Alpha值。
- srcBlendOp 是 D3DBLEND中的其中一個混合因素。
- BlendOp 是 D3DBLENDOP中的其中一個混合因素。
- alphart 是轉譯目標 Alpha 值。
- destBlendOp 是 D3DBLEND中的其中一個混合因數。
- renderTargetAlpha 是最終的混合 Alpha 值。
相關主題