Rozdziały 1–11 rekurencyjnie śledziły jeden idealny promień odbicia i załamania na trafienie — dokładnie to, co opisał Whitted. Ten rozdział dodaje ostatni, brakujący kawałek: światło odbite od innych powierzchni, nie tylko wzdłuż jednego, idealnego kierunku.
James Kajiya sformalizował w 1986 roku jedno równanie, które opisuje absolutnie każdy efekt świetlny z tej książki:
Co to znaczy fizycznie. L_o(p,ω_o) to ilość światła wychodzącego z punktu p w stronę kamery (kierunek ω_o). To suma dwóch rzeczy: światła, które ten punkt sam emituje (L_e — zero dla większości powierzchni, coś więcej dla źródeł światła), plus całego światła, które dotarło do niego z każdego kierunku hemisfery nad nim, odpowiednio przefiltrowanego przez materiał i kąt padania.
Rozbijamy prawą stronę, kawałek po kawałku:
Podstawmy (uproszczone) liczby. Prawdziwa hemisfera ma nieskończenie wiele kierunków, ale zasadę widać już na czterech przykładowych, każdy z innym wkładem f·L_i·(N·ω_i):
Jedna próbka (np. tylko kierunek 2) dałaby 0,31 — daleko od średniej 0,14. To dokładnie to, co robi path tracing z tego rozdziału: zamiast policzyć ∫_Ω dokładnie (niemożliwe dla prawdziwej sceny), losuje kierunki ω_i, liczy wkład każdego i uśrednia. Kolejny wzór w tym rozdziale (estymator Monte Carlo) to formalny zapis dokładnie tego kroku. Więcej próbek = bliżej prawdziwej całki = mniej szumu na obrazie.
Dodatek B pokazuje, jak losować te kierunki mądrzej niż równomiernie, żeby dojść do tego samego wyniku mniejszą liczbą próbek. Podstawy matematyczne — ogólne przypomnienie, czym jest ∫.
To równanie jest rekurencyjne: L_i w punkcie p, z kierunku ω_i, to po prostu L_o jakiejś innej powierzchni — tej, w którą trafia promień wysłany z p w kierunku ω_i. Diffuse i shadow rays z Rozdziału 6 to ta całka policzona tylko dla świateł punktowych (delta, bez integracji). Odbicia i załamania z Rozdziału 7 to ta całka policzona tylko wzdłuż jednego, idealnie zwierciadlanego kierunku. Czego wciąż brakuje: światła odbitego od innych rozproszonych powierzchni — czerwona ściana barwiąca sufit różowym blaskiem, klasyczne bounce light, które każdy widział na żywym renderze.
Całka po hemisferze nie ma zamkniętej formy dla realnej scenie. Metoda Monte Carlo szacuje każdą całkę, losowo próbkując punkty i uśredniając wynik. Zastosowana do jednego kierunku ω_i naraz:
Uśrednienie wielu takich pojedynczych „ścieżek” na piksel zbiega do prawidłowej odpowiedzi — to dosłownie ten sam supersampling z Rozdziału 8, tylko teraz próbkujemy nie pozycję w pikselu, a całą ścieżkę światła przez scenę.
Konkretny algorytm (unidirectional path tracing, najprostszy i najczęstszy wariant): z kamery wysyłasz promień; w punkcie trafienia liczysz światło bezpośrednie promieniem cienia (Rozdział 6); potem — zamiast zawsze kontynuować rekurencję jak w Rozdziale 7 — losujesz, czy ścieżka przetrwa (ruletka rosyjska), żeby pozostać statystycznie nieobciążonym bez sztywnego limitu głębokości; jeśli przetrwa, próbkujesz nowy kierunek według BRDF (Rozdziały 10–11) i powtarzasz całość z nowego punktu trafienia, jak gdyby to była nowa kamera.
Przełącznik „GI” / „Global Illumination” i „Light Bounces” / „Max Bounces” w Arnoldzie, RenderManie, Cyclesie, V-Rayu czy trybie Path Tracer w Unrealu to dosłownie ten rozdział: GI włącza człon odbity równania renderowania, bounces ogranicza (statystycznie, przez ruletkę) długość ścieżki.
Nazwy suwaka są różne, mechanizm ten sam: Diffuse/Specular/Transmission Depth w Arnoldzie, Max Diffuse/Specular Bounces w Karmie (Houdini/Solaris), Trace Depth w RenderManie. Wszędzie chodzi o to samo — po ilu odbiciach urwać rekurencję z tego rozdziału. Osobne limity dla diffuse i specular istnieją, bo to pierwsze zbiega się szybko i rzadko potrzebuje więcej niż 2–3 odbić, a drugie potrafi wymagać kilkunastu, zanim szkło przestanie być czarne.
Szum kontra czas renderu, z którym walczysz w każdym projekcie, to nieunikniona konsekwencja Monte Carlo — nie ma darmowego obiadu, są tylko lepsze sposoby próbkowania (next-event estimation, bidirectional path tracing, ReSTIR) i denoisery, które wygładzają wynik przy tej samej liczbie próbek.
Podstawowy path tracing zbiega się poprawnie, ale czasem boleśnie wolno — małe światła, ostre kaustyki. W następnym rozdziale: bidirectional path tracing i photon mapping, techniki budowane na dokładnie tym samym równaniu renderowania, dla scen, gdzie samo losowe próbkowanie z kamery nie wystarcza.