Cor da névoa (Direct3D 9)
A cor da névoa para a névoa de pixel e vértice é definida através 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 névoa como branco.
/* 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;
O nevoeiro é aplicado de forma diferente pelo pipeline de função fixa e pelo pipeline programável.
- Se o driver suportar 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 fog renderstate.
- Se o pipeline programável for usado, v1.w (no sombreador de pixel) será igual a 0, mesmo que oD1.w seja explicitamente escrito em um sombreador de vértice.
- Se o driver NÃO suportar 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 no estado de renderização de névoa.
- Se oFog for explicitamente escrito 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 oD1.w esteja explicitamente escrito em um sombreador de vértice.
Para obter mais informações, consulte D3DPMISCCAPS.
Tópicos relacionados