共用方式為


Alpha 紋理混合 (Direct3D 9)

光源引擎會結合材質色彩、頂點色彩和光源資訊,以產生每個頂點色彩。 一旦進行插值,這會產生每個像素的顏色,並寫入到幀緩衝區。 如果應用程式啟用紋理混合,圖元色彩將會成為畫面緩衝區中目前圖元和紋理色彩的組合。

此公式會決定最終的混合圖元色彩:

Color = TexelColor x SourceBlend + CurrentPixelColor x DestBlend

哪裡:

  • 色彩是輸出圖元色彩。
  • TexelColor 是紋理篩選后的輸入色彩。
  • SourceBlend 是最終像素色彩中由來源像素色彩構成的百分比。
  • CurrentPixelColor 是目前圖元的色彩。
  • DestBlend 是構成目前圖元色彩的最終圖元色彩百分比。

最後的混合方程式是藉由呼叫 IDirect3DDevice9::SetRenderState 並指定具有對應混合因數的混合轉譯狀態 (D3DBLENDD3DRS_BLENDXXX) 來設定。 SourceBlend 和 DestBlend 的值範圍從 0.0(透明)到 1.0(不透明)。 此外,應用程式可以在紋理中設定 Alpha 值來控制圖元的透明度。 在此情況下,使用下列選項:

SourceBlend = D3DBLEND_ZERO 
DestBlend = D3DBLEND_ONE

混合方程式會使轉譯的圖元變得透明。 預設值為:

SourceBlend = D3DBLEND_SRCALPHA 
DestBlend = D3DBLEND_INVSRCALPHA

紋理混合

紋理篩選 (Direct3D 9)

D3DRENDERSTATETYPE