LINK · zbiór per obiektSHADOW · osobna ośNIEFIZYCZNE · celowoEXT OF · R.5, R.6
Dodatek AL / Warstwa wyjścia

Light linking: kiedy celowo łamie się fizykę

Cała ta książka opisywała, jak liczyć światło poprawnie. Ten dodatek jest o narzędziach, które istnieją wyłącznie po to, żeby policzyć je niepoprawnie — bo reżyser chce, żeby ta jedna lampa oświetlała twarz, ale nie ścianę za nią. To nie jest obejście ograniczeń renderera. To jest funkcja.

TL;DR
Pass: Mechanizm

Zbiór świateł zamiast wszystkich świateł

Rozdział 6 liczył cień, wysyłając promień od punktu trafienia do każdego światła w scenie. Rozdział 15 uogólnił to na próbkowanie świateł wewnątrz całki. W obu przypadkach „każde światło” znaczyło dosłownie każde.

Light linking zmienia tylko jedną rzecz: zamiast globalnej listy świateł renderer używa listy przypisanej do tego obiektu. Jeśli światła na niej nie ma, nie ma promienia cienia, nie ma wkładu, koniec. Z punktu widzenia obiektu ta lampa po prostu nie istnieje.

Light.linkingta sama lampa, dwa obiekty
LAMPA ściana — odlinkowana postać — zlinkowana liczone pominięte — brak promienia cienia
Ta sama lampa, dwa obiekty, dwa różne wyniki. Dla ściany renderer nawet nie wystrzeli promienia w jej stronę — nie chodzi o to, że wynik wychodzi zero, tylko że obliczenie się nie odbywa.

Konsekwencja jest głębsza, niż wygląda: ponieważ światło zostaje pominięte także w pośrednim oświetleniu, ściana nie dostanie też odbicia od podłogi oświetlonej tą lampą, jeśli podłoga również jest odlinkowana. Efekty potrafią się kaskadować w sposób, którego nie widać wprost w interfejsie — i to jest najczęstsza przyczyna „dlaczego ten róg jest czarny”.

Pass: Cienie osobno

Oświetlenie i rzucanie cienia to dwie różne osie

Częsty problem inscenizacyjny: postać ma być oświetlona mocnym światłem z boku, ale jej cień pada dokładnie na twarz drugiego aktora. Fizycznie to jedno i to samo zdarzenie — cień istnieje, bo obiekt blokuje światło. W produkcji rozdziela się je na dwie niezależne kontrolki.

Shadow linking pozwala powiedzieć: ta lampa oświetla postać, ale postać nie blokuje jej promieni cienia. Renderer po prostu pomija ten obiekt przy testach widoczności z Rozdziału 6, licząc jednocześnie jego oświetlenie normalnie.

To jest moment, w którym obraz przestaje odpowiadać jakiejkolwiek scenie możliwej do zbudowania w realnym świecie — i dokładnie po to ta kontrolka istnieje. Warto to nazwać wprost, bo próba „naprawienia” takiej sceny przez powrót do fizyki zwykle oznacza cofnięcie decyzji reżyserskiej.

Pass: Koszt

Dlaczego mniej świateł potrafi liczyć się dłużej

Intuicja mówi, że odlinkowanie połowy świateł powinno przyspieszyć render. Bywa odwrotnie i warto rozumieć dlaczego.

Renderery ze scenami o setkach świateł nie próbkują ich wszystkich przy każdym trafieniu — budują strukturę przyspieszającą wybór świateł, podobną w duchu do BVH z Rozdziału 13, i losują kilka istotnych zamiast sprawdzać komplet. Ta struktura jest budowana raz, dla całej sceny.

Light linking oznacza, że każdy obiekt widzi inny podzbiór świateł, więc jedna wspólna struktura przestaje być poprawna. Renderer musi albo utrzymywać osobne warianty, albo odrzucać wylosowane światła po fakcie — a odrzucona próbka to praca wykonana na darmo. Przy scenie z rozbudowanym, niespójnym linkowaniem potrafi to zjeść więcej, niż dało pominięcie świateł.

Praktyczny wniosek: linkowanie stosowane do kilku świateł kluczowych jest tanie i wygodne. Linkowanie ustawiane odruchowo na każdym obiekcie zamienia optymalizację próbkowania w kosztowną loterię.

Pass: Light groups

Alternatywa: nie wyłączaj, tylko rozdziel

Zanim sięgniesz po linkowanie, warto rozważyć rozwiązanie, które nie łamie fizyki w ogóle. Light groups z Dodatku AJ dają każdemu światłu własną warstwę w tym samym renderze. Zamiast decydować przed renderem, że lampa nie oświetla ściany, renderujesz scenę uczciwie i ściszasz tę lampę w compingu.

Różnica jest istotna: linkowanie jest decyzją nieodwracalną bez ponownego renderu, a light group to suwak. Linkowanie wciąż wygrywa tam, gdzie chcesz zmienić rozkład światła, a nie jego siłę — bo ściszenie warstwy przygasza lampę wszędzie naraz, a odlinkowanie tylko na wybranym obiekcie.

↓ Dodatek AJ — light groups i mechanizm LPE, który je wystawia
Z praktyki

W Mayi i Arnoldzie to zbiory Light Linking i osobne Shadow Linking w Relationship Editor. RenderMan i Karma wystawiają to jako kolekcje na prymach USD — light link i shadow link są tam dwiema niezależnymi relacjami, dokładnie jak opisano wyżej. Blender realizuje ten sam pomysł przez Light Linking i Shadow Linking z kolekcjami.

Diagnostyka: jeśli obiekt jest niespodziewanie ciemny, sprawdź linkowanie zanim zaczniesz szukać w materiale. Objaw jest mylący, bo wygląda dokładnie jak zbyt niska waga diffuse albo zły kolor — a przyczyna leży w zupełnie innym miejscu sceny i żadna zmiana shadera jej nie naprawi.

Słowniczek
Light linking
Zbiór świateł przypisany do obiektu; pozostałe są dla niego pomijane.
Shadow linking
Niezależna kontrola tego, czy obiekt blokuje promienie cienia danego światła.
Struktura wyboru świateł
Akcelerator pozwalający losować istotne światła zamiast sprawdzać wszystkie; light linking go osłabia.
Light group
Osobna warstwa na światło; alternatywa dla linkowania, odwracalna w compingu.
Idź głębiej
Dodatek AJ — Light Path Expressions i AOV Dodatek U — Kąt bryłowy i geometria sferyczna