Il photon mapping è un algoritmo di illuminazione globale, basato sulla simulazione dell'emissione di raggi di luce e usato in computer grafica per simulare realisticamente l'interazione della luce con differenti oggetti. In particolare, è capace di simulare la rifrazione della luce attraverso sostanze trasparenti, ad esempio il vetro o l'acqua, riflessioni a vicenda tra oggetti illuminati, ed alcuni effetti causati da particelle come il fumo o il vapore acqueo. Il photon mapping è stato sviluppato dal ricercatore danese Henrik Wann Jensen.
Algoritmo
[modifica | modifica wikitesto]L'algoritmo del photon mapping procede attraverso due fasi.
La prima fase consiste nel simulare l'emissione di fotoni ("photon tracing"; di solito è consigliabile emetterne più di 10.000) dalle sorgenti di luce dell'immagine e nel tracciamento, all'interno della scena, di una mappa 3D di fotoni virtuali; la seconda fase consiste nel rendering della scena utilizzando le informazioni contenute nella mappa, precedentemente creata, per stimare la radianza riflessa sulle superfici della scena.
Al contrario degli algoritmi di rendering tradizionali permette di calcolare con buona precisione effetti di luce quali caustiche, riflessioni, e surface scattering, per cui risulta particolarmente utile nella produzione di immagini con elementi in cristallo o metallo, o con materiali translucidi.
È una tecnica che richiede risorse di calcolo medio-alte, dato che è necessario simulare una gran quantità di elementi. Il carico sull'elaboratore può essere ridotto abbassando il numero di fotoni, riducendone la precisione o diminuendo il numero di "rimbalzi" che questi effettuano (limitandoli ad un numero predefinito o inserendo una soglia di intensità sotto il quale ne viene interrotto il calcolo).
Nell'ordine, da sinistra: rendering senza photon mapping, con 1000 fotoni, con 2000 fotoni, con 6000 fotoni e il tracciamento dei fotoni nella prima fase di calcolo.