共用方式為


Alpha 混合狀態(Direct3D 9)

色彩的 Alpha 值會控制其透明度。 啟用alpha混合可以將表面上的色彩、材質和紋理透過透明度混合到另一個表面。

如需詳細資訊,請參閱 Alpha 紋理混合 (Direct3D 9)紋理混合 (Direct3D 9)

以C++撰寫的應用程式會使用 D3DRS_ALPHABLENDENABLE 轉譯狀態來啟用Alpha透明度混合。 Direct3D API 允許許多類型的 Alpha 混合。 不過,請務必注意使用者的 3D 硬體可能不支援 Direct3D 允許的所有混合狀態。

完成的Alpha混合類型取決於 D3DRS_SRCBLEND And D3DRS_DESTBLEND 渲染狀態。 來源和目的地混合狀態會成對使用。 下列程式代碼範例示範來源混合狀態如何設定為 D3DBLEND_SRCCOLOR,而目的地混合狀態設定為 D3DBLEND_INVSRCCOLOR。

// This code example assumes that d3dDevice is a
// valid pointer to an IDirect3DDevice9 interface.

// Set the source blend state.
d3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);

// Set the destination blend state.

d3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);

改變來源和目的地混合狀態,可以在霧氣或塵土飛揚的大氣中呈現發光物體的外觀。 例如,如果您的應用程式將火焰、力場、等離子束或類似發光物件進行模型化,則請將來源和目的地的混合狀態設定為D3DBLEND_ONE。

α 混合的另一個應用是控制 3D 場景中的光效,也稱為光影貼圖。 將來源混合狀態設定為D3DBLEND_ZERO,並將目的地混合狀態設定為D3DBLEND_SRCALPHA根據來源Alpha資訊將場景變暗。 來源原始元素用作光照貼圖,適當地縮放框架緩衝區的內容,使其變暗。 這會產生單色光線對應。

您可以將來源的 Alpha 混合狀態設定為指令 D3DBLEND_ZERO,並將目的地的混合狀態設定為指令 D3DBLEND_SRCCOLOR,以實現色光映射。

渲染狀態