Formule nebbia (Direct3D 9)
Le applicazioni C++ possono controllare il modo in cui la nebbia influisce sul colore degli oggetti in una scena modificando il modo in cui Microsoft Direct3D calcola gli effetti della nebbia sulla distanza. Il tipo enumerato D3DFOGMODE contiene membri che identificano le tre formule di nebbia. Tutte le formule calcolano un fattore di nebbia come funzione della distanza, in base ai parametri impostati dall'applicazione.
Nebbia lineare
Viene impostato con l'equazione di D3DFOG_LINEAR seguente.
di nebbia lineare diretta3d
dove
- start è la distanza in cui iniziano gli effetti nebbia.
- fine è la distanza a cui gli effetti nebbia non aumentano più.
- d rappresenta la profondità o la distanza dal punto di vista. Per la nebbia basata sull'intervallo, il valore per d è la distanza tra la posizione della fotocamera e un vertice. Per la nebbia non basata sull'intervallo, il valore per d è il valore assoluto della coordinata Z nello spazio della fotocamera.
Nebbia esponenziale
Le formule lineari ed esponenziali sono supportate sia per la nebbia pixel che per la nebbia dei vertici.
Viene impostato con l'equazione di D3DFOG_EXP seguente.
di nebbia esponenziale diretta3d
dove
- e è la base di logaritmi naturali (circa 2,71828).
- densità è una densità di nebbia arbitraria che può variare da 0,0 a 1,0.
- d rappresenta la profondità o la distanza dal punto di vista, come indicato in precedenza.
Questa opzione viene impostata con l'equazione di D3DFOG_EXP2 seguente.
di nebbia esponenziale diretta3d
dove
- e è la base di logaritmi naturali come indicato in precedenza.
- densità è una densità di nebbia arbitraria che può variare da 0,0 a 1,0 come indicato in precedenza.
- d rappresenta la profondità o la distanza dal punto di vista, come indicato in precedenza.
Nota
Il sistema archivia il fattore di nebbia nel componente alfa del colore speculare per un vertice. Se l'applicazione esegue la propria trasformazione e illuminazione, è possibile inserire manualmente i valori dei fattori di nebbia da applicare al sistema durante il rendering.
Il grafico seguente mostra queste formule, usando valori comuni come nei parametri della formula.
D3DFOG_LINEAR è 1.0 all'inizio e 0.0 alla fine. Non viene misurata rispetto ai piani vicini o lontani.
Quando Direct3D calcola gli effetti nebbia, usa il fattore di nebbia di una delle equazioni precedenti nell'equazione di fusione seguente.
direct3d
Questa formula ridimensiona efficacemente il colore del poligono corrente C dal fattore di nebbia f e aggiunge il prodotto al colore di nebbia C, ridimensionato dall'inverso bit per bit del fattore di nebbia. Il valore del colore risultante è una fusione del colore nebbia e del colore originale, come fattore di distanza. La formula si applica a tutti i dispositivi supportati in Microsoft DirectX 7.0 e versioni successive. Per il dispositivo di rampa legacy, il fattore di nebbia ridimensiona i componenti di colore diffuso e speculare, fissato all'intervallo di 0,0 e 1,0 inclusi. Il fattore di nebbia inizia in genere a 1,0 per il piano vicino e diminuisce a 0,0 al piano lontano.
Argomenti correlati