Kiedy look wygląda źle, pytanie nie brzmi „który parametr zmienić”, tylko „w którym AOV widać winowajcę” — a Arnold i RenderMan dochodzą do czystego obrazu różnymi ścieżkami samplingu.
GI_diffuse_samples i podobne) żyje globalnie, na node'zie opcji — nie osobno na każdym materiale, wbrew intuicji.Arnold deklaruje AOV przez tablicę outputs na node'zie opcji (to, co faktycznie trafia do pliku .ass, niezależnie od hosta) — w Mayi aiAOV i AOV Manager to warstwa wygody nad tym samym mechanizmem. Domyślny zestaw jest gotowy bez żadnej konfiguracji: pary direct/indirect dla każdego loba (diffuse_direct/diffuse_indirect, specular_direct/specular_indirect, coat_direct/coat_indirect, transmission_direct/transmission_indirect, sss_direct/sss_indirect, volume_direct/volume_indirect), plus agregaty (diffuse, specular, sss...) i AOV pomocnicze (N, P, Z, motionvector, Cryptomatte). Warto zapamiętać: sss i transmission nie są pojedynczymi, płaskimi AOV — mają ten sam podział direct/indirect co diffuse i specular, łatwo o tym zapomnieć, budując panel debugujący na pamięć.
RenderMan zamiast gotowego zestawu daje język: LPE opisuje ścieżkę światła jako wyrażenie regularne. Symbole: C — kamera, zawsze początek ścieżki; D — zdarzenie diffuse; S — zdarzenie specular; L — trafienie w światło; O — emisja z obiektu; modyfikatory R/T (odbite/przepuszczone) doklejane do liter zdarzeń. RenderMan pozwala nawet adresować osobno kilka lobów diffuse i specular tego samego materiału (do czterech diffuse, do ośmiu specular), gdy shader je rozróżnia. Ten sam zestaw AOV, który Arnold daje gotowy z automatu, w RenderManie trzeba złożyć samodzielnie z tych symboli.
Arnold również wspiera Light Path Expressions (od wersji 5.0) — dokładnie po to, żeby wyciągnąć coś, czego gotowy, lobowy zestaw AOV nie przewidział. Różnica filozofii jest tu ważniejsza niż sama obecność LPE po obu stronach: w Arnoldzie stały słownik AOV jest domyślny i zarządzany przez hosta, LPE to świadomie dopisywane rozszerzenie dla nietypowego zapytania. W RenderManie to wyrażenie jest podstawowym, pierwszym narzędziem do niemal wszystkiego, łącznie z tym, co Arnold wystawia gotowe z pudełka.
Arnold rozdziela dwa poziomy samplingu, oba globalne, żyjące na node'zie opcji renderu, nie na materiale: AA_samples (próbki na piksel/kamerę — rzeczywista liczba promieni to kwadrat tej wartości) i osobno GI_diffuse_samples, GI_specular_samples, GI_transmission_samples, GI_sss_samples, GI_volume_samples (próbki per lob, też liczone jako kwadrat, „na każdą próbkę kamery”). Częste błędne założenie: że te ostatnie siedzą na standard_surface per materiał — nie, są globalne dla całej sceny. Diagnoza: szum wszędzie (krawędzie, DOF, motion blur) → podnieś AA_samples; szum widoczny tylko w jednym AOV (np. tylko specular_indirect) → podnieś dopasowany GI_*_samples, nie globalny AA.
RenderMan rozdziela to inaczej: sampling pikselowy/kamery żyje na hiderze (liczba próbek, adaptacyjność sterowana progiem wariancji pikseli), a sampling per lob — na integratorze PxrPathTracer: światło bezpośrednie przez numLightSamples i numBxdfSamples (łączone przez multiple importance sampling), światło pośrednie przez osobne numDiffuseSamples, numSpecularSamples, numSubsurfaceSamples, numRefractionSamples, gdy tryb samplingu jest ustawiony na ręczny. Ten sam podział koncepcyjny co w Arnoldzie — jedna gałka na piksel, osobne gałki per lob — tylko mieszkający w innym miejscu grafu (integrator zamiast globalnych opcji).
Zanim dotkniesz jakiegokolwiek suwaka materiału, wyizoluj AOV specularu samego i sprawdź, czy błysk w ogóle ląduje tam, gdzie geometria i oświetlenie mówią, że powinien — to od razu rozdziela „zły materiał” od „złe światło albo złe normalne”, zanim zaczniesz zgadywać. Oba renderery wystawiają też pomocnicze AOV pod denoisery — albedo, normal i warianty wariancji (*_variance w Arnoldzie, statystyki wariancji per-AOV w RenderManie) — warto mieć je włączone od razu, nie dopiero gdy szum stanie się problemem na koniec produkcji.
To był ostatni rozdział o rendererach offline. Część VIII bierze cały ten warsztat i przenosi go tam, gdzie renderer ma na klatkę szesnaście milisekund zamiast dwudziestu minut — Rozdział 24 zaczyna od tego, co w takim budżecie zostaje z fizyki, a co trzeba zastąpić przybliżeniem.