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.
- 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.
- 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.
Relaterade ämnen