Domyślna kamera w każdym rendererze to dziurka bez średnicy: nieskończona głębia, zero aberracji, zero flary. Wszystko z tej książki trzeba do niej dołożyć — i warto wiedzieć, gdzie się co dokłada.
Przez trzydzieści dwa rozdziały budowaliśmy opis tego, co dzieje się z prawdziwym światłem w prawdziwej kamerze. Teraz to samo pytanie zadajemy renderowi — i pierwsza odpowiedź jest zaskakująco radykalna.
Domyślna kamera w każdym rendererze jest kamerą otworkową. Nie jest to uproszczony obiektyw ani przybliżenie soczewki. Jest to inny obiekt: punkt w przestrzeni plus prostokąt, przez który patrzy. Promień wychodzi z tego punktu, biegnie prosto, trafia w coś i wraca z barwą.
Konsekwencja jest jedna i bardzo daleko idąca. Skoro źrenica jest punktem, to każdy punkt sceny odwzorowuje się w dokładnie jeden punkt kadru — bez względu na odległość. Nie ma płaszczyzny ostrości, bo wszystko jest w niej naraz. Nie ma krążka rozmycia, bo krążek ma zerową średnicę.
Warto zauważyć, że to nie jest uproszczenie, które da się „poprawić dokładnością”. Rachunek jest dokładny — po prostu opisuje przyrząd, którego nikt nigdy nie zbudował. Dziurka fizyczna ma niezerową średnicę i przez to dyfrakcję z Rozdziału 10; dziurka renderera nie ma ani jednego, ani drugiego.
Stąd bierze się właściwość, którą każdy zna z pierwszych renderów i mało kto nazywa: obraz z domyślnej kamery jest zbyt ostry, żeby wyglądał na zdjęcie. Nie brakuje mu detalu — brakuje mu wszystkich powodów, dla których prawdziwe zdjęcie detalu nie ma wszędzie.
Wszystkie renderery oferują drugi model, zwykle nazywany kamerą z głębią ostrości albo modelem cienkiej soczewki. Dokłada on dokładnie jedną rzecz: promień pierwotny startuje nie z punktu, tylko z losowego miejsca na krążku o zadanej średnicy.
To wystarcza, żeby pojawiły się dwa zjawiska naraz. Punkty leżące na płaszczyźnie ostrości nadal zbiegają się w jeden punkt kadru. Punkty przed nią i za nią rozkładają się na krążek o średnicy proporcjonalnej do odległości od tej płaszczyzny, dokładnie tak, jak wyprowadzał to Rozdział 8. Kształt krążka odpowiada kształtowi otworu, czyli mamy też bokeh z Rozdziału 9.
Dziurka kontra źrenica
Obróć scenę, żeby zobaczyć, że źrenica jest krążkiem, a nie punktem. Warstwy przełącz przyciskami.
Zielona płaszczyzna to płaszczyzna ostrości, bursztynowy prostokąt to matryca. Punkt sceny leżący za płaszczyzną ostrości wysyła promienie przez całą źrenicę — i dlatego na matrycy zostawia krążek, a nie punkt. Przy dziurce promień jest jeden i krążek nie powstaje.
Widget pokazuje przy okazji rzecz, którą łatwo przeoczyć w płaskim rysunku: źrenica jest powierzchnią, a nie odcinkiem. Krążek rozmycia powstaje dlatego, że promienie wychodzą z całego jej pola — i dlatego jego kształt jest rzutem tego pola, ze wszystkimi konsekwencjami z Rozdziału 9, łącznie z kocim okiem przy brzegu kadru.
Jak nazywają się te parametry w konkretnych rendererach, co która nazwa naprawdę robi i gdzie kryją się różnice w przeliczaniu ogniskowej na kąt widzenia — Dodatek S.
Skoro model kamery składa się z punktu, prostokąta i ewentualnie krążka, to wszystko, co w tej książce wynikało z materiału — ze szkła, z powłok, z oprawy, z emulsji — nie ma w nim żadnej reprezentacji. Warto tę listę zobaczyć w całości, bo jest dłuższa, niż się pamięta.
Podział ma jedną cechę, która czyni go użytecznym w praktyce: jest ostry. Nie ma zjawisk pół na pół. Jeśli coś wynika z tego, gdzie biegną promienie, renderer to ma. Jeśli z tego, przez co biegną — nie ma i mieć nie będzie, choćby liczba próbek rosła w nieskończoność.
Warto też zauważyć, czego nie ma po żadnej stronie, a bywa mylone z jednym i drugim. Kompresja tonalna, krzywa kontrastu i „look” nie są własnością kamery ani nośnika — są tym, co dzieje się po zapisie, i należą do korekcji. Wrzucanie ich do kamery renderera daje obraz, którego nie da się już potem poprawić, bo dane wyszły z rendera już przetworzone.
Kamera renderera ustawiana do plate'u ma parametry, w których pomyłka o procent widać, i takie, gdzie margines jest szeroki. Warto wiedzieć, które są które.
Rozmiar matrycy i ogniskowa razem, nigdy osobno. Kąt widzenia wynika z ilorazu tych dwóch liczb, więc podanie ogniskowej bez rozmiaru matrycy nie znaczy nic. Najczęstszy błąd w tej książce opisany był już w Dodatku AA: pięćdziesiątka na Super 35 i pięćdziesiątka na pełnej klatce to dwa różne kadry.
Odległość ostrzenia, a nie „rozmycie tła”. Głębia wynika z odległości i przysłony, więc ustawiona wprost daje właściwy gradient rozmycia w całej scenie. Dobrana „na oko” do jednego planu daje zwykle zły rozkład w pozostałych — a rozkład jest tym, co oko sprawdza.
Punkt zbiegu, czyli wysokość i pochylenie. Perspektywa jest funkcją położenia, a nie ogniskowej — to była teza Rozdziału 5. Kamera postawiona pół metra za nisko daje inne zbieganie pionów niż plate, i żadna korekta ogniskowej tego nie naprawi.
Margines jest natomiast szeroki tam, gdzie zjawisko i tak zostanie dołożone później: przy dokładnej wartości przysłony (jeśli rozmycie robi się w compie), przy kącie migawki (jeśli rozmycie liczy się z wektorów) i przy krzywej tonalnej. Te rzeczy warto ustawiać rozsądnie, ale ich pomyłka jest odwracalna — w odróżnieniu od trzech powyższych, które wchodzą w geometrię obrazu i po renderze nie da się ich już zmienić.
Jest też druga strona tej różnicy, mniej opisywana. Skoro kamera renderera nie jest przyrządem, tylko regułą przypisującą kierunki do pikseli, to nie obowiązują jej ograniczenia konstrukcyjne — i część rzeczy, które robi bez wysiłku, w szkle byłaby niewykonalna albo bardzo droga.
Trzy przypadki warte nazwania. Rzut równoległy nie ma punktu zbiegu — promienie biegną równolegle, więc przedmiot odległy jest tak samo duży, jak bliski. Odpowiednik optyczny wymagałby soczewki o średnicy równej szerokości kadrowanej sceny, co przy budynku oznacza soczewkę wielkości budynku. Renderer robi to jedną linijką.
Przesunięcie kadru bez granic. Obiektyw typu shift przesuwa kadr w obrębie koła obrazowego i kończy się tam, gdzie koło się kończy — stąd winietowanie przy dużych przesunięciach. Kamera renderera przesuwa kadr dowolnie daleko, bo nie ma koła obrazowego. Jest to jedyne miejsce, gdzie brak fizyki bywa praktyczną zaletą, i wykorzystuje się je przy dopasowywaniu do plate'ów kręconych shiftem.
Rzut panoramiczny. Pełna kula kierunków zapisana w jednym obrazie nie ma optycznego odpowiednika w ogóle — nawet obiektyw typu rybie oko obejmuje najwyżej półkulę i mocno ją zniekształca. Renderer traktuje to jak każdy inny rzut, bo dla niego jest to tylko inna funkcja kierunku.
Wniosek dla pracy z plate'em jest jednak odwrotny do intuicji. Wszystkie te możliwości są nieprzydatne, gdy element ma pasować do zdjęcia — bo zdjęcie zrobił obiektyw i obowiązuje je rzut perspektywiczny. Przydają się tam, gdzie obraz nie udaje fotografii: przy mapach otoczenia, podglądach technicznych i rysunkach.
Wszystkie interfejsy kamer sprowadzają się do jednego równania, które warto mieć w głowie, bo pozwala przełożyć każdy z nich na każdy inny.
Wynika stąd praktyczna zasada, którą warto stosować bez wyjątków: wpisuj ogniskową i rozmiar bramki, nie kąt. Ogniskowa jest liczbą z raportu zdjęciowego, rozmiar bramki liczbą z dokumentacji kamery, a kąt — wynikiem, który program policzy sam i policzy poprawnie. Wpisywanie kąta oznacza policzenie tego samego ręcznie, z ryzykiem pomylenia, o który z trzech chodziło.
Zacznij od kamery otworkowej, nawet jeśli finalnie ma być głębia. Ustawianie kadru, perspektywy i geometrii jest łatwiejsze na ostrym obrazie, a głębia ostrości nie zmienia ani jednej z tych rzeczy. Włącz ją, kiedy geometria się zgadza — nie wcześniej.
Sprawdź kąt widzenia na prostej, nie na oko. Prosta linia w scenie i ta sama prosta w plate'cie muszą przecinać krawędź kadru w tym samym miejscu. Jest to test dokładniejszy niż jakiekolwiek porównywanie wrażenia i zajmuje minutę.
Nie szukaj w kamerze parametrów, których tam nie ma. Suwak nazwany „lens flare” albo „chromatic aberration” przy kamerze renderera nie modeluje szkła — jest efektem doklejonym do wyniku, i wypada lepiej wtedy, gdy zrobi się go świadomie w compie. Rozstrzyga to następny rozdział.
Skoro prawa kolumna tabeli musi zostać dołożona, zostaje pytanie, gdzie ją dołożyć. Część rzeczy da się policzyć w rendererze, część w compie, a wybór nie jest kwestią gustu — następny rozdział pokazuje, że decyduje jedna rzecz: czy zjawisko potrzebuje informacji, której obraz płaski już nie ma.
Włączenie modelu cienkiej soczewki potrafi wydłużyć render kilkakrotnie, mimo że dokłada tylko jedną operację: losowanie punktu startu na krążku źrenicy. Przyczyna jest statystyczna, nie obliczeniowa.
W kamerze otworkowej wszystkie promienie pierwotne z danego piksela biegną prawie tak samo i trafiają w to samo miejsce sceny. Ich wyniki są do siebie podobne, więc średnia ustala się po kilku próbkach. W modelu soczewki promienie z jednego piksela rozchodzą się po całym stożku i mogą trafić w zupełnie różne przedmioty — jeden w jasne niebo, drugi w ciemną gałąź. Wariancja tej próby jest ogromna, a szum maleje jak pierwiastek z liczby próbek.
Stąd reguła orientacyjna: koszt rośnie z kwadratem średnicy krążka rozmycia. Podwojenie średnicy — czyli otwarcie o dwie działki — wymaga mniej więcej czterokrotnie więcej próbek dla tego samego poziomu szumu.
Wynika stąd praktyczna kolejność decyzji. Jeśli rozmycie jest duże i tło mocno nieostre, tańsze bywa wyrenderowanie sceny ostro i rozmycie jej w compie z mapy głębi — pod warunkiem że scena nie ma przenikających się planów, bo wtedy płaski obraz nie ma już potrzebnej informacji. Granicę tę wyznacza Rozdział 34, a szczegóły pracy z mapą głębi — Dodatek U.
Warto też pamiętać o rzeczy odwrotnej: przy małym rozmyciu głębia z rendera jest tania. Krążek o średnicy kilku pikseli nie zwiększa wariancji znacząco, a daje wynik dokładny w każdym miejscu sceny — łącznie z krawędziami, przenikaniem i przezroczystościami, gdzie comp z mapy głębi zawodzi. Poniżej mniej więcej dziesięciu pikseli renderowanie głębi wprost jest zwykle prostsze niż jej odtwarzanie.