Podręcznik
2. Modelowanie oświetlenia powierzchni
2.2. Odbicie lustrzane
Przeciwieństwem powierzchni matowych, rozpraszających światło, są powierzchnie idealnie lustrzane (zwierciadlane). Odbijają one promień światła tylko w jednym kierunku, zgodnie z powszechnie znanym prawem fizyki:
Rysunek 19. Powierzchnia idealnie błyszcząca: kąt padania równa się kątowi odbicia. R jest wersorem promienia odbitego.
Jeśli więc powierzchnia jest idealnym lustrem, to spośród wielu promieni wychodzących ze źródła światła do obserwatora stojącego w wybranym punkcie trafia tylko jeden z nich; obserwator widzi więc na takiej powierzchni tylko jeden (!) jasny punkt - ten, w którym spełniona jest równość kątów padania i odbicia (Rys. 10.11). Jeśli obserwator się przesunie, ten jedyny jasny punkt przesunie się wraz z nim.
Powierzchnie rzeczywiste nie są nigdy idealnymi lustrami i odbijają cały stożek promieni wokół promienia idealnie odbitego: im mniej błyszcząca powierzchnia, tym większy kąt rozwarcia tego stożka:
Rysunek 20.Powierzchnie lustrzane o różnym stopniu połysku: a) powierzchnia bardziej błyszcząca; b) powierzchnia mniej błyszcząca
Na powierzchni błyszczącej, ale nie będacej idealnym lustrem obserwator widzi więc nie jeden jasny punkt, ale błyszczącą plamkę świetlną, tzw. odblask (ang. highlight), który przesuwa się wraz z obserwatorem i daje wrażenie połysku na powierzchni:
Rysunek 21. Odblask na powierzchni ma wielkość zależną od stopnia połysku i przesuwa się wraz obserwatorem
2.2.1 Metoda Phonga
Intensywność odbicia lustrzanego jest więc maksymalna wówczas, gdy obserwator stoi na kierunku promienia odbitego, zaś bardzo szybko maleje, gdy obserwator oddala się od tego kierunku. Zależność tę modeluje się zgodnie ze wzorem empirycznym zaproponowanym przez Bui-Tuong Phonga w 1975 r.:
gdzie:
Ip - intensywność światła padającego
Is - intensywność odbicia lustrzanego (ang. specular)
ks - współczynnik odbicia lustrzanego, zawarty w przedziale <0, 1>, określający, jaka część światła padającego jest odbijana
n - stopień połysku powierzchni.
Zamiast cosinusa kąta pomiędzy wersorem promienia odbitego R a wersorem skierowanym do obserwatora V można obliczyć ich iloczyn skalarny, analogicznie jak poprzednio:
Sam zaś wersor promienia odbitego R wyznacza się z zależności:
Rysunek 22. Wersory niezbędne do wyznaczenia intensywności odbicia lustrzanego metodą Phonga
Wykładnik potęgi w tym wzorze nazywany jest współczynnikiem połysku - im większa jego wartość, tym powierzchnia bardziej zbliżona jest do idealnego lustra, któremu odpowiada nieskończenie wielka wartość tego współczynnika:
Rysunek 23. Wpływ współczynnika połysku na wartość potęgi funkcji cosinus
Przykłady powierzchni o różnym stopniu połysku, zamodelowanych zgodnie z tymi zależnościami, obrazuje rysunek 24:
Rysunek 24. Wpływ współczynnika połysku i współczynnika odbicia lustrzanego na wygląd oświetlonej powierzchni
2.2.2 Ulepszona metoda Phonga
Tzw. ulepszona metoda Phonga polega na wykorzystaniu wersora H leżącego na dwusiecznej kąta pomiędzy wersorami skierowanymi do źródła światła i do obserwatora:
gdzie:
Rysunek 25, Wersory niezbędne do wyznaczenia intensywności odbicia lustrzanego ulepszoną metodą Phonga
Metoda nie jest dokładnym odpowiednikiem poprzedniej (kąt między wersorami N i H jest na ogół połową kąta między wersorami Vi R) ale równie dobrze symuluje powierzchnię lustrzaną, a jej ulepszenie odczuwalne jest wówczas, gdy źródło światła i obserwator są w nieskończoności - wtedy wersor H jest stały. Dlatego w tej właśnie postaci najczęściej modeluje się połysk na powierzchni.
Modelując oświetlenie rzeczywistej powierzchni należy uwzględnić zarówno odbicie rozproszone, jak i lustrzane. Aby zaś obiekt dał się odróżnić od tła, uwzględnia się dodatkowo tzw. światło otoczenia:
gdzie:
Ia - intensywność światła otoczenia (ang. ambient), stała dla wszystkich obiektów modelowanej sceny
ka - współczynnik odbicia światła otoczenia, zawarty w przedziale <0, 1>, określający, jaka część światła otoczenia jest odbijana.
Łączny model odbicia światła zawiera wszystkie te trzy składowe:
Rysunek 26 – Aplikacja nr 2. Odbicie rozproszone, lustrzane i otoczenia na powierzchni kuli o wybranej barwie.
Powierzchnię można oświetlać z różnych kierunków, przesuwając myszką symboliczne białe słoneczko.
Należy podkreślić, że symulując odbicie rozproszone bierze się pod uwagę barwę obiektu, zatem obliczenia składowej rozproszonej wykonuje się dla każdej składowej barwy osobno. Natomiast odbicie zwierciadlane przyjmuje na ogół barwę światła padającego. Powyższe zasady można też zastosować do kilku źródeł światła - uzyskuje się wówczas dodatkowe efekty, ale trzeba dbać (wykonując odpowiednie przeskalowania), aby wynikowa jasność światła odbitego od powierzchni nie przekroczyła maksymalnej możliwej jasności piksela. Poniższa animacja, napisana w WebGL, obrazuje te możliwości:
Rysunek 27 – Aplikacja nr 3. Obiekt oświetlony trzema różnobarwnymi źrodłami światła.
Odblask na powierzchni ma barwę światła padającego.