Dela via


Dimfärg (Direct3D 9)

Dimfärg för både pixel- och hörndimma anges genom D3DRS_FOGCOLOR återgivningstillstånd. Återgivningstillståndsvärdena kan vara valfri RGB-färg, som anges som en RGBA-färg. Alfakomponenten ignoreras.

I följande C++-exempel anges dimfärgen till vit.

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

Dimma tillämpas på olika sätt av den fasta funktionspipelinen och den programmerbara pipelinen.

  1. Om drivrutinen stöder D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • Om pipelinen för den fasta funktionen används och D3DRS_FOGCOLOR anges, är v1.w (i pixelskuggningen) lika med värdet som anges i dimre renderstate.
    • Om den programmerbara pipelinen används är v1.w (i pixelskuggningen) lika med 0, även om oD1.w uttryckligen skrivs i en hörnskuggning.
  2. Om drivrutinen INTE stöder D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • Om pipelinen för den fasta funktionen används och D3DRS_FOGCOLOR anges, är v1.w (i pixelskuggaren) lika med värdet som anges i dimre renderstate.
    • Om oFog uttryckligen skrivs i en hörnskuggning är v1.w (i pixelskuggningen) lika med oFog, fastklämd mellan 0 och 1.
    • Om inget av ovanstående två fall gäller är v1.w (i pixelskuggningen) lika med 0, även om oD1.w uttryckligen skrivs i en hörnskuggning.

Mer information finns i D3DPMISCCAPS.