Kilka rozdziałów dalej trafisz na wzory z Σ i ∫, które mogą wyglądać przytłaczająco, jeśli nie liczyłeś całek od lat (albo nigdy). Ta strona nie jest kursem analizy matematycznej — to piętnaście minut, które wystarczą, żeby te symbole przestały być magią i stały się tym, czym naprawdę są: bardzo prostą ideą, tylko zapisaną gęstym językiem.
Zacznijmy od czegoś, co już znasz z Rozdziału 8: uśredniasz N próbek na piksel, żeby wygładzić krawędzie. Gdybyś to zapisał tak, jak zapisałbyś kod, wyglądałoby to tak:
Matematycy piszą dokładnie to samo krócej — zamiast wypisywać wszystkie składniki, piszą jeden ogólny wzór na „składnik numer i” i mówią, dla jakiego zakresu i go dodawać:
To wszystko. Σ nie robi nic, czego nie robi zwykła pętla sumująca w kodzie — to skrót notacyjny, nie nowa operacja matematyczna. Zobaczysz ją w tej postaci w kilku miejscach książki (m.in. w składaniu modelu oświetlenia w Rozdziale 5 i w importance sampling w Dodatku B).
Σ dodaje skończoną listę — próbkę 1, 2, 3, ..., N. Ale niektóre pytania w renderingu nie mają skończonej listy do zsumowania. „Ile światła dociera do tego punktu ze wszystkich kierunków hemisfery nad nim?” — kierunków w hemisferze jest nieskończenie wiele, każdy nieskończenie „wąski”. Nie da się ich ponumerować od 1 do N i dodać jak próbek na piksel.
Całka to odpowiedź na dokładnie ten problem: sumowanie po zakresie ciągłym, nie liście dyskretnych elementów. Zamiast „dodaj wartość dla każdego i od 1 do N”, całka mówi „dodaj wkład z każdego nieskończenie małego kawałka zakresu”:
Czytaj to dosłownie jak Σ z poprzedniej sekcji, tylko z trzema różnicami: indeks i zamienia się w ciągłą zmienną ω, zakres „od 1 do N” zamienia się w „cały obszar Ω”, a krok sumowania (dawniej po prostu „1 kolejny element”) zamienia się w dω — nieskończenie mały kawałek tego obszaru. To jest dokładnie to ∫_Ω ... dω_i, które zobaczysz w równaniu renderowania w Rozdziale 15 — i dokładnie dlatego ma przycisk „Wyjaśnij ten wzór” bezpośrednio pod sobą. Symbol pod całką nie zawsze nazywa się dosłownie ω — w Rozdziale 10 zobaczysz dokładnie tę samą ideę zapisaną jako dL (kąt bryłowy wokół konkretnego, już nazwanego kierunku L, zamiast ogólnego ω). Nazwa się zmienia, idea nie.
Tu jest sedno, które łączy tę stronę z resztą książki: dla prawdziwej sceny nie istnieje wzór, który dałby dokładną wartość całki z poprzedniej sekcji — jest zbyt skomplikowana (zależy od geometrii, materiałów, świateł, wszystkiego naraz). Więc renderer robi coś sprytnego: przybliża całkę skończoną sumą losowych próbek — czyli wraca do Σ, tylko próbki są losowe, a nie kompletną listą.
Żeby to zobaczyć na liczbach: udawajmy, że hemisfera ma tylko 4 możliwe kierunki (w rzeczywistości jest ich nieskończenie wiele, ale zasada się nie zmienia), a każdy niesie inną ilość światła:
Jedna próbka (np. tylko kierunek 2) dałaby 0,40 — daleko od prawdziwej średniej 0,20. Cztery próbki dają dokładnie 0,20. W prawdziwej scenie kierunków jest nieskończenie wiele, więc żadna skończona liczba próbek nie da wyniku idealnie dokładnego — ale im więcej próbek, tym bliżej. To jest dosłownie to, co dzieje się, gdy podnosisz „Samples” w Arnoldzie, Cyclesie czy V-Rayu: więcej próbek = przybliżenie całki bliższe prawdzie = mniej szumu na obrazie. Pełną wersję tej historii — dlaczego próbki są losowe, nie równomiernie rozstawione, i jak wybrać je mądrzej — znajdziesz w Rozdziale 15 i Dodatku B.
To wszystko, co potrzebujesz, żeby żaden wzór z Σ czy ∫ w tej książce nie był już czarną skrzynką. Nie musisz tego pamiętać na pamięć — każdy trudniejszy wzór ma przycisk „Wyjaśnij ten wzór”, który rozkłada go krok po kroku dokładnie w miejscu, w którym się pojawia, w kontekście tego, co akurat liczysz.