Udostępnij za pośrednictwem


Kolor mgły (Direct3D 9)

Kolor mgły dla mgły pikseli i wierzchołka jest ustawiany przez stan renderowania D3DRS_FOGCOLOR. Wartości stanu renderowania mogą być dowolnym kolorem RGB określonym jako kolor RGBA. Składnik alfa jest ignorowany.

Poniższy przykład języka C++ ustawia kolor mgły na biały.

/* 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;

Mgła jest stosowana inaczej przez potok funkcji stałej i programowalny potok.

  1. Jeśli sterownik obsługuje D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • Jeśli jest używany potok funkcji stałej i D3DRS_FOGCOLOR jest ustawiony, v1.w (w cieniatorze pikseli) jest równa wartości ustawionej w ustawieniu renderowania mgły.
    • Jeśli jest używany programowalny potok, wersja 1.w (w cieniowaniu pikseli) jest równa 0, nawet jeśli oD1.w jest jawnie zapisany w cieniowaniu wierzchołka.
  2. Jeśli sterownik nie obsługuje D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • Jeśli jest używany potok funkcji stałej, a D3DRS_FOGCOLOR jest ustawiona, wersja v1.w (w cieniatorze pikseli) jest równa wartości ustawionej w ustawieniu renderowania mgły.
    • Jeśli oFog jest jawnie napisany w cieniowania wierzchołka, v1.w (w cieniatorze pikseli) równa się oFog, zaciskane z zakresu od 0 do 1.
    • Jeśli żaden z powyższych dwóch przypadków nie ma zastosowania, wersja v1.w (w cieniatorze pikseli) jest równa 0, nawet jeśli oD1.w jest jawnie zapisany w cieniu wierzchołka.

Aby uzyskać więcej informacji, zobacz D3DPMISCCAPS.

typy mgły