W renderze · okluzjaW compie · flaraGranica · brakująca informacja2.5D · gdzie pęka
Rozdział 34 / W CG

Co w renderze, a co w compie

Część efektów z tej książki da się udać po renderze i nikt nie zauważy. Część nie da się nigdy, bo wymaga informacji, której na płaskim obrazie już nie ma. Ten rozdział rysuje tę granicę.

TL;DR
Kryterium · jedno pytanie

Czego płaski obraz już nie wie

Rozdział 33 zostawił listę zjawisk, które trzeba dołożyć, bo kamera renderera ich nie ma. Zostaje pytanie, gdzie je dołożyć — a odpowiedzi udziela się zwykle nawykiem albo tym, co akurat jest wygodniejsze. Tymczasem istnieje kryterium, i jest ostre.

Wyrenderowany obraz jest siatką pikseli, z których każdy niesie jedną wartość na kanał. Ta wartość jest wynikiem uśrednienia wszystkiego, co przez ten piksel przeszło: wszystkich kierunków, wszystkich odległości i wszystkich powierzchni, które się w nim zmieściły. Uśrednienie jest operacją nieodwracalną — po nim nie da się już ustalić, co się na nie złożyło.

Stąd kryterium: jeśli zjawisko wymaga rozdzielenia rzeczy, które piksel już uśrednił, musi powstać w rendererze. Jeśli operuje na tym, co piksel niesie, wolno je zrobić w compie — i wtedy warto, bo comp jest kilkadziesiąt razy szybszy i pozwala poprawiać bez powtarzania obliczeń.

Co pamięta pikseli czego już nie ma
co przez piksel przeszło gałąź, 4 mniebo, ∞ gałąź, 4 mdach, 22 m niebo, ∞ 0,412 jedna wartość CZEGO JUŻ NIE MA ile było planów w jakich odległościach w jakich proporcjach co było za którym z których kierunków pięć promieni, trzy przedmioty, dwie odległości uśrednienie jest nieodwracalne
Piksel na krawędzi gałęzi niesie mieszankę gałęzi i nieba. Nie ma w nim informacji, w jakiej proporcji ani w jakich odległościach — a obie te rzeczy są potrzebne, żeby go poprawnie rozmyć.

Warto zauważyć, że utrata informacji nie jest wadą renderu ani błędem formatu. Jest tym, czym obraz jest — prostokątną siatką wartości. Ta sama utrata dotyczy plate'u z kamery, i to nawet bardziej dotkliwie, bo tam nie ma żadnych kanałów pomocniczych. Kiedy więc mówimy, że czegoś „nie da się zrobić w compie”, mówimy w istocie, że tej rzeczy nie da się odtworzyć z fotografii — a to jest twierdzenie o fotografii, nie o narzędziu.

Ma to jedną pociechę, wartą zapamiętania przy pracy z materiałem zdjęciowym. Wszystko, co zrobiła prawdziwa kamera, zrobiła na płaskim obrazie — flara, halacja, ziarno, winieta i rozmycie nośnika działały na obrazie już spłaszczonym przez optykę. Dlatego odtworzenie ich w compie nie jest przybliżeniem: jest odtworzeniem tego samego kroku w tym samym miejscu łańcucha. Przybliżeniem staje się dopiero to, co w prawdziwej kamerze zdarzyło się przed spłaszczeniem, czyli głębia ostrości i rozmycie ruchu.

Warto zwrócić uwagę, że kryterium nie mówi nic o jakości ani o „fizycznej poprawności”. Mówi o dostępności danych. Comp wykonany tam, gdzie dane są, jest tak samo poprawny jak render — a często bardziej użyteczny, bo daje się zmienić po obejrzeniu.

Rozstrzygnięcia · zjawisko po zjawisku

Gdzie co robić

Przełóżmy kryterium na konkrety. Poniższy widget przechodzi przez zjawiska z tej książki i pokazuje, jakiej informacji każde z nich potrzebuje.

Render czy compkryterium zastosowane
POTRZEBUJE ——— wybierz zjawisko Kryterium: czy potrzebna informacja przetrwała spłaszczenie do pikseli.
Trzy zjawiska wychodzą jednoznacznie na comp, dwa na render, jedno warunkowo — i ten warunek jest wart zapamiętania, bo wraca w każdym ujęciu z nieostrym tłem.

Trzy wnioski z tego przeglądu zasługują na nazwanie osobno.

