Nebbia (Direct3D 9)

L'aggiunta di nebbia a una scena 3D può migliorare il realismo, fornire un ambiente o impostare un umore e offuscare artefatti talvolta causati quando viene visualizzata una geometria distante. Direct3D supporta due modelli di nebbia, nebbia in 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 colore originale si fonde sempre di più con il colore di nebbia scelto, creando l'illusione che l'oggetto venga 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.

illustrazione della stessa scena con e senza nebbia

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 stato d'animo e ammorbidire il colore degli oggetti in una scena.

Direct3D offre due modi per aggiungere nebbia a una scena: nebbia in pixel e nebbia dei vertici, denominata per il modo in cui vengono applicati gli effetti della nebbia. Per informazioni dettagliate, vedere Pixel Fog (Direct3D 9) e Vertex Fog (Direct3D 9). In breve, la nebbia in pixel, detta anche nebbia da tavolo, viene implementata nel driver di dispositivo e nella nebbia dei vertici viene implementata nel motore di illuminazione Direct3D. Un'applicazione può implementare la nebbia con un vertex shader e la nebbia in pixel contemporaneamente, se lo si desidera.

Nota

Indipendentemente dal fatto che si usi la nebbia dei pixel o dei vertici, l'applicazione deve fornire una matrice di proiezione conforme per garantire che gli effetti di 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 illustrano la nebbia e presentano informazioni sull'uso di varie funzionalità di nebbia nelle applicazioni Direct3D.

La fusione nebbia è controllata dagli stati di rendering; non fa parte della pipeline di pixel programmabile.

Direct3D Rendering