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.
- 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.
- 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.
Verwante onderwerpen