Flara zawsze w compie. Jest to jedyne zjawisko z tej książki, które potrzebuje mniej informacji niż piksel niesie — działa na jasnościach obrazu, i to na jasnościach po zsumowaniu. Renderowanie flary oznacza modelowanie wnętrza tubusa, czego żaden renderer nie robi, i zamyka drogę do poprawek.

Rozmycie ruchu warunkowo. Ruch prostoliniowy wystarcza opisać wektorem na piksel, więc comp go udźwignie. Ruch obrotowy i przecięcia planów wymagają czasu jako wymiaru, a nie jako wektora — i wtedy jest to render, zgodnie z rachunkiem z Dodatku R.

Głębia ostrości jest przypadkiem granicznym i to ona najczęściej bywa źle rozstrzygnięta. Mapa głębi daje jedną odległość na piksel, więc krawędź, na której spotykają się bliski i daleki plan, dostaje jedną z nich — a potrzebowałaby obu.

Kanały pomocnicze · przesuwanie granicy

Ile z rendera da się wynieść

Granica nie jest nieruchoma. Render potrafi zapisać obok obrazu dodatkowe warstwy, z których każda przywraca kawałek utraconej informacji — i każda przesuwa jedno zjawisko z lewej strony na prawą.

Kanały pomocniczeco przywraca który
KANAŁPRZYWRACAZAWODZI, GDY głębia (Z) odległość, jedna na piksel w pikselu są dwa plany albo przezroczystość wektory ruchu przesunięcie między klatkami ruch jest łukiem albo coś się odsłania normalne nachylenie powierzchni powierzchnia jest rozmyta albo półprzezroczysta pozycja w świecie gdzie punkt leży w scenie piksel obejmuje więcej niż jedno miejsce maski obiektów który obiekt gdzie obiekty się przenikają na krawędzi składowe oświetlenia rozbicie na odbicia i rozproszenie praktycznie nie zawodzi — suma jest ścisła każdy z nich niesie jedną wartość na piksel — i stąd bierze się każda z kolumn po prawej
Wszystkie kanały poza ostatnim mają tę samą wadę: opisują piksel tak, jakby zawierał jedną rzecz. Ostatni jest wyjątkiem, bo rozkłada wartość na składniki, których suma jest równa całości.

Wynika stąd praktyczna hierarchia, którą warto stosować. Rozbicie na składowe oświetlenia jest zawsze bezpieczne i daje w compie ogromną swobodę bez żadnego ryzyka — bo ich suma odtwarza obraz dokładnie. Pozostałe kanały są przybliżeniami i działają dobrze wszędzie poza krawędziami, przezroczystościami i przenikaniem.

Stąd też bierze się reguła, która brzmi banalnie, a rozstrzyga większość sporów o to, co gdzie robić: jeśli element ma dużo krawędzi na tle o innej odległości — włosy, liście, siatka, dym — to głębię i rozmycie ruchu robi się w rendererze. Jeśli jest zwarty i wyraźnie oddzielony od tła, comp poradzi sobie i będzie tańszy.

Druga oś · koszt i odwracalność

Kiedy oba są możliwe

Kryterium z pierwszej sekcji rozstrzyga, co jest możliwe. Zostaje spora grupa przypadków, w których możliwe jest jedno i drugie — i tam decyduje druga oś, o której warto myśleć osobno.

Render jest ścisły i zamrożony. Liczy zjawisko z pełnej sceny, więc wynik jest poprawny na krawędziach, w przezroczystościach i w przenikaniu. Kosztuje jednak czas maszyny i — co ważniejsze — czas człowieka: zmiana o dziesięć procent wymaga policzenia wszystkiego od nowa.

Comp jest przybliżony i żywy. Działa na tym, co zostało, więc na krawędziach zgaduje. Za to zmiana jest natychmiastowa, a reżyser oglądający wynik może poprosić o inny — i dostanie go w tym samym posiedzeniu, a nie następnego dnia.

Praktyka pokazuje, że druga oś przeważa częściej, niż wypada przyznać. Element, który przeszedł osiem rund poprawek w compie, jest zwykle bliżej celu niż element policzony raz, dokładnie, i obejrzany dwa razy. Nie dlatego, że przybliżenie jest lepsze od ścisłości — dlatego, że liczba obejrzeń jest tym, co naprawdę poprawia obraz.

