Alpha 紋理混合 (Direct3D 9)
光源引擎會結合材質色彩、頂點色彩和光源資訊,以產生每個頂點色彩。 插入之後,這會產生寫入框架緩衝區的每個圖元色彩。 如果應用程式啟用紋理混合,圖元色彩將會成為畫面緩衝區中目前圖元和紋理色彩的組合。
此公式會決定最終混合圖元色彩:
Color = TexelColor x SourceBlend + CurrentPixelColor x DestBlend
其中:
- 色彩是輸出圖元色彩。
- TexelColor 是紋理篩選之後的輸入色彩。
- SourceBlend 是由來源紋素色彩所組成的最終圖元色彩百分比。
- CurrentPixelColor 是目前圖元的色彩。
- DestBlend 是由目前圖元色彩所組成的最終圖元色彩百分比。
最後的混合方程式是呼叫 IDirect3DDevice9::SetRenderState ,並使用對應的混合因數 (D3DBLEND) 來指定混合轉譯狀態 (D3DRS_BLENDXXX) 。 SourceBlend 和 DestBlend 的值範圍從 0.0 (透明) 到包含 1.0 (不透明) 。 此外,應用程式可以藉由在紋理中設定 Alpha 值來控制圖元的透明度。 在此情況下,請使用下列專案:
SourceBlend = D3DBLEND_ZERO
DestBlend = D3DBLEND_ONE
混合方程式會使轉譯的圖元成為透明。 預設值是:
SourceBlend = D3DBLEND_SRCALPHA
DestBlend = D3DBLEND_INVSRCALPHA
相關主題