Cor da neblina (Direct3D 9)
A cor da neblina para a neblina de pixel e vértice é definida por meio do estado de renderização D3DRS_FOGCOLOR. Os valores de estado de renderização podem ser qualquer cor RGB, especificada como uma cor RGBA. O componente alfa é ignorado.
O exemplo C++ a seguir define a cor da neblina como branca.
/* 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;
A neblina é aplicada de forma diferente pelo pipeline de função fixa e pelo pipeline programável.
- Se o driver der suporte a D3DPMISCCAPS_FOGANDSPECULARALPHA:
- Se o pipeline de função fixa for usado e D3DRS_FOGCOLOR estiver definido, v1.w (no sombreador de pixel) será igual ao valor definido em renderstate de neblina.
- Se o pipeline programável for usado, v1.w (no sombreador de pixel) será igual a 0, mesmo que o oD1.w seja escrito explicitamente em um sombreador de vértice.
- Se o driver NÃO der suporte a D3DPMISCCAPS_FOGANDSPECULARALPHA:
- Se o pipeline de função fixa for usado e D3DRS_FOGCOLOR estiver definido, v1.w (no sombreador de pixel) será igual ao valor definido em renderstate de neblina.
- Se oFog for escrito explicitamente em um sombreador de vértice, v1.w (no sombreador de pixel) será igual a oFog, fixado entre 0 e 1.
- Se nenhum dos dois casos acima se aplicar, v1.w (no sombreador de pixel) será igual a 0, mesmo que o oD1.w seja escrito explicitamente em um sombreador de vértice.
Para obter mais informações, consulte D3DPMISCCAPS.