Path tracing

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Przykładowa scena wygenerowana metodą path tracingu; w centrum znajduje się promieniująca kula.

Path tracing (z ang. „śledzenie ścieżek”) – komputerowa technika tworzenia fotorealistycznych obrazów scen trójwymiarowych, w której analizowane są losowo wybrane, metodą Monte Carlo, ścieżki promieni światła. Analizując dostatecznie dużo różnych promieni możliwe jest wyznaczenie bardzo dobrej aproksymacji globalnego rozkładu światła. Metoda została zaproponowana przez Jamesa Kajiya w 1986 roku, jako rozwiązanie tzw. równania oświetlenia.

Rekurencja, zwana także rekursją (ang. recursion, z łac. recurrere, przybiec z powrotem) to w logice, programowaniu i w matematyce odwoływanie się np. funkcji lub definicji do samej siebie.BRDF (Bidirectional Reflectance Distribution Function lub "dwukierunkowa funkcja rozkładu odbicia"). Funkcja BRDF jest to stosunek luminancji energetycznej mierzonej w kierunku obserwatora do natężenia napromienienia badanego z kierunku padania promieniowania.

Algorytm path tracingu jest dość podobny do ray tracingu rekursywnego. Przewagą tej metody nad ray tracingiem jest łatwe modelowanie promieniujących powierzchni – w ray tracingu rozważane są jedynie światła punktowe. Wadą natomiast jest większa liczba obliczeń, zwykle dla jednego piksela obrazu należy przeanalizować od kilkadziesięciu do kilkuset ścieżek.

Śledzenie promieni (ang. ray tracing) – technika generowania fotorealistycznych obrazów scen trójwymiarowych. Opiera się na analizowaniu tylko tych promieni światła, które trafiają bezpośrednio do obserwatora. W rekursywnym śledzeniu promieni bada się dodatkowo promienie odbite zwierciadlane oraz załamane.Metoda Monte Carlo (MC) jest stosowana do modelowania matematycznego procesów zbyt złożonych (obliczania całek, łańcuchów procesów statystycznych), aby można było przewidzieć ich wyniki za pomocą podejścia analitycznego. Istotną rolę w metodzie MC odgrywa losowanie (wybór przypadkowy) wielkości charakteryzujących proces, przy czym losowanie dokonywane jest zgodnie z rozkładem, który musi być znany.

Algorytm przebiega następująco:

  1. Z punktu, w którym znajduje się obserwator wypuszczane są promienie.
  2. Jeśli promień trafi w jakiś obiekt, z punktu przecięcia (rekursywnie) wypuszczane są kolejne promienie (co najmniej jeden), przy czym kierunek nowych promieni jest losowy; od jakości funkcji losującej zależy jakość obrazu, a każdy obiekt może pochłaniać lub emitować światło.
  3. Tworzenie pojedynczej ścieżki kończy się, gdy głębokość rekursji przekroczy pewien limit. Wówczas wyznacza się ostateczne natężenie światła, jakie dociera do obserwatora: składa się na nie natężenie światła pochodzące od obiektów emitujących, które następnie na ścieżce jest tłumione; tłumienie zależy od współczynnika pochłaniania światła dla każdego trafionego obiektu (funkcja BRDF) uwzględniające m.in. kąt pomiędzy promieniem padającym i odbitym.

Pseudokod dla path tracingu, w którym generowany jest tylko jeden promień na każdym etapie:

Metoda energetyczna (ang. "Radiosity") - metoda wykorzystywana w grafice komputerowej do wyznaczenia globalnego rozkładu oświetlenia scen trójwymiarowych. Algorytm wywodzi się z efektów badań nad promieniowaniem cieplnym, w dziedzinie grafiki komputerowej po raz pierwszy pojawił się w 1984, w pracy naukowców z amerykańskiego Cornell University.Fotorealizm – właściwość obrazów i filmów stworzonych za pomocą technik komputerowych, które wyglądają jak obrazy pochodzące z rzeczywistości i tak jakby były uchwycone za pomocą kamery.
funkcja path_trace(promień)
   begin
      if głębokość rekurencji > limit then
         return natężenie domyślne;

      if promień przecina pewien obiekt then
         begin
            promień odbity = losowy promień z punktu przecięcia;
	    natężenie = path_trace(promień odbity);

	    return natężenie emitowane przez obiekt + (natężenie * BRDF);
         end;
      else
         return natężenie domyślne;
   end;

Bi-directional path tracing[ | edytuj kod]

Bi-directional path tracing jest modyfikacją path-tracingu, w której równocześnie budowane są dwie ścieżki: jedna prowadząca do obserwatora oraz druga wyprowadzana ze źródła światła. Każdy punkt z drugiej ścieżki jest traktowany jako źródło promieniowania, które wnosi coś do natężenia na ścieżce do obserwatora. Ostatecznie natężenie na ścieżce do obserwatora jest wyznaczane podobnie jak w zwykłym path tracingu.

Scena (ang. scene) to w grafice 3D zbiór niezależnych, osobno stworzonych trójwymiarowych obiektów, zgrupowanych i zaaranżowanych w jedną scenę. Poza obiektami 3D w scenie znaleźć się mogą obiekty nieprzeznaczone do wizualizacji, ale związane z reżyserią sceny, takie jak: kamera (obserwator), źródła światła, emitery (obiekty emitujące cząsteczki), odpowiednie obiekty pomocnicze służące do kontroli animacji obiektów 3D, ścieżek ich ruchu oraz innych efektów specjalnych. W większości silników graficznych scena jest niema nieskończone (występują ograniczenia sprzętowe) i może znaleźć się tam prawie dowolna liczba obiektów.

Zobacz też[ | edytuj kod]

  • photon mapping
  • radiosity
  • photon mapping
  • rendering




  • Reklama