Nebbia (Direct3D 9)
L'aggiunta di nebbia a una scena 3D può migliorare il realismo, fornire atmosfera o impostare un umore e artefatti oscura talvolta causati quando viene visualizzata la geometria distante. Direct3D supporta due modelli di nebbia, nebbia pixel e nebbia dei vertici, ognuno con le proprie caratteristiche e interfaccia di programmazione.
Essenzialmente, la nebbia viene implementata fondendo il colore degli oggetti in una scena con un colore di nebbia scelto in base alla profondità di un oggetto in una scena o alla sua distanza dal punto di vista. Man mano che gli oggetti crescono più distanti, il loro colore originale si fonde sempre più con il colore di nebbia scelto, creando l'illusione che l'oggetto sia sempre più oscurato da piccole particelle fluttuanti nella scena. La figura seguente mostra una scena sottoposta a rendering senza nebbia e una scena simile sottoposta a rendering con nebbia abilitata.
In questa illustrazione, la scena a sinistra ha un orizzonte chiaro, al di là del quale non è visibile alcun paesaggio, anche se sarebbe visibile nel mondo reale. La scena a destra nasconde l'orizzonte usando un colore di nebbia identico al colore di sfondo, rendendo i poligoni sembrano dissolversi nella distanza. Combinando effetti nebbia discreti con il design creativo della scena è possibile aggiungere umore e ammorbidire il colore degli oggetti in una scena.
Direct3D offre due modi per aggiungere nebbia a una scena: nebbia pixel e nebbia dei vertici, denominata per il modo in cui vengono applicati gli effetti nebbia. Per informazioni dettagliate, vedere Pixel Fog (Direct3D 9) e Vertex Fog (Direct3D 9). In breve, la nebbia in pixel, detta anche nebbia di tabella, viene implementata nel driver di dispositivo e la nebbia dei vertici viene implementata nel motore di illuminazione Direct3D. Un'applicazione può implementare la nebbia con un vertex shader e la nebbia pixel contemporaneamente, se lo si desidera.
Nota
Indipendentemente dal fatto che si usi la nebbia di pixel o vertici, l'applicazione deve fornire una matrice di proiezione conforme per garantire che gli effetti nebbia vengano applicati correttamente. Questa restrizione si applica anche alle applicazioni che non usano la trasformazione Direct3D e il motore di illuminazione. Per altri dettagli su come fornire una matrice appropriata, vedere Trasformazione di proiezione (Direct3D 9).
Gli argomenti seguenti introducono nebbia e presentano informazioni sull'uso di varie funzionalità di nebbia nelle applicazioni Direct3D.
- Fog Formulas (Direct3D 9)
- Fog Parameters (Direct3D 9)
- fog blending (Direct3D 9)
- colore nebbia (Direct3D 9)
- Vertex Fog (Direct3D 9)
- Pixel Fog (Direct3D 9)
La fusione nebbia è controllata dagli stati di rendering; non fa parte della pipeline di pixel programmabile.
Argomenti correlati