Podręcznik Grafika komputerowa i wizualizacja

Rozdział 12. OŚWIETLENIE GLOBALNE: METODA ŚLEDZENIA PROMIENI

12.6. Śledzenie stochastyczne

Śledzenie stochastyczne (ang. distributed ray tracing) jest odmianą metody śledzenia promieni, stanowiącą rozwiązanie podstawowych wad śledzenia klasycznego Whitteda. Śledzenie stochastyczne zaproponowali Cook, Porter i Carpenter w 1984 roku. Istnieje wiele odmian i rozwiązań zaawansowanych wykorzystujących próbkowanie w metodzie śledzenia: path tracing zaproponowany przez Kajiya w 1986 r., śledzenie dwukierunkowe zaproponowali Lafortune i Willems oraz Veach i Guibas w 1994r. transport typu Metropolis - Veach i Guibas w 1997r.

W śledzeniu stochastycznym generowanych jest wiele promieni (9, 16 lub nawet więcej) na piksel. Każdy z promieni może „pójść własną drogą” – to znaczy dla każdego będzie analizowane inne drzewo przecięć. Barwa piksela jest uśrednieniem tych promieni. Odbicie (załamanie) promienia trafiającego w powierzchnię obiektu zależy od funkcji BRDF traktowanej jako gęstość prawdopodobieństwa. Oznacza to, że kolejne promienie padające na daną powierzchnię (nawet pod tym samym kątem) mogą odbić się pod różnymi kątami. Jednak dla odpowiednio dużej liczby promieni rozkład ich odbić będzie odpowiadał gęstości prawdopodobieństwa, a tym samym będzie odpowiadał właściwościom odbiciowym powierzchni opisanym przez funkcję BRDF.

 

Rys.12.7. Idea postępowania w śledzeniu stochastycznym.

 

Postępowanie:

  1. Wygenerować zestaw promieni dla danego piksela.
  2. Traktując BRDF jako gęstość   prawdopodobieństwa wyznaczyć  promienie odbite.
  3. Uśrednić barwę dla piksela.

 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.

 Próbkowanie piksela nie jest jedyną możliwością zastosowania śledzenia stochastycznego. Próbkowanie „w innym wymiarze” (całkowanie w innym obszarze) pozwala uzyskać dodatkowe efekty, niemożliwe do osiągnięcia w śledzeniu klasycznym :

  • Rozmycie ruchu (rozproszenie w czasie).
  • Głębia ostrości (rozproszenie promieni na powierzchni obiektywu).
  • Powierzchnia chropowata/pofałdowana: rozmycie odbicia lub przenikania kierunkowego (lustrzanego) (rozproszenie odpowiednio do odbicia/przenikania i pofałdowanej powierzchni).
  • Miękkie cienie (rozmycie cienia): rozproszenie promieni na powierzchni źródła i obiekty zasłaniającego je.

Wadą próbkowania stochastycznego 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.