Aby słońce nie odbijało się w przyrządach celowniczych, należy je przedtem okopcić (przyrządy, nie słońce).
Anna
Modele oświetlenia opisane w tym miejscu są heurystyczne. Zamiast na podstawach fizycznych, opierają się one na wzorach dobranych tak, aby otrzymane obrazy ,,dobrze wyglądały”. Do pełnego realizmu (takiego jak na fotografii) modele te są niewystarczające, za to umożliwiają przeprowadzanie obliczeń w krótkim czasie.
Najprostszy model oświetlenia opiera się na założeniu, że przestrzeń, w której znajdują się rysowane obiekty, jest wypełniona światłem, które dochodzi ze wszystkich kierunków z taką samą intensywnością. Założenie to jest nieodległe od prawdy, jeśli scena jest umieszczona w pomieszczeniu o jasnych (np. białych) matowych ścianach i obiekty te są oświetlone przede wszystkim światłem odbitym od ścian. Wzór, który służy do obliczenia intensywności światła odbitego w stronę obserwatora (czyli do obliczenia koloru pikseli) ma postać
Czynnik
Obrazy wykonane z użyciem tego modelu oświetlenia są całkowicie pozbawione plastyki; jeśli obiekty są jednobarwne (bez tekstury) to wyglądają jak plamy o stałym kolorze.
Wzór
opisuje tzw. lambertowski model odbicia światła, nazwany tak od
J.H. Lamberta, który zajmował się nim w 1760r. Oprócz światła
rozproszonego w otoczeniu, o intensywności
Wektor
Lambertowski model oświetlenia opiera się na założeniu, że obiekty są idealnie matowe, a zatem światło odbite od powierzchni rozchodzi się we wszystkich kierunkach nad powierzchnią z taką samą intensywnością. Nie ma w tym modelu możliwości otrzymania na obrazie odblasków, które można zaobserwować na powierzchniach błyszczących.
Odblaski są możliwe do uzyskania w modelu opracowanym w 1975r. przez Phong Buoi-Tuonga. Wzór używany do obliczenia intensywności światła odbitego od powierzchni w kierunku obserwatora w tym modelu ma postać
Od wzoru opisującego model lambertowski wzór ten różni się obecnością
składnika opisującego odblaski. Funkcja
do którego należy podstawić wektor jednostkowy
Warto zwrócić uwagę na to, że albedo powierzchni (opisane przez funkcję
Zamiast obliczać wektor
(wektory
W implementacjach często stosuje się stablicowane z dostatecznie małym
krokiem wartości funkcji
Należy podkreślić, że model Phonga jest czysto empiryczny, tj. nie ma on podstaw fizycznych, ale dobierając odpowiednio jego parametry, można osiągnąć dosyć dobre przybliżenie wyglądu różnych materiałów na obrazie. Najczęściej obiekty narysowane za pomocą tego modelu mają wygląd nieco ,,plastikowy”. Jest to spowodowane przez dość dobre przybliżenie skutków odbicia światła od przedmiotów wykonanych z plastiku.
Cieniowanie jest sposobem obliczania barwy pikseli należących do zrasteryzowanego wielokąta (najczęściej trójkąta) na podstawie informacji związanej z jego wierzchołkami. Może ono mieć na celu stworzenie złudzenia, że obraz zbioru trójkątów przedstawia gładką powierzchnię krzywoliniową.
Najprostsza metoda cieniowania polega na obliczeniu barwy jednego piksela i nadaniu tej samej wartości wszystkim pikselom, które należą do obrazu np. danego wielokąta. Metoda ta jest najprostsza i najszybsza, ale daje obrazy z wyraźnie widocznymi wspólnymi krawędziami ścian, co w sytuacji gdy te ściany stanowią przybliżenie gładkiej powierzchni zakrzywionej jest niepożądane (to jest tzw. efekt Macha).
Metoda cieniowania Gourauda jest stosowana najczęściej do trójkątów — inne wielokąty są w celu cieniowania triangulowane. Metoda ta polega na obliczeniu (przy użyciu dowolnego modelu oświetlenia) barw wierzchołków trójkąta, a następnie barwa każdego piksela jest obliczana w drodze interpolacji liniowej barw wierzchołków (wygodnie jest to opisać przy użyciu współrzędnych barycentrycznych na płaszczyźnie).
Zastosowanie cieniowania metodą Gourauda powoduje usunięcie lub znaczne osłabienie efektu Macha — barwa pikseli w pobliżu wspólnej krawędzi trójkątów zmienia się w sposób ciągły — ale zawodzi w przypadku, gdy zastosowany model oświetlenia uwzględnia odbicie zwierciadlane (tak jak model Phonga). Można bowiem zgubić odblaski, które leżą wewnątrz obrazu trójkąta, a także otrzymać kanciaste odblaski na powierzchni, która ma wyglądać jak gładka.
W metodzie cieniowania opracowanej przez Phong Buoi-Tuonga określamy we wszystkich wierzchołkach trójkątnych ścian wektor normalny powierzchni, którą chcemy przybliżać za pomocą tych ścian. Następnie, dla każdego piksela, obliczamy ,,wektor normalny” powierzchni w drodze interpolacji wektorów normalnych w narożnikach i po unormowaniu podstawiamy go do wzoru odpowiadającego wybranemu modelowi oświetlenia. Metoda ta jest bardzo skuteczna, ale wymaga znacznie więcej obliczeń niż cieniowanie Gourauda.
,,Wektor normalny” powierzchni w wierzchołkach trójkąta może być
przyjmowany na różne sposoby. Jeśli trójkąty przybliżają
powierzchnię znaną (np. płat Béziera), to można obliczyć wektor
normalny tej powierzchni w punkcie, który odpowiada wierzchołkowi. Jeśli
trójkąty przybliżają powierzchnię daną w postaci niejawnej, tj. równaniem
Cieniowanie jest najczęściej realizowane za pomocą sprzętu, np. podsystemu graficznego stacji roboczej, albo akceleratora w pececie. Metoda cieniowania jest wtedy ukryta przed programem i różna (Gouraud albo Phong) w różnych urządzeniach realizujących ten sam interfejs programisty (np. OpenGL). W tanim sprzęcie do użytku domowego cieniowanie Phonga to jeszcze rzadkość, choć sytuacja zmienia się. Nowe akceleratory graficzne mogą wykonywać programy wprowadzone przez aplikację. W zamierzeniu umożliwia to stosowanie różnych sposobów przetwarzania tekstury nakładanej na wyświetlane powierzchnie. W szczególności można używać własnych procedur cieniowania, a także nakładać opisane dalej tekstury odkształceń.
W każdym modelu oświetlenia uwzględniającym kierunek padania światła na powierzchnię zasadniczą rolę odgrywa wektor normalny, i jak wynika z rozważań nad cieniowaniem Phonga, kolorując obraz powierzchni można trochę oszukiwać zmysł wzroku, wybierając wektor niezupełnie normalny. Stąd już tylko krok do określania wektora normalnego za pomocą arbitralnej funkcji, dzięki czemu daje się symulować niewielkie odkształcenia i chropowatość powierzchni.
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.