Beauty pass to dopiero początek — jeden plik EXR potrafi nieść dziesiątki warstw, które kompozytor złoży w cokolwiek zechce, długo po renderze.
Rozdział 3 nazwał lighting i compositing sąsiednimi ogniwami łańcucha — lighting renderuje, comp składa finalny obraz. Można by pomyśleć, że to, co przechodzi między nimi, to po prostu gotowy obrazek. W praktyce niemal nigdy tak nie jest: to, co lighting publikuje, to plik niosący dziesiątki osobnych, edytowalnych składników tego obrazka naraz.
Gdyby lighting oddawał kompozytorowi wyłącznie gotowy, spłaszczony obraz, każda prośba o „trochę mniej odbić" albo „cieplejszy cień" wymagałaby powrotu do renderu — kosztownego i wolnego kroku, którego pipeline stara się unikać wszędzie tam, gdzie się da. Rozwiązaniem jest renderowanie w passach (AOV, Arbitrary Output Variables): osobno zapisany diffuse, osobno specular, osobno odbicia, załamania, cienie, ambient occlusion, a do tego dane pomocnicze — wektory normalnych, głębia (Z), identyfikatory obiektów. Kompozytor dostaje te składniki osobno i może zmienić ich proporcje ręcznie, po fakcie, bez angażowania renderera po raz drugi.
Formaty takie jak JPEG czy PNG zakładają dokładnie trzy kanały koloru i ograniczony, ośmiobitowy zakres jasności — wystarczający do wyświetlenia gotowego zdjęcia, kompletnie niewystarczający do praktyk opisanych wyżej. OpenEXR, format opracowany przez ILM i udostępniony branży na przełomie tysiącleci (poznasz tę historię bliżej w Dodatku O), został zaprojektowany od zera pod inne założenia: dowolna liczba nazwanych kanałów w jednym pliku — nie tylko R, G, B, ale też diffuse.R, specular.G, N.x, Z — oraz pełny zakres jasności zapisany jako liczby zmiennoprzecinkowe, obejmujący zarówno najciemniejszy cień, jak i jasność słońca odbitego wprost w obiektyw, bez obcinania żadnego z nich.
Kluczowa własność większości passów: są tak zdefiniowane fizycznie, że ich zwykłe zsumowanie odtwarza dokładnie obraz beauty — czyli to, co zobaczyłbyś, gdyby renderer w ogóle nie dzielił oświetlenia na składniki. Kompozytor nie zgaduje więc, jak przybliżyć finalny wygląd — rozkłada dokładny wynik renderu na edytowalne części, zmienia proporcje któregoś z nich, i wciąż ma gwarancję, że przy neutralnych ustawieniach dostanie z powrotem to samo, co lighting zatwierdził. To właśnie ta własność sprawia, że rozbicie na passy jest praktyczne, a nie tylko teoretycznie eleganckie.
Cała ta wielokanałowa sekwencja klatek trafia do compu dokładnie tym samym mechanizmem publikacji co każdy inny wynik pracy w tej książce (Rozdział 7) — jako wersjonowany, zarejestrowany w systemie śledzenia zestaw plików, nie jako pojedynczy obrazek wysłany mailem.
Część IV pokazała, jak dane wędrują między programami. Część V wraca do ludzi, którzy te mechanizmy budują — zaczynając od Pythona, wspólnego języka, w którym pisze się niemal każde narzędzie pipeline'u opisane w tej książce.