Una guida di base alle mappe dei fotoni (Photon Maps) in VRay
Vlado (Traduzione di bebo)

image020




Una guida di base alle mappe dei fotoni (Photon Maps) in VRay

image001

Ricostruzione della cattedrale di Sibenik
Modello da Marko Dabrovic http://216.239.37.10.../language_tools
Concorrenza della cattedrale di Sibenik: http://216.239.37.10.../language_tools



Questo tutorial spiega il concetto base e l'uso del photon mapping in VRay. Il tutorial è progettato per VRay 1.09.02e e Max 3,1



Concetto generale

L'idea base dietro il photon mapping è di provare e ricreare l'illuminazione indiretta in una scena tramite i raggi (tracing rays) (chiamati fotoni, anche se non hanno niente in comune con i fotoni fisici nel mondo reale) sparate dalle luci in una scena e i rimbalzi intorno a loro, memorizzando i punti in cui interagiscono con le geometrie della scena. Ciò conviene in parecchie situazioni. In primo luogo, le luci possono essere in un posto che è difficile da raggiungere con la camera raytracing. In secondo luogo, ci possono essere molte luci nella scena e valutare il contributo diretto di ogni fonte luminosa ad ogni punto può diventare molto lento. Un terzo vantaggio dei photon maps (anche se non attualmente usato in VRay) sarà comandare il raytracer nelle parti più importanti della scena.

In generale, i photon maps forniscono soltanto una valutazione approssimativa dell'illuminazione globale nella scena. Anche se possono essere usati direttamente per visualizzare gli effetti della GI, la qualità non è solitamente accettabile. Ecco perché i photon maps sono usati spesso per velocizzare un più accurato passaggio di Monte Carlo, che usa il photon map come una valutazione per secondary GI bounces.



Specifiche dei photon maps in VRay

A questo punto, i global photon maps in VRay funzionano soltanto con i materiali di VRay. Ciò è una limitazione che può essere risolta nelle versioni future.

Anche se potete usare photon mapping con tutte le luci standard di 3d Max, sono molto più facili da usare con le luci di zona (VRay area lights) di VRay e le luci dirette standard. Usate questi esclusivamente in questo tutorial.



Una scena semplice

Iniziate con una scena molto semplice - una teiera su un piano, illuminato da una luce di zona (area light). Crea una primitiva piano di circa 200x200 unità, appoggiagli una teiera con un raggio 25 e 10 segmenti al centro del piano e crea una VRay Light approssimativamente di 30x30 unità sopra la teiera. Assicurasi che la luce sia diretta in basso verso il piano. Assegna un materiale verde di VRay (VRay material) alla teiera e un materiale grigio-chiaro al piano. Scegli VRay come il rendererizzatore corrente e renderizza la scena (se la scena renderizza troppo lentamente, potete fare diminuire i subdivs di default della luce di VRay(VRay light)).

image002


Questa è la scena vista senza illuminazione indiretta.
image003

Attivando la GI, dovreste ottenere questo risultato (nota lo spurgo di colore dalla teiera sul piano e viceversa).

image004

Guardate il photon mapping! Nell'illuminazione indiretta (Indirect illumination ), scegli il programma globale del fotone(Global photon map) come il metodo sia per i rimbalzi primari che secondari (primary and secondary GI bounces ) della GI. Lascia tutti gli altri parametri con i valori di default e renderizza la scena. Dovreste ottenere risultato simile:

image005

Il risultato è poco piacevole, ma è renderizzato molto rapidamente ed è più o meno un'approssimazione esatta della luce nella scena. Ora vai nella finestra del sistema di VRay (VRay's System ) e clicca il tasto regolazioni delle luci (Light settings). Seleziona VRayLight dalla lista a sinistra.

image006

Il Generate diffuse controlla se una luce emette i fotoni globali d'illuminazione(global illumination photons). Questo è attivo di default. I Diffuse subdivs controllano il numero di fotoni emessi. Di default è 150, che significa che 150x150 = 22500 fotoni sono emessi dalla luce. Aumenta questo numero a 300, chiudi il vicino il Light settings e renderizza ancora.

