Grafika komputerowa: Cieniowanie
Cieniowanie (ang. Shading)
Rados"aw Mantiuk
Wydzia" Informatyki
Zachodniopomorski Uniwersytet Technologiczny
Grafika komputerowa: Cieniowanie
Scena 3D
Zbiór trójwymiarowych danych wej$ciowych wykorzystywanych do
wygenerowania obrazu wyj$ciowego 2D.
-
Definicja geometrii obiektów 3D.
-
Definicja materia"ów pokrywaj(cych obiekty.
-
Kolor powierzchni obiektów.
-
Tekstura.
-
W"asno$ci powierzchni.
-
Kamera.
-
)ród"a $wiat"a.
-
Parametry $rodowiska (mg"a, dym, itp.).
Obraz wyj$ciowy
Scena 3D
Grafika komputerowa: Cieniowanie
Scena 3D - Materia"
Sk!adowe koloru
obiektu:
-
kolor otoczenia (ang.
ambient
),
-
kolor #wiat!a rozproszonego (ang.
diffuse
),
-
kolor rozb!ysków (ang.
specular
).
ambient
diffuse
specular
= ambinet + diffuse
= ambinet + diffuse + specular
Grafika komputerowa: Cieniowanie
Obliczenie koloru powierzchni (ang. Lighting)
!wiat"o biegnie od #ród"a $wiat"a, odbija si% od powierzchni obiektów i trafia do oka.
Kolor powierzchni zale&y od ilo$ci $wiat"a odbitego, poch!oni"tego oraz
wyemitowanego przez powierzchni%. Powierzchnia mo&e w ró&ny sposób oddzia"ywa'
z ró&nymi d"ugo$ciami fal $wietlnych.
Powierzchnia b%dzie mia"a kolor czerwony, je&eli poch"ania wszyskie d"ugo$ci fal z
wyj(tkiem d"ugo$ci odpowiadaj(cych barwie czerwonej.
Pictures courtasy of MIT, Lecture Notes 6.837
Grafika komputerowa: Cieniowanie
Model o$wietlenia
Model o$wietlenia
(ang. illumination model) - sposób obliczania rozchodzenia si% $wiat"a
w danym otoczeniu (obliczanie kolorów powierzchni).
Parametry powierzchni
- sk"adowe ambient, diffuse i specular materia"u
)ród"o $wiat"a
- obiekt emituj(cy $wiat"o (ang. illumination).
Lighting
- obliczanie koloru powierzchni (np. koloru w wierzcho"kach trójk(ta).
Shading
- obliczanie koloru pikseli wewn(trz wielok(ta.
wektory normalne
- parametryzuj(
kszta"t powierzchni, zmieniaj(c kierunek
wektorów normalnych mo&na zmieni'
sposób interakcji powierzchni i $wiat"a
Pictures courtasy of MIT, Lecture Notes 6.837
Grafika komputerowa: Cieniowanie
Równanie o$wietlenia (model Phong’a)(1)
Obliczenie koloru w wierzcho!kach wielok$tów na podstawie parametrów
powierzchni oraz parametrów #róde" $wiat"a.
!
"
n
l
p
r
v
!
i
spec
= m
spec
" s
spec
" (v " r)
m
shi
!
i
amb
= m
amb
" s
amb
!
i
tot
= i
amb
+
(i
diff
k
+ i
spec
k
)
k=1
N
"
!
i
diff
= m
diff
" s
diff
" (l " n)
Pictures courtasy of MIT, Lecture Notes 6.837
model o$wietlenia Phong'a
Grafika komputerowa: Cieniowanie
Równanie o$wietlenia (2)
ambient
ambient + diffuse
ambient +
specular
ambient +
diffuse +
specular
Grafika komputerowa: Cieniowanie
Równanie o$wietlenia - sk"adowa ambient
Aproksymacja o$wietlenia $wiat"em odbitym od innych obiektów znajduj(cych si% na
scenie.
Aproksymacja o$wietlenia globalnego, zachowanie widoczno$ci obiektów znajduj(cych
si% w cieniu.
Grafika komputerowa: Cieniowanie
Równanie o$wietlenia - sk"adowa diffuse
O$wietlenie zale&ne od w"asno$ci materia"ów oraz w"asno$ci #róde" $wiat"a.
Prawo Lamberta
- ilo$' $wiat"a docieraj(ca do powierzchni jest proporcjonalna do
kosinusa k(ta mi%dzy normaln( do powierzchni i kierunkiem do #ród"a $wiat"a (istotne
s( k(ty do 90 stopni).
Grafika komputerowa: Cieniowanie
Równanie o$wietlenia - sk"adowa specular
!
i
spec
= m
spec
" s
spec
" (v " r)
m
shi
Prawo Snell’a
- w przypadku odbicia k(t odbicia równy jest k(towi padania.
Niektóre powierzchnie (np. metaliczne) s( zbudowane z
elementów odbijaj(cych $wiat"o (lustro jest przyk"adem
powierzchni idealnie odbijaj(cej).
Dla takich powierzchni wi%kszo$' $wiat"a odbijana jest w
kierunku odbicia, wraz z oddalaniem si% od tego kierunku
ilo$' $wiat"a maleje.
Sk!adowa specular zale%y od
po!o%enia obserwatora
, parametrów powierzchni i
#róde" $wiat"a.
Pictures courtasy of MIT, Lecture Notes 6.837
Grafika komputerowa: Cieniowanie
Równanie o$wietlenia - sk"adowa specular
Pictures courtasy of MIT, Lecture Notes 6.837
Grafika komputerowa: Cieniowanie
Modele o$wietlenia bazuj(ce na prawach fizyki
Bidirectional Reflectance Distribution
Function (BRDF)
- funkcja opisuj!ca
interakcj" #wiat$a z dan! powierzchni!.
Model Phong’a jest aproksymacj( rzeczywistego modelu o$wietlenia.
Powierzchnie anizotropowe
- ró&ny
sposób odbicia $wiat"a dla ró&nych
kierunków padania.
Pictures courtasy of MIT, Lecture Notes 6.837
Grafika komputerowa: Cieniowanie
Cieniowanie w rastrze (ang. shading)
• Cieniowanie p"askie (ang. flat shading).
• Cieniowanie Gourraud’a.
• Cieniowanie Phong’a.
p"askie
Gouraud
Phong
Obliczanie kolorów pikseli wewn$trz wielok$ta na podstawie kolorów wierzcho!ków.
Grafika komputerowa: Cieniowanie
Cieniowanie p"askie
Dla ca"ego wielok(ta u$redniony kolor wierzcho"ków.
C1
C3
C2
Kolor = (C1+C2+C3)/3
Grafika komputerowa: Cieniowanie
Cieniowanie Gouraud
Interpolacja liniowa koloru wierzcho"ków. Ze wzrostem odleg"o$ci od wierzcho"ka maleje
jego wp"ywa na kolor piksela.
Grafika komputerowa: Cieniowanie
Cieniowanie Phong’a
Interpolacja liniowa wektorów normalnych. Kolor piksela obliczany na podstawie wektora
normalnego obliczonego dla danego piksela.
zmiana potoku graficznego
Grafika komputerowa: Cieniowanie
Cieniowanie Phong’a: Potok graficzny
Scena 3D
• wielok(ty (po"o&enie wierzcho"ków XYZ))
• kolory (wektor RGB)
• wektory normalne (N)
• tekstury (wspó". tektury (u,v))
bufor ramki
(ang. frame buffer)
wspó!. lokalne
-> wspó!. globalne
(macierz transform.)
rzutowanie
(macierz
rzutowania)
obliczenie koloru
(
równanie
o#wietlenia
dla
wierzcho"ków)
przej$cie do
wspó". rastrowych
clipping
teksturowanie
cieniowanie
(Phong'a)
pomijanie
niewidocznych
pikseli
(
bufor Z
)
Rozwi$zywanie równania o#wietlenia
dla ka%dego piksel.
Grafika komputerowa: Cieniowanie
Literatura
1.
Tomas Moller, Eric Haines, Real-Time Rendering, A K Peters, ISBN 1-56881-101-2
2.
“Lecture notes on Graphics. Lecture 6.837”, Computer Graphics Group,
Massachusetts Institute of Technology,
http://groups.csail.mit.edu/graphics/classes/6.837/F01/notes.html.