Dwie osie decyzjimożliwość i odwracalność
← dane stracone przy spłaszczeniu · dane zachowane → poprawka droga → tania RENDER — nie ma wyboru COMP — oczywisty wybór głębia na włosach rozmycie obrotu flara i ghosty ziarno winietowanie aberracja chrom. głębia zwartego elementu halacja przy przepaleniu strefa, w której decyduje druga oś
Lewy górny róg i prawy dolny rozstrzygają się same. Ciekawe są dwa pozostałe — i tam wybór jest decyzją produkcyjną, nie optyczną.

Warto przy tym pamiętać o rzeczy, która zwykle przesądza sprawę w praktyce: decyzję można odłożyć. Wyrenderowanie kanałów pomocniczych kosztuje niewiele i nie zobowiązuje do niczego. Element z zapisaną głębią, wektorami ruchu i składowymi oświetlenia daje się zrobić w compie albo dorenderować później, jeśli comp zawiedzie — a element bez nich zamyka drugą drogę.

Trzy pomyłki · jak wyglądają na obrazie

Objawy złego rozstrzygnięcia

Wybór po złej stronie granicy nie daje komunikatu o błędzie. Daje obraz, który wygląda prawie dobrze — i warto znać trzy objawy, po których poznaje się, że przyczyna leży tutaj, a nie w ustawieniach.

Obwódka wokół nieostrego elementu. Rozmycie z mapy głębi rozmywa piksele, ale nie rozmywa kształtu maski — więc na granicy elementu zostaje wąski pasek o ostrej krawędzi albo, przy odwrotnym błędzie, ciemna obwódka z tła. Objaw jest tym wyraźniejszy, im większy kontrast między elementem a tłem, i znika całkowicie przy głębi renderowanej.

Przedmiot, który nie odsłania tego, co za nim. Rozmycie ruchu z wektorów przesuwa piksele, których nie ma czym zastąpić — więc za szybko poruszającym się przedmiotem zostaje ślad w kolorze przedmiotu zamiast tła. W rendererze tło jest widoczne, bo w połowie czasu otwarcia przedmiotu tam nie było.

Flara, która nie reaguje na scenę. Flara zrobiona w rendererze albo doklejona jako gotowy obrazek trzyma się kamery, a nie źródła — więc przy ruchu przesuwa się nie tak, jak powinna, a przy zmianie jasności źródła nie zmienia się wcale. Objaw jest odwrotny do dwóch poprzednich: tu render jest błędem, a comp poprawnością.

Wszystkie trzy mają wspólną cechę, którą warto nazwać, bo pozwala je szybko rozpoznać: psują się przy ruchu, nie na zatrzymanej klatce. Element oceniony na jednej klatce potrafi wyglądać bez zarzutu i rozsypać się w odtworzeniu — i dlatego rozstrzygnięcia z tego rozdziału podejmuje się przed renderem, a nie po obejrzeniu pierwszego wyniku.

Z praktyki

Zapytaj o dane, nie o wygodę. „Zrobimy to w compie” jest odpowiedzią na pytanie o harmonogram, a nie o obraz. Właściwe pytanie brzmi: czy w płaskim obrazie została informacja, której to zjawisko potrzebuje. Jeśli nie została, comp da wynik, który da się poprawiać w nieskończoność i nigdy nie będzie poprawny.

Wyrenderuj składowe oświetlenia zawsze. Kosztują niewiele, a dają w compie możliwość zmiany siły odbić i rozproszenia bez powtarzania rendera. Jest to jedyny kanał, przy którym nie ma haczyka.

Sprawdź krawędzie, nie środek. Element rozmyty z mapy głębi wygląda dobrze wszędzie poza obwódką — a obwódka jest tym, na co oko patrzy w pierwszej kolejności. Test zajmuje sekundę: powiększ krawędź na tle o innej odległości.

Słowniczek
kanał pomocniczy
Dodatkowa warstwa zapisana obok obrazu, niosąca informację o scenie: odległość, ruch, nachylenie, przynależność.
mapa głębi
Kanał z jedną odległością na piksel. Podstawa rozmycia w compie i źródło jego ograniczeń.
składowe oświetlenia
Rozbicie obrazu na wkłady poszczególnych zjawisk, których suma odtwarza całość dokładnie.
przenikanie planów
Sytuacja, w której jeden piksel obejmuje przedmioty o różnych odległościach. Granica użyteczności kanałów pomocniczych.
krycie
Ułamek piksela zajęty przez przedmiot. Na krawędziach mniejszy od jedności — i stąd większość kłopotów tego rozdziału.
Idź głębiej
Dodatek T — Modele wielosoczewkowe w rendererze