Rendering nebbia sotto l'acqua


8

Sono a conoscenza del glFog, che si fonde tra la nebbia e il colore della superficie in base alla distanza dalla fotocamera, in questo modo:

inserisci qui la descrizione dell'immagine

Le equazioni sono persino riportate nei documenti . Ma la nebbia viene applicata immediatamente davanti alla telecamera. Sto cercando di rendere una superficie d'acqua e voglio che abbia una profondità, ad esempio:

inserisci qui la descrizione dell'immagine

Al momento sto solo eseguendo il rendering della superficie dell'acqua con miscelazione alfa, come di seguito. Ciò di cui ho bisogno è avere la nebbia in base alla distanza dalla superficie dell'acqua al fondo dell'acqua. Come posso ottenere questa distanza? Per il momento suppongo che la telecamera sarà sempre sopra l'acqua.

inserisci qui la descrizione dell'immagine

Risposte:


5

È possibile ray ray tracciare la distanza dalla seconda superficie. Questo potrebbe essere il metodo concettualmente più semplice, ma non necessariamente più veloce *.

Ma c'è un trucco accurato, è possibile eseguire il rendering multipass di una mappa di profondità sulla superficie dell'acqua dalla fotocamera. La distanza in acqua è ora la profondità in pixel meno la profondità della mappa di profondità. Questo non funziona in tutte le situazioni come quando si esce dall'acqua e si rientra più tardi. Ma dovrebbe funzionare in molti casi, come quello raffigurato. Puoi anche usare la stessa tecnica per le operazioni booleane.

DMAP

Immagine 1 : Rendering della mappa della profondità, consultare la mappa della profondità quando si ombreggia il fondo del laghetto.

* Potrebbe essere in alcuni casi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.