Próby rozwiązania tego problemu na poziomie modelu odbicia lokalnego sprowadzały się do uwzględnienia średniej wartości oświetlenia we wszystkich punktach sceny – oświetlenia tła. Taka składowa jest uwzględniona w modelu Phonga. W grafice komputerowej stosowane są dwie ogólne metody rozwiązania problemu oświetlenia globalnego:
- Metoda śledzenia promieni,
- Metoda bilansu energetycznego.
Ogólne równanie renderingu Kajiya
Równanie wizualizacji zaproponowane przez Kajiya z 1986 roku pozwala prześledzić rekurencyjnie drogę promieni i wyznaczyć intensywności oświetlenia określonych powierzchni. Uwzględnienie wielkości świetlnych doprowadziło do powstania luminancyjnego równania wizualizacji opisywanego przez Cohena w 1993. Pozwala prowadzić obliczenia w grafice komputerowej z uwzględnieniem zasad fizyki. Po uwzględnieniu wielkości świetlnych luminancyjne równanie wizualizacji wyznacza rozkład luminancji.
Kierunkowe-kierunkowe – jest to implementowane przez klasyczną metodę śledzenia promieni (Whitteda). I praktycznie metoda klasyczna śledzenia nie pozwala na opis innych odbić wzajemnych.
Rozproszone-rozproszone – jest to implementowane przez klasyczną metodę energetyczną. Podobnie jak śledzenie, klasyczna metoda energetyczna nie pozwalana na implementację innych wariantów odbić.
Rozproszone-kierunkowe (także kierunkowe-rozproszone) – może być implementowane w nowszych rozwiązaniach metody śledzenia.
Metoda śledzenia promieni
Metoda śledzenia promienipolega na analizie przebiegu promieni między obserwatorem a źródłem światła. Drogę promieni opisuje drzewo przecięć, którego węzły reprezentują zjawiska jakie zachodzą między promieniem a powierzchniami obiektów. Korzeń drzewa odpowiada promieniowi docierającemu do obserwatora zaś liście — źródłom światła. Zjawiska odbicia, przenikania i pochłaniania opisane są odpowiednimi modelami matematycznymi. Wyznaczenie barwy danego piksela polega na analizie odpowiedniego drzewa.
Każde napotkanie obiektu przez promień (promień pierwotny) wymaga analizy. Zawsze jest wyznaczany promień odbity o kierunku zależnym od powierzchni obiektu. Jeśli obiekt jest przezroczysty, to wyznaczany jest promień załamany (promień przechodzący przez obiekt) o kierunku zależnym od właściwości materiałowych obiektu. Oba promienie: odbity i załamany nazywane są promieniami wtórnymi. Zawsze są również wyznaczane tak zwane promienie cienia (czasami nazywane promieniami oświetlenia) w kierunku każdego źródła światła. Promienie cienia pozwalają wyznaczyć oświetlenie danego elementu obiektu przez źródła światła, oczywiście jeśli na drodze promienia cienia do źródła światła jest inny obiekt nieprzezroczysty (źródło jest zasłonięte) to oświetlenie nie jest liczone. Promienie wtórne mogą wskazać następne przecięcia z obiektami, stając się wtedy promieniami pierwotnymi kolejnej analizy. Tak stworzone drzewo promieni jest obliczane metodą zstępującą, Barwa każdego węzła jest liczona jako funkcja barwy potomków. Gałąź w takim drzewie kończy się, gdy promienie wtórne (odbite i załamane) nie przecinają się z kolejnymi obiektami. Możne też być stosowane inne zakończenie procesu budowy i/lub analizy drzewa: gdy osiągnięto określony/zadany poziom rekurencji, albo po prostu gdy zabrakło pamięci na następne poziomy.
- Śledzenie klasyczne (Whitteda), polegające na analizie pojedynczego promienia poczynając od obserwatora - odwrotnie niż rzeczywiste rozchodzenie się światła,
- Śledzenie stochastyczne, kiedy promienie wysyłane są na zasadzie próbkowania pewnego obszaru, również odbicie (załamanie) światła jest modelowane na zasadzie funkcji prawdopodobieństwa, która określa w którym kierunku odbije się (załamie) promień.
- Śledzenie dwukierunkowe, kiedy analiza jest przeprowadzana w obu kierunkach: poczynając od obserwatora i poczynając od źródła światła.
- Mapowanie fotonowe (Jensena) jest śledzeniem dwukierunkowym rozszerzonym o tworzenie pośrednich źródeł światła na powierzchniach rozpraszających. Rozwój możliwości metody śledzenia promieni polega na dodawaniu coraz bardziej skomplikowanych przypadków, które mogą się pojawić na drodze promienia pomiędzy źródłem a obserwatorem. Najprościej jest opisać przebieg odbicia kierunkowego (lustrzanego), najtrudniej wielokrotne odbicie rozproszone i pośrednie oddziaływania typu składowej kierunkowej padającej na powierzchnię rozpraszającą.
Warto zauważyć, że opisany sposób analizy drzewa promieni odpowiada tak naprawdę kierunkowemu rozchodzeniu się światła. Oznacza to, że dobre efekty takiej analizy uzyskać można dla obiektów, które charakteryzują się właśnie kierunkowym charakterem odbicia i przenikania. Pierwsze rysunki wygenerowane przez Whitteda wzbudziły podziw gdyż pokazywały w sposób perfekcyjny załamanie światła przez sferyczne szklane obiekty.
Podstawowym problemem śledzenia klasycznego ( i tak naprawdę każdej późniejszej modyfikacji metody) jest szybkie wyznaczenie przecięcia promienia z obiektem.
Rozpatrując fragment powierzchni oświetlony bezpośrednio przez źródło powierzchniowe i biorąc pod uwagę równanie wizualizacji Kajiya, można wykazać, że luminancja postrzegana na powierzchni
z kierunku wektora
będzie opisana przedstawionym równaniem. Poprawny wynik może dać tylko analiza uwzględniająca całkowanie powierzchni źródła światła. Przykładem dobrej aproksymacji przy wykorzystaniu klasycznej metody śledzenia jest model Verbecka i Greenberga z 1984 roku. Zakłada on, że źródło powierzchniowe jest przybliżone zbiorem źródeł punktowych rozłożonych na powierzchni źródła.
Całkowanie Monte Carlo
Dobrym rozwiązanie w takiej sytuacji – rozwiązaniem uniwersalnym jest zastosowanie całkowania Monte Carlo. Na przykład dla problemu pojedynczego powierzchniowego źródła światła można wygenerować zbiór promieni biegnących w kierunku odwrotnym od obserwatora do powierzchni i dalej odbijających się zgodnie z pewnym prawdopodobieństwem zależnym od właściwości odbiciowych powierzchni. Promienie odbite trafią (lub nie) w określony punkt powierzchni źródła, z którym to punktem będzie związana określona luminancja i barwa. Jeśli na podstawie analizy zachowania się takich promieni wyznaczymy wartość luminancji postrzeganej przez obserwatora to zadanie jest rozwiązane. Taką właśnie możliwość daje w tym przypadku całkowanie Monte Carlo.
W najprostszym przypadku jednowymiarowym, jeśli chcemy obliczyć całkę
to możemy skorzystać z liczb losowych o rozkładzie równomiernym
, stanowiących pewną realizację zmiennej losowej
. Wtedy
Oczywiście takie proste całkowanie nie byłoby przydatne, gdyż w praktyce problem zachodzi w pewnym przedziale i jednocześnie wymagane jest losowanie próbek o rozkładzie innym niż równomierny. Podane wzory określają takie rozwiązanie.
Warto zwrócić uwagę na zależności dotyczące błędu estymacji całki metodą Monte Carlo. Można pokazać, że wariancja estymacji jest proporcjonalna do natomiast odchylenie standardowe do
. W związku z tym, jeśli chcemy zmniejszyć błąd o połowę to
musi wzrosnąć czterokrotnie.
Generowanie próbek
Generowanie wartości losowych zgodnie z zadanym rozkładem gęstości prawdopodobieństwa może być zrealizowane jedną ze znanych metod. Najczęściej stosuje się metodę funkcji odwrotnej do dystrybuanty lub metodę usuwania próbek niepasujących. Pierwsza metoda wymaga analitycznego wyznaczenia dystrybuanty na podstawie funkcji gęstości prawdopodobieństwa, a następnie wyznaczenia funkcji odwrotnej. Uzyskana funkcja przelicza próbki o rozkładzie równomiernym na próbki o zadanym rozkładzie. Metoda ta jest bardzo efektywna, ale nie zawsze możliwe jest wyznaczenie odpowiedniej funkcji odwrotnej.
Wydawać by się mogło, że najprostszym rozwiązaniem takiego zadania będzie wygenerowanie próbek w prostokącie jednostkowym a następnie przeliczenie ich współrzędnych do współrzędnych biegunowych. Takie rozwiązanie nie daje rozkładu równomiernego w kole. Można to natomiast osiągnąć stosując metodę funkcji odwrotnej do dystrybuanty. Podane wzory pokazują przeliczenie współrzędnych z układu prostokątnego (gdzie są wygenerowane próbki pseudolosowe o rozkładzie równomiernym w prostokącie jednostkowym) na układ biegunowy koła, Takie przeliczenie zapewnia równomierność rozkładu próbek w kole.
Rysunek pokazuje zastosowanie tej metody do generowania próbek w kole, część próbek leżących poza obszarem koła zostaje odrzucona.
Wygenerowanie promieni przechodzących przez piksel w sposób zdeterminowany w regularnej siatce powoduje powstanie takich samych zniekształceń intermodulacyjnych jak w klasycznym śledzeniu (efekt schodkowy, mory na obszarach pokrytych teksturą). Aby temu zaradzić można generować próbki losowo na obszarze piksela. Jednak w tym przypadku pojawia się bardzo silny szum nakładający się na wyznaczone barwy. Najlepszym rozwiązaniem byłoby wygenerowanie próbek w taki sposób, aby utrzymać między nimi pewną minimalną odległość. Spowodowałoby to znaczną redukcję amplitudy szumu. Niestety takie rozwiązanie jest zbyt kosztowne obliczeniowo. Dobrym kompromisem (i najczęściej stosowanym) jest generowanie próbek na regularnej siatce, ale z dodatkiem przypadkowych przesunięć (ang. jittering sampling lub stratified sampling). Jest to proste obliczeniowo i jednocześnie jeśli przesunięcia są nieskorelowane, to występuje znacząca redukcja szumu przy minimalnych zniekształceniach intermodulacyjnych. Zastosowanie próbkowania stochastycznego pozwala traktować wyznaczenie barwy piksela jako całkowanie po obszarze piksela. Dzięki temu możliwe jest uzyskanie miękkich cieni i rozmycia odbicia światła, możliwe jest uwzględnienie odbić nieidealnych kierunkowo i rozproszonych. Wadą takiego rozwiązania jest pojawiający się szum, który można redukować przez zwiększenie liczby promieni, co z kolei, niestety, pociąga za sobą zwiększenie czasu realizacji. Warto pamiętać, że dzisiaj przyjęło się, że jeśli występuje nazwa „metoda śledzenia promieni” bez dodatkowych określeń to jest to rozumiane właśnie jako śledzenie stochastyczne, a nie klasyczne Whitteda.
Etap2. Zbieranie fotonów. Aby stworzyć obraz, przez każdy piksel ekranu jest prowadzony promień zgodnie ze zdefiniowanym sposobem patrzenia przez obserwatora (zgodnie z odpowiednim rzutowaniem). Droga tego promienia jest następnie analizowana tak jak w klasycznym śledzeniu promieni. Luminancja danego piksela jest wyznaczana tak jak w śledzeniu stochastycznym, ale całkowaniu Monte Carlo podlegają zgromadzone na danej powierzchni fotony.
Mapowanie fotonowe zostało stworzone jako mechanizm uzupełniający śledzenie promieni w celu symulacji zjawisk takich jak np., skupienie światła oraz uwzględnienie nieidealnych właściwości odbijających zarówno powierzchni rozpraszających jak i lustrzanych.
Techniki wyboru promieni można podzielić na dwie grupy: zastosowanie brył otaczających i podział przestrzeni. W pierwszym przypadku (bryły otaczające) zanim rozpocznie się wyznaczanie przecięcia promienia z powierzchnią obiektu, można spróbować wyznaczyć przecięcie z bryłą otaczającą obiekt. Jeśli promień nie przecina takiej bryły, to analiza przecięcia z obiektem nie jest konieczna. Oczywiście aby w takiej sytuacji można było mówić o przyspieszeniu obliczeń powinny być spełnione dwa warunki. Bryła powinna „ściśle” (ciasno) otaczać obiekt oraz wyznaczenie przecięcia promienia z bryłą powinno być wielokrotnie prostsze (i szybsze) niż przecięcia z obiektem. Często te warunki są sprzeczne. Najczęściej stosuje się kule, wielościany lub „pasy” równoległych płaszczyzn jako bryły otaczające. Kula jest obiektem, dla której najszybciej można stwierdzić, czy jest przecięta prostą czy nie. Wystarczy znaleźć odległość prostej od środka kuli i porównać z promieniem. Jest to szybsze niż sprawdzanie przecięcia prostej z prostopadłościanem. Wadą kuli jako obiektu otaczającego jest najczęściej niezbyt ciasne obejmowanie obiektu. Warto zwrócić uwagę na przecięcia z obiektami typu AABB (ang. Axis-Aligned Bounding Box - prostopadłościan o krawędziach wyznaczonych przez proste równoległe do osi układu współrzędnych) i OBB (ang. Oriented Bounding Box - prostopadłościan dowolnie zorientowany) Aby zwiększyć efektywność działania metody można skonstruować hierarchię brył otaczających.
W pierwszym przypadku zakłada się, że barwa i intensywność sąsiednich pikseli są zbliżone. Można więc przeprowadzić dokładne obliczenia dla mniejszej rozdzielczości rastra niż w rzeczywistości (np. dla co czwartego piksela), natomiast pozostałe piksele wyznaczyć dokonując interpolacji. Oczywiście warto zastosować mechanizm adaptacyjny. Przyjąć maksymalną różnicę wartości, która dopuszcza interpolację – przekroczenie jej spowoduje wyznaczenie wartości piksela po przeprowadzeniu dokładnych obliczeń, a nie w wyniku interpolacji. W drugim przypadku dla każdego piksela zmniejsza się głębokość drzewa kolejnych przecięć lub odbić, dzięki czemu nie są brane pod uwagę kolejne promienie. Pominięcie niektórych pikseli lub zmniejszenie rozdzielczości rastra oznacza po prostu zmniejszenie dokładności wyznaczenia rozkładu oświetlenia. Podobny problem powstanie w przypadku nadpróbkowania. Jeśli jest ono stosowane, to liczba próbek na piksel wynika z założonej dokładności obliczeń i rezygnacja nawet adaptacyjna z pewnej liczby próbek pogarsza tę dokładność. Przy wykorzystaniu metody adaptacyjnej redukcji promieni pierwotnych w typowych zastosowaniach metody śledzenia często oprócz wspomnianego warunku wartości progowej uwzględnia się kilka innych wymaganych do skorzystania z interpolacji.:
Metoda jest bardzo atrakcyjna obliczeniowo, jednak może pogarszać jakość końcową. Dobór właściwie zastosowanych kryteriów korzystania z interpolacji powinien zapewnić kompromis dający niewidoczne spadki jakości przy zauważalnej redukcji czasu obliczeń.
Podczas produkcji filmów wykorzystuje się możliwość niezależnego, równoległego wyznaczania całych obrazów, np. kolejnych klatek filmu lub możliwość innego rozłożenia filmu na obrazu lub fragmenty do równoległej obróbki. Wymaga to oczywiście udziału wielu komputerów lub specjalizowanego sprzętu wieloprocesorowego.
Metoda bilansu energetycznego pojawiła się w literaturze dotyczącej grafiki komputerowej w latach 1984-1985. Wśród autorów należy wymienić Gorala, Cohena Greenberga, Nishitę i Nakamaego.
Cechą charakterystyczną metody energetycznej jest fakt, że w opisach transportu nie występuje obserwator (co tak naprawdę jest zgodne z rzeczywistością – światło rozchodzi się bez względu na to czy obserwator będzie brał w tym udział czy nie). Obserwator zostaje uwzględniony dopiero w fazie wizualizacji. Oznacza to, że do przeprowadzenia generacji obrazu metodą bilansu energetycznego i tak na końcu trzeba uruchomić metodę śledzenia promieni w najprostszej postaci.
W praktyce najczęściej prowadzi się obliczenia dla składowych r,g,b.
Współczynnik sprzężenia optycznego jest większy od zera jeśli powierzchnie „widzą się”, lub jest zerem gdy powierzchnie „nie widzą się”.
Jeśli półsfera byłaby otoczona półsześcianem, to rzut na półsześcian tego samego obiektu byłby równoważny jego rzutowi na półsferę. W praktyce rzut na półsześcian okazał się najefektywniejszy obliczeniowo. Półsześcian dzieli się na powierzchnie elementarne (prostokątne piksele) i wyznacza współczynnik sprzężenia na podstawie rzutu obiektu na mapę pikseli półsześcianu.
Rozwiązanie równania bilansu energetycznego
Układ równań bilansu energetycznego jest rozwiązywany w postaci iteracyjnej. Pierwsze przybliżenie zakłada istnienie niezerowych wartości oświetlenia tylko tych elementów, które wykazują emisję własną (powierzchnie opisujące źródła światła). Na tej podstawie wyznacza się pierwsze przybliżenie wartości oświetlenia, na jego podstawie kolejne itd. Cohen i Greenberg zaproponowali w 1985 roku stosowanie metody Gaussa-Seidela do iteracyjnego rozwiązywania układu równań bilansu energetycznego, aby szybciej osiągnąć zadany poziom rozwiązania.
Siatka podziału na fragmenty