image007

I punti del disturbo ora sono più piccoli, questo è il risultato dell'aumento del numero di fotoni. L'ombra della teiera è inoltre più definita. In generale più fotoni significano più particolare nell'illuminazione. Inoltre significano un consumo di memoria maggiore. Nella maggior parte dei casi, si ottiene qualcosa anche con un piccolo numero di fotoni, perché c'è bisogno soltanto di un'approssimazione grezza della GI.

Ora apri la finestra Global photon map nel Render dialog.

image008

Cambia il parametro Max photons a 100 e renderizza ancora.

image009

Il risultato è più regolare, ma anche "più vago". Il parametro Max photons controlla il numero di fotoni che saranno usati quando calcola l'illuminazione globale in un dato punto. Con l'aumentare di questo parametro, il rendering sarà più lento, ma l'illuminazione sarà più regolare. Torna a variare Max photons  con il valore 30 vale a dire quello di default.

Notate che quando abbiamo abilitato il photon map, la luce di zona (area light) non è più elaborata durante il rendering. Questo perché l'opzione Store direct light per il photon map è abilitata di default. Ciò significa che il photon map può immagazzinare la luce diretta nello stesso modo di quella indiretta. Questo può velocizzare molto il lavoro se avete molte luci nella vostra scena, perché le luci non saranno calcolate con decisione ogni volta. Per forzare il calcolo dell'illuminazione diretta con decisione, deseleziona l'opzione Store direct light.

image010

Questa volta il rendering è più lento, poiché l'illuminazione diretta è elaborata in modo tradizionale. Clicca ancora l'opzione Store direct light.

Come abbiamo visto, il photon map può approssimarsi abbastanza bene all'illuminazione globale (global illumination), ma comunque lontano dal produrre un'immagine di buona qualità, a causa del eccessivo disturbo. Potete ridurre quello aumentando i Diffuse subdivs per la luce e Max photons della photon map, ma rallenterebbe molto il rendering e il consumo di memoria sarà alto. C'è un altro modo per ottenere buoni risultati - usando le photon map insieme con la Direct GI o Irradiance map. Questa combinazione è particolarmente potente, poiché unisce il livello elevato del particolare fornito dalla Direct GI e dall'irradiance map, mentre si accelerano i calcoli della GI usando le photon map.

Scegli Irradiance map come il primo metodo diffuso di rimbalzo (first diffuse bounce) e renderizza ancora. Il risultato è abbastanza corretta e molto simile all'immagine calcolata usando l'irradiance map ed il calcolo diretto (direct computation) per i rimbalzi secondari.

image011

Una teiera su un piano non è un esempio molto utile per il photon mapping, poiché questa è una scena semplice. Ecco perché guarderemo anche un altro esempio - una scena simile alla fabled Cornell box.



La Cornell box

Comincia con una scena base che rappresenta una stanza con le pareti interne colorate in modo diverso, tre luci di zona (area lights) ed alcuni oggetti inseriti all'interno. Renderizzando la scena ora, l'immagine apparirà scura e non interessante, questo a causa della mancanza della GI (riduci i subdivs della luce di zona (area lights), se renderizza troppo lentamente). Clicca  qui per la scena iniziale.

image012

Abilitando la GI sugli oggetti la resa migliora un po', anche se la scena è ancora oscura negl'angoli:

image013

Si può correggere aumentando il moltiplicatore secondario di rimbalzi(Secondary bounces multiplier ) a 0,85 ed aumentando la profondità diffusa secondaria (Secondary bounces multiplier ) a 20, per esempio. Inoltre fissare Min rate della GI a -4 per accelerare l'irradiance map. Il risultato è migliore, ma i calcoli irradiance map sono più lenti. Useremo il global photon map per ridurre questo tempo.

