Partilhar via


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.

  1. 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.
  2. 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.

Tipos de névoa