Symulacje komputerowe Symulacje komputerowe
Fizyczny model oświetlenia w 3D Fizyczny model oświetlenia w 3D
Fizyka w modelowaniu i symulacjach komputerowych Jacek Matulewski (e-mail: jacek@fizyka.umk.pl)
http://www.fizyka.umk.pl/~jacek/dydaktyka/modsym/
Wersja: 7 kwietnia 2010
Plan
1. Opis koloru w grafice. Układy współrzędnych koloru 2. Oświetlenie w 3D. Model oświetlenia Phonga
3. Prawo Lamberta
4. Cieniowanie płaskie, Gourarda i Phonga (uśr. norm.) 5. 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
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
Światło (cieniowanie)
Typy źródeł oświetlenia:
• Światło otoczenia (ambient) – bez źródła i kierunku
– rozświetla jednorodnie całą scenę, także wewnątrz figur) – nie daje cieni na obiekcie (nie ma złudzenia 3D)
Typy źródeł oświetlenia:
• Światło otoczenia (ambient)
• Rozproszone (diffuse) – posiada źródło, ale jest jednorodne we wszystkich kierunkach
Generalnie: Jasność proporcjonalna do kosinusa kąta padania (normalna) Typy źródeł oświetlenia:
• Światło otoczenia (ambient)
• Rozproszone (diffuse)
• Rozbłysk (specular) – źródło i kierunek
reflektor, efekt „zajączka” – rozbłysku na gładkich pow.
+ + =
Typy źródeł oświetlenia:
• Światło otoczenia (ambient) – światło słoneczne
w białym pomieszczeniu
• Rozproszone (diffuse) – mleczna żarówka, świeca
• Rozbłysk (specular) – reflektor, odbicie od lustra
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 (= padania)
Model zakłada, że natężenie światła odbitego Id jest
proporcjonalne do „efektywnej powierzchni” widzianej przez obserwatora Acos().
Id = Ii cos()
Obliczanie cos() jest szybkie:
cos() = NxLx+NyLy+NzLz
N – wektor normalny, L – promień św. odbitego
N L
Model Phonga
Model światła specular („zajączek”)
Wprowadzony przez Phonga – nie w ma podstaw fizycznych
Is = Ii cosn()
Parametr n kontroluje
„ostrość” zależności od
kąta pod którym oglądamy fragment powierzchni
n = 1, 5, 10, 20, 50, 100 n ~ B..Effect.SpecularPower
N – wektor normalny
L – promień św. odbitego V – kierunek do obserwatora
N L
V
+ + = I
Model oświetlenia Phonga
Trójkomponentowy model oświetlenia
+ + =
Ia Id Is
ka kd ks
ka Ia kd Ii cos() ks Ii cosn() ambient diffuse specular
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”
Jak kolorować powierzchnie zaokrąglone?
Dodatkowo niekorzystny efekt pasm Macha
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)
• Obliczenia rekurencyjne
• Używane w metodzie śledzenia promieni (ray tracing)
• Powoli wchodzi do silników graficznych działających w czasie rzeczywistym
• Automatycznie generuje także cienie obiektów rzucane na inne powierzchnie
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.
I(x, x') – sumaryczna intensywność (składowe koloru) w punkcie x z punktu x'
g(x, x') = 0 jeśli x i x‘ są przesłonięte, = 1/d2 w przeciwnym wypadku, d = odl. między punktami x i x'
(x, x') – intensywność emitowana przez x' do x
(x, x ',x'') – intensywność światła odbitego z x'' do x przez x'
S – wszystkie punkty na wszystkich powierzchniach odbijających światło
g x x x x
x x x I x x dxx x I
S
) , ( ) , , ( )
, ( ) , ( )
' ,
(
Źródło: http://hof.povray.org