image014

Regola il First e Secondary diffuse bounces della Global photon map. Vai nella finestra Global photon map  e regola il parametro dei rimbalzi (Bounces) a 20. Ciò controlla il numero di rimbalzi (bounces) diffusi memorizzati dal photon map. Inoltre regola il parametro profondità di Retrace (Retrace depth ) a 20 (questo parametro sarà spiegato più tardi). In generale, è meglio mantenere i parametri rimbalzi(Bounces) e i rimbalzi Retrace (Retrace bounces ) allo stesso valore.

image015

Con questi parametri si renderizza molto rapidamente e con un'approssimazione ragionevolmente buona dell'illuminazione della scena. La scena è molto macchiata, naturalmente. Come accennato con la teiera d'esempio, usando la Direct GI o Irradiance map insieme con il photon map si rimuove le macchie. Regola il primo metodo diffuso di rimbalzi (First diffuse bounces) con Irradiance map. Il risultato è quasi completamente lo stesso di quando abbiamo usato irradiance map da solo, ma si renderizza molto più velocemente, dato che l'irradiance map ora userà il photon map per l'approssimazione dei rimbalzi(bounces) chiari secondari.

image016

Guardiamo alcuni altri parametri del global photon map. Di default, l'illuminazione in un dato punto è approssimata tramite photon map cercando i fotoni di N più vicini (dove la N è, infatti, il valore del parametro massimo dei fotoni (Max photons)) e dividendo la loro somma energetica dall'area che i fotoni trattano. È possibile precalcolare queste informazioni d'illuminazione direttamente nel photon map. Abilita l'opzione Convert to irradiance map e regola il primo metodo diffuso di rimbalzi (First diffuse bounces) in Global photon map in modo da potere vedere il photon map direttamente.

image017

Notate che ora VRay fa un passaggio supplementare di calcolo (convertire photon map in  irradiance map). Il risultato è molto simile al photon map da solo, ma smussa le viste. Inoltre, ora VRay cerca soltanto i 10 fotoni più vicini (il valore del parametro Interp. samples appena sotto il programma Convert to irradiance map), anziché 30. Questo fa un rendering reale più velocemente. Renderizzando l'immagine con Irradiance map per i primi rimbalzi diffusi (first diffuse bounces), otterrete  un risultato molto simile a quello di prima, ma questo volta i passaggi del irradiance map saranno ancora più veloci.

image018

Gli ultimi parametri del photon map che vedremo in questa tutorial  sono soglia di Retrace (Retrace threshold) e rimbalzo Retrace (Retrace bounces) . Regola il parametro della soglia di Retrace (Retrace threshold) a 0,0 e renderizza l'immagine:

image019

L'irradiance map ora è calcolato molto rapidamente, ma ci sono alcuni disturbi negli angoli. Questo perché il photon map fornisce una buon'approssimazione soltanto per le superfici che sono a una certa distanza. Vicino agl'angoli, il disturbo del photon map possono influenzare la resa, provocando questi disturbi. Ciò può essere risolto dal calcolo della GI con i metodi di Monte Carlo anziché il photon map vicino agli angoli. Il parametro della soglia di Retrace (Retrace threshold) controlla che cosa significa "vicino agli angoli" in VRay. Quando è 0,0, non è fatto nessun passaggio. Valori più alti causeranno più passaggi e rallenteranno il tutto. Reinserici la soglia di Retrace (Retrace threshold) al relativo valore di default di 2,0.

La profondità di Retrace (Retrace depth) controlla la profondità massima per i passaggi GI. In generale dovrebbe essere uguale al numero dei rimbalzi(Bounces) nel photon map. I valori più bassi possono indurre gli angoli ad essere oscuri.

Attivando antialiasing adattabile (Adaptive antialiasing) si realizza la nostra immagine finale. Clicca qui per la scena finale.

image020

---
Questo articolo è stato importato automaticamente dal forum il Jul 31, 2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui