Globalno osvjetljenje

Pojednostavljeno gledano razlikujemo dva osnovna modela osvjetljenja: lokalni i globalni. Karakteristike lokalnog modela su sjenčanje temeljeno na izravnoj izloženosti izvorima svjetlosti i nepostojanje sjena. S druge strane globalno osvjetljenje uzima u obzir sjene kao posljedicu blokiranog puta svjetlosti, višestruke refleksije svjetlosti od izvora svjetlosti do oka i potpuno uračunavanje odaslane svjetlosne energije. Tipični, komercijalno korišteni algoritmi za aproksimaciju jednadžbe globalnog osvjetljenja su praćenje zraka svjetlosti i izračenje. Osim njih koristi se i tehnika mapiranja fotona, te za najtočnije rezultate Monte Carlo simulacija.

Primjer računalnog slikotvorstva uz korištenje algoritma praćenja zraka bez primjene globalnog osvjetljenja. Za primijetiti je nedostatak definicije u područjima izvan izravnog dosega izvora svjetlosti. Primjerice, geometrija stropnog svjetla je zaklonjena homogenom sivom plohom, koja bi bez konstante ambijentalnog osvjetljenja bila crno obojena.
Ista slika uz korištenje algoritma globalnog osvjetljenja ovaj put daje mnogo točniji prikaz. Plohe se sada ponašaju kao "izvori svjetlosti" te prenose svoju boju na elemente scene, što je jasno izraženo u zelenom dijelu spektra. Također, za primijetiti je kaustični efekt ispod lijeve sfere, koji je nastao kao posljedica kvazi-konvergentnog loma svjetlosti kroz dioptrijsku sferu

Postoji čitav niz algoritama koji se danas koriste u cilju postizanja naravne računalne predodžbe vizualne stvarnosti, no osim čistokrvne Monte Carlo simulacije prostiranja svjetlosnog zračenja, nijedan od njih pojedinačno nije u stanju u potpunosti prikazati pravo ravnotežno stanje svjetlosnog toka opisanog jednadžbom globalnog osvjetljenja. Jedan od načina podjele takvih algoritama je po vrsti svjetlosnih interakcija, odnosno svjetlosnih putanja koje su sposobni simulirati. Da stvari budu maksimalno jednostavne pretpostavimo da postoje samo dva tipa svjetlosnih raspršenja: općenito raznosmjerna (R) i općenito zrcalna (Z). U opisivanju takvih putanja krećemo od izvora svjetlosti (I) i završavamo u oku (O).

Sada sve moguće svjetlosne putanje možemo definirati sljedećim regularnim izrazom: I(R|Z)*O. (*) naznačuje da se izraz u zagradama može ponoviti proizvoljno mnogo puta)

Primjer nekih najuobičajenijih putanja svjetlosti:

IO – svjetlo ide izravno iz izvora u oko

IRO – svjetlo putuje od izvora i odbija se od difuzne površine vidljive promatraču

IZO – svjetlo se na putu od izvora reflektira na zrcalu

I(Z|R)O – svjetlo se reflektira ili na difuznoj ili na zrcalnoj površini

Tipične današnje računalne igre pisane za DirectX ili OpenGL API u stanju su simulirati svjetlosne putanje samo oblika: LR? Z? E. Dakle, nedostaju im višestruke difuzne refleksije tipa L D* E koje se još uvijek aproksimiraju konstantom ambijentalnog osvjetljenja, lomom svjetlosti kroz prozirne plohe i općenito višestrukim zrcalno-raznosmjernim refleksijama. (? je sufiksni operator koji naznačuje da se prethodeći mu izraz može, ali i ne mora obistiniti).

Za spomenuti je na ovom mjestu da naivna implementacija praćenja zraka obuhvaća samo putanje tipa LR? Z*E, dok obično izračenje može simulirati samo putanje tipa LR*E. U slučaju da se koristi dvosmjerno Praćenje zraka, odnosno Praćenje zraka s mapiranjem fotona, spektar simuliranih putanja proširuje se na LZ* R? Z* E.