SimMod7_Phong

Download Report

Transcript SimMod7_Phong

Fizyka w modelowaniu i symulacjach komputerowych
Jacek Matulewski (e-mail: [email protected])
http://www.fizyka.umk.pl/~jacek/dydaktyka/modsym/
Symulacje komputerowe
Fizyczny model oświetlenia w 3D
Wersja: 7 kwietnia 2010
Plan
1.
2.
3.
4.
5.
Opis koloru w grafice. Układy współrzędnych koloru
Oświetlenie w 3D. Model oświetlenia Phonga
Prawo Lamberta
Cieniowanie płaskie, Gourarda i Phonga (uśr. norm.)
Cieniowanie globalne. Ray tracing
Kolor
• Składowe RGB + A (atrybut figury), alternatywa HSB
• R = 650 nm, G = 530 nm, B = 450 nm
• Możliwość cieniowania wewnątrz figury
(atrybut wierzchołków)
Kolor
• Inne układy wsp. kolorów nie są wspierane w XNA:
CMY(K), HSB, YPbPr, CIE xyY, CIE LUV, CIE Lab
• RGB – dobre dla monitorów, TV (emisja światła),
odpowiada fizjologii oka
• CMY(K) = 1 – RGB – drukarki (absorpcja światła)
Kolor
• HSB (HSV, HSL) – hue, saturation, brightness
(value, lightness, luminance)
• Bardziej intuicyjne, używane w interakcji z człowiekiem
Fizyka i biologia koloru
• Składowe RGB + A (atrybut figury), alternatywa HSB
• R = 650 nm, G = 530 nm, B = 450 nm
Światło (cieniowanie)
Fizyczny model oświetlenia – na efekt końcowy (tj. kolor
piksela) wpływają „własności emisyjne” źródła światła,
„własności absorpcyjne” materiału, który jest oświetlany
i własności ewentualnych ciał półprzezroczystych
+
+
=
Typy źródeł oświetlenia:
• Światło otoczenia (ambient) – światło
bez źródła
słoneczne
i kierunku
• –Rozproszone
rozświetla jednorodnie
(diffuse) – posiada
całą scenę,
wźródło,
białym
także
ale
pomieszczeniu
wewnątrz
jest jednorodne
figur)
• we
–Rozproszone
Rozbłysk
nie
wszystkich
daje (specular)
cieni
(diffuse)
kierunkach
na obiekcie
– –źródło
mleczna
(nie
i kierunek
ma
żarówka,
złudzenia
świeca
3D)
• reflektor,
Generalnie:
Rozbłyskefekt
(specular)
Jasność
„zajączka”
proporcjonalna
– reflektor,
– rozbłysku
odbicienaodgładkich
lustra pow.
do kosinusa kąta padania (normalna)
Dla każdego typu parametry materiału ustalane są osobno
Model oświetlenia Phonga
+
+
=
• Opracowany w 1975 przez Phong Bui-Tuonga
• Jest jedynie zgrubnym przybliżeniem praw optyki
• Zakłada trzy niezależne komponenty odbitego światła
• Światło rozproszone – model Lamberta (1760)
• Model cieniowania Phonga (coś innego niż model ośw.)
= interpolacja normalnych (uśrednianie normalnych)
Model oświetlenia Phonga
+
+
=
• W XNA i Direct3D model Phonga jest
uzupełniony o światło emisji (emission)
• Imitacja źródła światła
(jednak nie oświetla innych aktorów na scenie!)
• Realizowane podobnie jak światło otoczenia
Prawo Lamberta
Model światła rozproszonego
Jasność przedmiotu (natężenie światła) równa jest Ii.
Jest ono jakąś funkcją natężenia światła padającego na
powierzchnię i kąta odbicia b (= padania)
Model zakłada, że natężenie światła odbitego Id jest
proporcjonalne do „efektywnej powierzchni” widzianej
przez obserwatora Acos(b ).
L
N
Id = Ii cos(b )
Obliczanie cos(b ) jest szybkie:
cos(b ) = NxLx+NyLy+NzLz
N – wektor normalny, L – promień św. odbitego
Model Phonga
Model światła specular („zajączek”)
Wprowadzony przez Phonga – nie w ma podstaw fizycznych
Is = Ii cos n (a )
L
N
Parametr n kontroluje
„ostrość” zależności od
kąta pod którym oglądamy
fragment powierzchni
n ~ B..Effect.SpecularPower
V
N – wektor normalny
n = 1, 5, 10, 20,
L – promień św. odbitego
V – kierunek do obserwatora
50, 100
Model oświetlenia Phonga
Trójkomponentowy model oświetlenia
ambient
diffuse
+
ka Ia
ka Ia +
specular
+
kd Id
=
ks Is
kd Ii cos(b ) + ks Ii cos n (a ) = I
W rzeczywistości (tj. w XNA, Direct3D) takie obliczenia
prowadzone są osobno dla każdej składowej koloru (RGB)
Modele cieniowania
Cieniowanie płaskie – jasność określana jest wzorem
Phonga dla całej płaskiej powierzchni trójkąta w modelu.
W przypadku powierzchni płaskich efekt jest „kanciasty”
Dodatkowo niekorzystny
efekt pasm Macha
Jak kolorować powierzchnie zaokrąglone?
Modele cieniowania
Cieniowanie Phonga – obliczenia koloru dla każdego
punktu trójkąta z wektorem normalnym wyznaczonym
na podstawie interpolacji na bazie trzech wektorów
normalnych przypisanych do każdego wierzchołka trójkąta
płaskie
Phong
Modele cieniowania
Cieniowanie Gourauda – kolor punktu na prymitywie
uzyskiwany jest przez interpolację składowych koloru jego
wierzchołków (tylko te wyznaczane są np. wzorem Phonga)
Mniej wymagający numerycznie, ale też mniej realistyczny
Model to żona Henri Gourauda, Sylvie.
Wada: wyraźnie widać granicę użytych figur
(wymaga gęstszej sieci niż met. Phonga)
Modele cieniowania
Cieniowanie globalne
Jim Kajiya, 1986 (Microsoft)
Przy obliczaniu składowych światła odbitego
uwzględnia nie tylko światło pochodzące
ze źródeł, ale również odbite od innych pow.

• Obliczenia rekurencyjne
I ( x , x ' )  g ( x , x  )  e ( x , x  )   r ( x , x , x ) I ( x , x  ) d x  
• Używane w metodzie śledzenia promieni
(ray tracing)

• Powoli wchodzi do silników graficznych działających
I(x, x') – sumaryczna intensywność (składowe koloru) w punkcie x z punktu x'
g(x, w
x') =czasie
0 jeśli x i x‘rzeczywistym
są przesłonięte, = 1/d w przeciwnym wypadku, d = odl. między punktami x i x'
e(x, x') – intensywność emitowana przez x' do x
• Automatycznie generuje także cienie obiektów
r(x, x ',x'') – intensywność światła odbitego z x'' do x przez x'
S – wszystkie
punkty
wszystkich
powierzchniach odbijających światło
rzucane
nanainne
powierzchnie
S
2
Przykłady użycia ray tracing
Źródło: http://hof.povray.org