Basi della global illumination
From Kraytracing Wiki
Global Illumination è il nome generale di un gruppo di algoritmi utilizzati nella grafica tridimensionale computerizzata con il fine di conferire realismo all'illuminazione di una scena 3D. Questi algoritmi considerano non solo la luce proveniente direttamente da una sorgente luminosa (direct illumination) ma anche i casi conseguenti in cui i raggi di luce provenienti dalla stessa sorgente luminosa vengono riflessi dalle superfici presenti in scena (indirect illimination).
Le immagini renderizzate impiegando gli algoritmi della Global Illumination risultano quindi più “fotorealistiche” rispetto a quelle ottenute utilizzando solo gli algoritmi dell'illuminazione diretta. Ad ogni modo, queste immagini sono maggiormente esose da un punto di vista computazionale e, di conseguenza, più lente da generare. Un approccio comune è quello di calcolare l'illuminazione globale di una scena e memorizzare queste informazioni con la geometria, per esempio la radiosità (radiosity). I dati memorizzati possono quindi essere utilizzati per generare immagini di una stessa scena da diversi punti di vista, come, ad esempio, per la generazione di un percorso attraverso una scena senza dover subire ripetutamente costosi calcoli per l'illuminazione. Radiosity, ray tracing, beam tracing, cone tracing, path tracing, metropolis light transport, ambient occlusion e photon mapping sono tutti esempi di algoritmi utilizzati in Global Illumination, alcuni dei quali possono essere usati insieme per una resa veloce ma, al contempo, accurata.
Radiosity, ray tracing, beam tracing, cone tracing, path tracing, metropolis light transport, ambient occlusion, and photon mapping are all examples of algorithms used in global illumination, some of which may be used together to yield results that are fast, but accurate.
Tecniche di Global illumination in Kray
Kray annovera diverse delle tecniche sopra descritte. Queste sono ray tracing, photon/light mapping, e path tracing. Mentre il raytracing computa solo l'illuminazione diretta, il photon mapping, il light mapping ed il path tracing computano, seppur con modalità diverse, la completa Global Illumination di una scena.
Photon mapping
l photon mapping è una delle tecniche che aiutano a velocizzare drammaticamente i tempi computazionali della Global Illimination. Esso consta di due passaggi: l'emissione di fotoni ed il final gathering. Nel primo passaggio, un dato numero di “pacchetti di luce” chiamati fotoni vengono emessi dalla sorgente luminosa e rimbalzano all'interno della scena. Ogni volta in cui un fotone interseca una superficie, il punto di intersezione, la direzione di provenienza e l'energia del fotone sono memorizzati in una “cache” denominata photon map.
E' possibile vedere i fotoni in Kray utilizzando la modalità Photon estimate e Global unfiltered dal menu General della GUI di ray.
Il photon mapping è solo una stima approssimativa di una luce in un dato punto e pertanto abbiamo bisogno di un altro passaggio per ottenere risultati più accurati.
Final Gathering
Il passo finale nel rendering che Kray esegue si chiama Final Gathering (o FG). Questa tecnica calcola un'illuminazione più accurata in un punto campionato utilizzando la photon map che è stata calcolata e memorizzata nel precedente passaggio aiutando, quindi, a velocizzare il processo. Computare l'irradianza per ogni punto nello spazio potrebbe essere ancora dispendioso in termini di tempo e risorse e quindi viene utilizzata un'altra tecnica chiamata irradiance caching. Quello che l'irradiance caching fa è semplicemente calcolare l'irradianza in quelle aree in cui la luce è maggiormente suscettibile di cambiamenti (ad esempio negli angoli, dove ci sono ombre, dove due superfici sono tra loro vicine e via dicendo). Dove le superfici sono larghe e piatte (e quidi vi sono minori cambiamenti nella distribuzione della luce) Kray utilizza meno punti di campionamento per risparmiare tempo. Kray trova questi punti effettuando un prepassaggio prima del rendering finale chiamato, appunto, prerender. E' possibile osservare dove Kray sta calcolando l'FG selezionando la modalità photon mapping, attivando cache irradiance e spuntando l'opzione show sample nel pannello FG.
E' altresì possibile disattivare l'opzione cache irradinace. Ciò potrebbe risultare utile in quelle condizioni di illuminazione particolarmente difficilei in cui il chache irradiance attivo restituisca una serie di errori noti come splotches.
Photon mapping e cache irradiance possono essere salvati in un file ed essere riutilizzati per un altro fotogramma cosi che in una animazione sarà necessario calcolare solamente i punti per l'FG che non sono ancora stati calcolati poiché non visti dalla camera nei precedenti fotogrammi.
Altri approfindimenti:
