Modelowanie oświetlenia w
OpenGl
Obiekt nieoświetlony
Obiekt oświetlony
Składniki modelu oświetlenia
• Źródła światła
• Materiały
• Wektory normalne
• Równanie oświetlenia
• Metoda modelowania oświetlenia
Rodzaje źródeł światła
Światło otoczenia
Światło kierunkowe
Światło pozycyjne
punktowe
Światło pozycyjne
stożkowe (ang. spot)
Model oświetlenia (1)
Odbicie zwierciadlane
Odbicie rozproszone
Odbicie światła otoczenia
Model oświetlenia(2)
Odbicie światła otoczenia
Odbicie rozproszone
Odbicie zwierciadlane
Wynik końcowy
Parametry źródła światła
• Natężenie światła:
– I
A
- natężenie światła otoczenia
– I
D
- natężenie światła rozpraszanego
– I
S
- natężenie światła zwierciadlanego
• D – kierunek świecenia
• Dla świateł pozycyjnych
– P
L
- położenie
– S
CUT_OFF
- kąt odcięcia światła (zakres[0.0 – 90.0], 180.0)
– k
0
, k
1
, k
2
– współczynniki tłumienia atmosferycznego światła:
stały, liniowy, kwadratowy (zakres[0.0 – ∞))
– Exp
S
- współczynnik tłumienia kątowego (zakres[0.0 – 128.0])
Parametry materiału
• Współczynniki odbicia:
– K
A
- współczynnik odbicia światła otoczenia
– K
D
- współczynnik odbicia światła rozpraszanego
– K
S
- współczynnik odbicia światła zwierciadlanego
• E
M
- kolor światła emitowanego
• Exp
M
- połysk (zakres [0.0 – 128.0])
Model oświetlenia (3)
P
L
P
O
V – oświetlany wierzchołek
P
O
– położenie obserwatora
P
L
– położenie źródła światła
VP
O
– wektor w kierunku obserwatora
VP
L
– wektor w kierunku źródła światła
N
– wektor normalny do powierzchni w punkcie V
S
– wektor połowiczny pomiędzy źródłem światła a obserwatorem
R – wektor idealnego odbicia (kierunek maksymalnego rozświetlenia)
Model Phonga
Równanie oświetlenia
gdzie:
Tłumienie kątowe
Exp
S
=0
Exp
S
=2
Exp
S
=4
Exp
S
=6
Exp
S
=8
Połysk
Exp
M
=1
Exp
M
=10
Exp
M
=128
Exp
M
=30
Wyznaczanie wektorów normalnych
Wyznaczanie wektorów normalnych
Cieniowanie gładkie
Cieniowanie płaskie
(stała barwa wielokąta)
Cieniowanie wielokątów (1)
Cieniowanie gładkie
Cieniowanie płaskie (stałą barwą
wielokąta)
Cieniowanie wielokątów (2)
Cieniowanie gładkie
Cieniowanie płaskie
(stałą barwą wielokąta)
Siatka wielokątów
Cieniowanie wielokątów (3)
Wybór rodzaju cieniowania umożliwia funkcja:
glShadeModel( GLenum mode )
której parametr mode przyjmuje jedną z wartości:
- GL_FLAT - cieniowanie płaskie,
- GL_SMOOTH - cieniowanie gładkie.
Domyślnie stosowane jest cieniowanie gładkie.
Przykład ustawienia parametrów
źródła światła
Przykład ustawienia parametrów
materiału
Przykład – oświetlony sześcian (1)
długość boku - a
Przykład – oświetlony sześcian (2)