共用方式為


(Direct3D 9)

圖元和頂點的模糊色彩都是透過D3DRS_FOGCOLOR轉譯狀態來設定。 轉譯狀態值可以是任何 RGB 色彩,指定為 RGBA 色彩。 Alpha 元件會被忽略。

下列 C++ 範例會將模糊色彩設定為白色。

/* For this example, the d3dDevice variable is
* a valid pointer to an IDirect3DDevice9 interface.
*/
HRESULT hr;
hr = d3dDevice->SetRenderState(
                    D3DRS_FOGCOLOR,
                    0x00FFFFFF); // Highest 8 bits are not used.
if(FAILED(hr))
    return hr;

固定函式管線和可程式化的管線會以不同的方式套用模糊。

  1. 如果驅動程式支援D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • 如果使用固定函式管線並設定D3DRS_FOGCOLOR,則圖元著色器中的 v1.w () 等於在轉譯日期中設定的值。
    • 如果使用可程式化管線,則即使 oD1.w 明確寫入頂點著色) 器,圖元著色器中的 v1.w (等於 0 也一樣。
  2. 如果驅動程式不支援D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • 如果使用固定函式管線並設定D3DRS_FOGCOLOR,則圖元著色器中的 v1.w () 在轉譯日期中設定的等於值。
    • 如果 oFog 明確寫入頂點著色器,則圖元著色器中的 v1.w () 等於 oFog,並限制在 0 到 1 之間。
    • 如果上述兩種情況都未套用,則即使 oD1.w 明確寫入頂點著色器,在圖元著色器中的 v1.w (仍) 等於 0。

如需詳細資訊,請參閱 D3DPMISCCAPS

水氣類型