Color de niebla (Direct3D 9)
El color de niebla para la niebla de píxeles y vértices se establece a través del estado de representación D3DRS_FOGCOLOR. Los valores de estado de representación pueden ser cualquier color RGB, especificado como un color RGBA. Se omite el componente alfa.
En el siguiente ejemplo de C++ se establece el color de niebla en blanco.
/* 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;
La niebla se aplica de forma diferente mediante la canalización de función fija y la canalización programable.
- Si el controlador admite D3DPMISCCAPS_FOGANDSPECULARALPHA:
- Si se usa la canalización de función fija y se establece D3DRS_FOGCOLOR, v1.w (en el sombreador de píxeles) es igual al valor establecido en renderstate de niebla.
- Si se usa la canalización programable, v1.w (en el sombreador de píxeles) es igual a 0, incluso si oD1.w se escribe explícitamente en un sombreador de vértices.
- Si el controlador no admite D3DPMISCCAPS_FOGANDSPECULARALPHA:
- Si se usa la canalización de función fija y se establece D3DRS_FOGCOLOR, v1.w (en el sombreador de píxeles) es igual al valor establecido en renderstate de niebla.
- Si oFog se escribe explícitamente en un sombreador de vértices, v1.w (en el sombreador de píxeles) es igual a oFog, sujeta entre 0 y 1.
- Si ninguno de los dos casos anteriores se aplica, v1.w (en el sombreador de píxeles) es igual a 0, incluso si oD1.w se escribe explícitamente en un sombreador de vértices.
Para obtener más información, vea D3DPMISCCAPS.
Temas relacionados