Delen via


Mistkleur (Direct3D 9)

Mistkleur voor zowel pixel- als hoekpuntmist wordt ingesteld via de D3DRS_FOGCOLOR renderstatus. De weergavestatuswaarden kunnen elke RGB-kleur zijn, die is opgegeven als een RGBA-kleur. Het alfa-onderdeel wordt genegeerd.

In het volgende C++-voorbeeld wordt de mistkleur ingesteld op wit.

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

Fog wordt anders toegepast door de vaste functiepijplijn en de programmeerbare pijplijn.

  1. Als het stuurprogramma ondersteuning biedt voor D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • Als de vaste functiepijplijn wordt gebruikt en D3DRS_FOGCOLOR is ingesteld, is v1.w (in de pixel-shader) gelijk aan de waarde die is ingesteld in de mistweergave.
    • Als de programmeerbare pijplijn wordt gebruikt, is v1.w (in de pixel-shader) gelijk aan 0, zelfs als oD1.w expliciet is geschreven in een hoekpunt-shader.
  2. Als het stuurprogramma geen ondersteuning biedt voor D3DPMISCCAPS_FOGANDSPECULARALPHA:
    • Als de vaste functiepijplijn wordt gebruikt en D3DRS_FOGCOLOR is ingesteld, is v1.w (in de pixel-shader) gelijk aan de waarde die is ingesteld in de mistweergave.
    • Als oFog expliciet is geschreven in een hoekpunt-shader, is v1.w (in de pixel-shader) gelijk aan oFog, vastgemaakt tussen 0 en 1.
    • Als geen van de bovenstaande twee gevallen van toepassing is, is v1.w (in de pixel-shader) gelijk aan 0, zelfs als oD1.w expliciet is geschreven in een hoekpunt-shader.

Zie D3DPMISCCAPSvoor meer informatie.

Misttypen