Računarska grafika
Svetlost i senčenje
27.04.2015.Svetlost i senčenje2
Uvod
� Svetlost i senčenje izuzetno doprinose realističnosti slike� Model izvora svetla� Model osvetljenja ili iluminacije – model refleksije svetla
– lokalno (direktno) osvetljenje– globalno (indirektno) osvetljenje
� Modeli lokalnog osvetljenja (ambijentalno, difuzno, reflektivno)– relativno brzo izračunavanje– OpenGL podržava samo lokalno osvetljenje
� Modeli (algoritmi) senčenja (nijansiranja):– ravnomerno (flat) senčenje– Guruovo (Gauraud) senčenje– Fongovo (Phong) senčenje
27.04.2015.Svetlost i senčenje3
Izvori svetla
� Izvor svetla se modelira intenzitetom svetla: IL(P, L, λ)– IL je intenzitet svetla kojeg zrači izvor Light
– P je osvetljena tačka sa koordinatama (x,y,z) na površini objekta– L je jedinični vektor smera svetla od izvora Light do tačke P
– λ je talasna dužina koja određuje boju svetla
L
27.04.2015.Svetlost i senčenje4
Ambijentalno svetlo
� I objekat koji nije direktno osvetljen je i dalje vidljiv� Svetlost koja ga obasjava potiče od ambijentalne refleksije
– ambijentalna refleksija – odbijanje svetla od drugih objekata u sceni� Modelira se jednim izvorom ambijentalnog svetla
– ne računaju se odsjaji od pojedinih površina, specificira se konstanta za sve površine
– definiše se samo pomoću ambijentalnih RGB komponenti intenziteta� Intenzitet ambijentalnog svetla intenziteta IL u tački P:
Ia(P,IL)=IL
27.04.2015.Svetlost i senčenje5
Usmereno (directional) svetlo
� Izvor svetla dovoljno dalek da se svi zraci smatraju paralelnim� Na primer, sunce kao izvor svetlosti� Definiše se preko
– intenziteta emitovanih RGB komponenti svetla IL i– vektora smera svetla L
� Smer svetla L je bitan za modeliranje odsjaja od površi� Intenzitet usmerenog svetla intenziteta IL u tački P:
Id(P,L,IL)= ILL
L
N
N
Ni ⋅LL konstantno za sve objekte
27.04.2015.Svetlost i senčenje6
Tačkasto (point) svetlo
� Relativno blizak izvor svetla koji radijalno širi zrake u svim pravcima� Na primer, sijalica� Definiše se preko intenziteta emitovanih RGB komponenti svetla IL i:
– pozicije izvora S(x,y,z)– faktora konstantnog kc, linearnog kl i kvadratnog kq slabljenja
sa rastojanjem d izvora S do tačke na površi P
� Intenzitet usmerenog svetla intenziteta IL u tački P: Ip(P, S, kc, kl, kq, IL) = IL / (kc+ kl*d + kq*d2 )
L
L
N
N
Ni ⋅LiLi različito za svaku tačku ili stranicu objekta
27.04.2015.Svetlost i senčenje7
Reflektorsko (spot) svetlo
� Izvor svetla koji zrači tako da intenzitet opada sa povećanjem otklona zraka od vektora usmerenja reflektora D
� Može da bude ograničeno zračenje na kupu sa osom na pravcu D� Na primer, reflektor� Definiše se preko intenziteta emitovanih RGB komponenti svetla IL i
– pozicije izvora S(x,y,z)– vektora smera prostiranja svetla L i vektora usmerenja reflektora D– faktora konstantnog kc, linearnog kl i kvadratnog kq slabljenja
sa rastojanjem d izvora S do tačke na površi P� Intenzitet reflektorskog svetla intenziteta IL u tački P:
Ip(P, S, D, L, kc, kl, kq, IL) = IL (D⋅L) / (kc+ kl*d + kq*d2)
L
L
N
NLN
Dθ θ
N L
Ii = – D ⋅ LIi (Ni ⋅ Li)
Opciono:If cos(θ) > – D ⋅ Li ⇒ ignoriši svetlo
27.04.2015.Svetlost i senčenje8
Modeli osvetljenja
� Modelira se interakcija svetla sa određenim tačkama osvetljene površine objekta da se odredi njihova nijansa
� U opštem slučaju, nijansa u nekoj tački površine objekta je određena:– ambijentalnim svetlom– difuznim svetlom– odsjajem svetla (specular reflection)– senkama– osobinama materijala– teksturom– ogledanjima drugih objekata (reflections)– transparentnošću, odnosno prelamanjima svetla (refractions)
� Model osvetljenja razmatra– atribute svetala (oblik, intenzitet, boju, poziciju izvora, smer svetla)– atribute površine objekta (boju, refleksivnost, transparentnost)– interakciju između svetala i objekata (orijentaciju objekta)– interakciju između objekata i oka posmatrača (smer pogleda)
27.04.2015.Svetlost i senčenje9
Podela modela osvetljenja
� Modeli osvetljenja se dele na lokalne i globalne modele– Lokalni modeli (direktno svetlo) razmatraju samo
� izvor svetla, poziciju posmatrača i svojstva materijala objekta
– Globalni modeli (indirektno svetlo) uzimaju u obzir � interakciju svetla sa svim površinama u sceni
� primeri:
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje10
Crtanje (rendering)
� Crtanje u rasterskoj grafici može biti zasnovano na sledećim tehnikama:– sken-konverzija (scan-conversion)– praćenje zraka (ray-tracing)
� Sken-konverzija – za svaki piksel duž linije skeniranja poligona:– određuje se nijansa svakog piksela
� Praćenje zraka – za svaki piksel slike:– kreira se zrak od oka kroz piksel– za svaki objekat u sceni
� određuju se preseci zraka sa objektom� čuva se presek koji je bliži od prethodno utvrđenih
– određuje se osvetljaj i boji se piksel nijansom objekta u tački preseka� OpenGL podržava samo tehniku sken-konverzije,
pa tako i samo modele lokalnog (direktnog) osvetljenja– osvetljenja se određuju u temenima poligona od kojih je obrazovana scena– vrši se interpolacija nijanse na osnovu izračunate nijanse u temenima
27.04.2015.Svetlost i senčenje11
Modeli lokalnog osvetljenja
� Modeli lokalnog osvetlenja:– Ambijentalno osvetljenje
� normale na osvetljenu površ se ne uzimaju u obzir
– Difuzno osvetljenje (Lambertov model) � uzimaju se u obzir vektori normale i svetla
– Reflektivno (spekularno) osvetljenje (Fongov model) � uzimaju se u obzir vektori normale, svetla i pogleda
� Modeli se kombinuju, efekti se superponiraju� OpenGL podržava kombinaciju sva tri modela
27.04.2015.Svetlost i senčenje12
Model ambijentalnog osvetljenja
� Ambijentno ili pozadinsko (background) svetlo: – svetlo koje rasejava okruženje, reflektovano svetlo od objekata u sceni
� Predstavlja veoma uprošćeno globalno osvetlenje (aproksimacija GO)– model GO Radiosity za preciznije izračunavanje ambijentalnog svetla
� Nezavisno je od:– položaja svetla, orijentacije objekta, položaja i orijentacije posmatrača
� Nema usmerenje� Uzima se da svaki izvor svetla daje doprinos ambijentalnom svetlu Ia� Različiti materijali mogu da reflektuju različite iznose ambijentalnog svetla
– koeficijent ka (0 <= ka <= 1) određuje odnos reflektovanog ambijentalnog svetla i upadnog
� Ambijentalna komponenta svetla na objektu iznosi: – Ambient = ka * Ia
27.04.2015.Svetlost i senčenje13
Model difuznog osvetljenja (1)
� Difuzno svetlo: – osvetljaj koji površina prima od svetlosnog izvora
i reflektuje jednako u svim pravcima
� Nebitno gde se nalazi posmatrač
� Potrebno je odrediti iznos svetla koje objekat prima iz izvora svetla
� Zasniva se na Lambertovom zakonu:
prima više svetla prima manje svetla
27.04.2015.Svetlost i senčenje14
Model difuznog osvetljenja (1)
� Lambertov zakon: – energija zračenja D koju prima mali deo površine iz izvora svetla je:
D = Id cos (θ)– Id intenzitet difuzne komponente svetla, – θ ugao između vektora svetla (L) i normale na površinu (N)
� Različiti materijali mogu da reflektuju različite iznose difuznog svetla– koeficijent refleksije difuznog svetla:
kd, (0<= kd <= 1))� Difuzna komponenta svetla na objektu iznosi:
Diffuse = kd Id cos (θ) = kd Id L•N
θN
LN
27.04.2015.Svetlost i senčenje15
Fongov model osvetljenja (1)
� Empirijski model lokalnog osvetljenja tačaka na površini objekta� Phong reflection model, Phong illumination, Phong lighting� Ne treba mešati sa algoritmom Fongovog senčenja
– algoritam interpolacije� Predložen 1973.u PhD disertaciji na University of Utah� Fong je zapazio da sjajne površine imaju male istaknute odsjaje, dok
mat površine imaju veće površi odsjaja sa blagim prelazima� Ako bi površina bila idealno reflektivna,
odsjaj izvora bi se video samo na pravcu vektora pogleda (V) koji zaklapa isti ugao θ sa normalom (N), kao i vektor svetla (L), odnosno za φ=0, ili V=R
� Za neidealnu površinu, za mali ugao φ, odsjaj se vidi – intenzitet odsjaja pada sa povećanjem φ
θ θ
p
φ
φ
V
RNL
27.04.2015.Svetlost i senčenje16
Fongov model osvetljenja (2)
� Fongov model (spekularnog) osvetlenja: Specular = ks * Is * cosn(φ) = ks * Is * (R•V)n
– ks koeficijent spekularne refleksije – Is intenzitet svetla, – φ ugao između vektora pogleda (V) i vektora idealne refleksije (R)– n koeficijent sjaja (refleksivnosti materijala)
� Što je veće n (visoka reflektivnost) to je manja vrednost cosn(φ), – odsjaj je bliži idealnom, rasipanje svetla je manje
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje17
Ambijentalno svetlo - primer
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje18
Difuzno svetlo - primer
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje19
Reflektovano svetlo - Primer
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje20
Teksture i globalno osvetljenje
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje21
Modeli senčenja
� Prilikom rasterizacije poligona vrši se određivanje nijanse piksela na (horizontalnoj) liniji skeniranja
� U određenim tačkama poligona koji se isrtava primenjuje se odgovarajući model osvetljenja
� Tri algoritma senčenja: – ravno,
– Guruovo (Gauraud)– Fongovo (Phong)
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje22
Ravno (flat) senčenje
� Svetlo se izračunava samo u jednoj tački pologona– OpenGL uzima u obzir samo jedno teme– uzima se u obzir normala i osobina materijala u prvom temenu
� Ceo planarni poligon (svi njegovi pikseli) se senči istom nijansom
� Dobra strana: – brzina, izračunava se samo jedna nijansa
za ceo poligon� Loše:
– dobijaju se artifakti - oštre ivice poligona, realističnost je slaba– izražen “Mahove efekat traka” (sledeći slajd)
� Kada može da se koristi:– kada su poligoni dovoljno mali (fina mreža)– kada je izvor svetla dovoljno udaljen– kada je posmatrač dovoljno udaljen
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje23
Mahov efekat traka
� Ljudsko čulo vida pojačava brze prelaze u nijansi
� Smanjivanje efekta traka– ukloniti diskontinuitete vrednosti nijanse– izračunati svetlo u više tačaka površi,
pa raditi inetrpolaciju
� Dva algoritma (modela) senčenja koja rešavaju gornji problem– Guruovo senčenje (podržano u OpenGL)– Fongovo senčenje (nije podržano u OpenGL)
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje24
Guruovo senčenje
� Nijansa se izračunava u temenima poligona, pa se u pikselima poligona uzima interpolirana vrednost boje
� Interpoliranje se radi prvo duž ivica poligona, a zatim duž svake linije skenniranja pri popunjavanju poligona
� Dobija se kontinualna promena nijanse unutar poligona
� Mogućnost da se u svakom temenu poligona normala izračuna usrednjavanjem normala susednih poligona
nn1 n2
n3 n4 n = (n1 + n2 + n3 + n4) / 4.0
Slike su uklonjene iz prezentacije
27.04.2015.Svetlost i senčenje25
Interpolacija
� Za izračunavanje krajnjih tačaka linije skeniranja može da se koristi interpolacija po y
C1
C2 C3
Ca = lerp(C1, C2) Cb = lerp(C1, C3)
Lerp(Ca, Cb)
for all scanlines
* lerp: linear interpolation
a b
v1 v2x
x = a / (a+b) * v2 + b/(a+b) * v1
27.04.2015.Svetlost i senčenje26
Fongovo senčenje
� Izračunava se osvetljaj svakog piksela unutar poligona, umesto interpolacije boje
� Guruovo senčenje – boja po pikseluFongovo senčenje – svetlo po pikselu
� Potrebne su normale u svakom pikselu – ne obezbeđuje ih korisnik, moraju se računati– korisnik obezbeđuje samo normale u temenima– algoritam interpolira normale i računa svetlo u toku rasterizacije poligona– račun se mora sprovoditi u koordinatnom sistemu realnog sveta
n1
n2
n3
nb = lerp(n1, n3)na = lerp(n1, n2)
lerp(na, nb)
27.04.2015.Svetlost i senčenje27
Modeli globalnog osvetljenja
� Ray casting
� Recursive ray tracing� Radiosity
� Photon mapping� ...