共用方式為


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。

Alpha 混合的另一個應用程式是控制 3D 場景中的光源,也稱為光線對應。 將來源混合狀態設定為D3DBLEND_ZERO,而目的地混合狀態會根據來源 Alpha 資訊 D3DBLEND_SRCALPHA將場景變深。 來源基本類型是用來做為光線地圖,可適當地調整框架緩衝區的內容,使其變深。 這會產生單色光線對應。

您可以將來源 Alpha 混合狀態設定為 D3DBLEND_ZERO,並將目的地混合狀態設定為 D3DBLEND_SRCCOLOR,以達到色彩光線對應。

轉譯狀態