Dodatek UWarstwa · CGPoziom · głębiejEXT OF · R.35
Dodatek U / Głębiej

Z-depth i deep w praktyce

Kalibracja znormalizowanej mapy do metrów, pułapki filtrowania kanału Z, kiedy deep jest jedynym wyjściem i ile kosztuje.

Co tu jest
Cztery Z · to samo słowo, cztery znaczenia

Co dokładnie jest w tym kanale

Zanim cokolwiek policzy się z mapy głębi, trzeba wiedzieć, którą wielkość ona zawiera. Cztery bywają nazywane tak samo, a różnią się na tyle, że pomylenie ich daje rozmycie błędne w całym kadrze.

WariantCo mierzyRozpoznasz po
odległość wzdłuż osiskładowa Z w układzie kamerypłaska ściana prostopadła do osi ma jedną wartość
odległość euklidesowadługość promienia od źrenicyta sama ściana jaśnieje ku rogom kadru
głębia znormalizowanawartość 0–1 między płaszczyznami obcięciazakres dokładnie 0–1, nieliniowo rozłożony
odwrotność odległości1/Ztło ma wartości bliskie zeru, nie ogromne

Test rozpoznawczy zajmuje sekundę: wystaw w scenie płaską ścianę prostopadłą do osi i sprawdź, czy jest jednolita.

Różnica między dwoma pierwszymi wariantami rośnie z kątem polowym i jest większa, niż podpowiada intuicja. Punkt leżący w rogu kadru przy kącie polowym θ ma odległość euklidesową większą o czynnik 1/cos θ — czyli przy 24 mm na pełnej klatce, gdzie kąt rogu wynosi 42°, aż o 35 procent.

Do rozmycia potrzebna jest odległość wzdłuż osi, bo to ona wchodzi we wzór na krążek. Użycie euklidesowej daje rozmycie rosnące ku rogom kadru w sposób, którego żaden obiektyw nie robi — a objaw jest łatwy do pomylenia z winietowaniem albo z krzywizną pola.

Rachunek · z odległości na piksele

Krążek rozmycia z mapy

Wzór jest ten sam, co w Dodatku E, tylko rozwiązany w drugą stronę: zamiast pytać, jaka głębia mieści się w dopuszczalnym krążku, pytamy, jaki krążek daje dana odległość.

c = D · f · |z − s| / (z · (s − f)) c — średnica krążka na matrycy, w tych samych jednostkach co f. D = f/N — średnica źrenicy. z — odległość punktu, s — odległość ostrzenia. Wszystkie odległości od źrenicy.

Na piksele przelicza się przez stosunek szerokości kadru w pikselach do szerokości bramki:

cpx = c · W / w Ten sam przelicznik, co w Dodatku R przy rozmyciu ruchu. Warto go policzyć raz na ujęcie i zapisać — wraca w każdym rachunku tego typu.
Rachunek · tło przy portretowej ogniskowej
Danef = 85 mm, T/2,0, ostrość na 3 m, tło na 12 m, S35 24,89 mm, 4096 px
ŹrenicaD = 85/2,0 = 42,5 mm
Licznik42,5 · 85 · |12000 − 3000| = 42,5 · 85 · 9000 = 32 512 500
Mianownik12000 · (3000 − 85) = 12000 · 2915 = 34 980 000
Krążek32 512 500 / 34 980 000 = 0,9295 mm
Na piksele0,9295 · (4096/24,89) = 153 px
Punktowe światło w tle rozlewa się na 153 piksele średnicy — ponad trzy i pół procent szerokości kadru.
Kontrola przez odwrócenie: przy krążku dopuszczalnym 0,025 mm ten sam układ ma granice ostrości na 2,941 i 3,062 m, czyli głębię 12,1 cm. Tło na dwunastu metrach leży zatem prawie sto razy dalej niż tylna granica — a krążek 153 px jest tego liczbową miarą. Obie liczby wychodzą z tego samego wzoru, rozwiązanego w dwie strony.

Rachunek pokazuje przy okazji, dlaczego rozmycie z mapy głębi bywa kosztowne obliczeniowo: promień jądra splotu sięga tu osiemdziesięciu pikseli, a naiwny splot kosztuje kwadrat promienia. Stąd biorą się przybliżenia stosowane w narzędziach — i stąd ich artefakty.

Awarie · cztery miejsca i cztery objawy

Gdzie mapa głębi kłamie

SytuacjaDlaczegoObjaw
krawędź na tle o innej odległościpiksel niesie mieszankę, mapa wybiera jednąostra obwódka albo halo
przezroczystośćprzez piksel widać dwie rzeczy narazszyba rozmywa się jak to, co za nią
ruchome rozmycie już w obraziemapa jest ostra, obraz nierozmyty przedmiot dostaje ostrą maskę rozmycia
przedmiot rozciągnięty w głąbrozmycie liczone na piksel, nie na powierzchnięskokowa zmiana rozmycia wzdłuż płaszczyzny

Pierwszy wiersz jest najczęstszy, drugi najbardziej nieusuwalny, trzeci najczęściej mylony z błędem trackingu.

Trzeci wiersz zasługuje na osobne omówienie, bo jego przyczyna jest inna niż pozostałych. Mapa głębi zapisuje się bez rozmycia ruchu — jest ostra, bo próbkowana w jednej chwili. Obraz kolorowy jest rozmyty. Nakładając jedną na drugą, dostajemy rozmycie głębi o ostrych granicach na przedmiocie, który tych granic nie ma.

Obejście jest proste i warto je znać: rozmycie głębi wykonuje się przed rozmyciem ruchu, na obu kanałach ostrych. Odpowiada to zresztą rzeczywistości, bo obiektyw rozmywa w głąb niezależnie od tego, co dzieje się w czasie, a nośnik całkuje dopiero potem. Jest to jeden z tych przypadków, gdzie właściwa kolejność w compie wynika wprost z kolejności w kamerze — temat Rozdziału 36.

Obejścia · co pomaga i na ile

Trzy sposoby ratowania krawędzi

Rozmywanie warstwami. Zamiast jednej mapy dla całej sceny, render zapisuje kilka warstw o rozłącznych zakresach głębi, każdą z własnym kryciem. Każdą rozmywa się osobno pełnym promieniem, a potem składa od tyłu do przodu. Rozwiązuje to pierwszy i czwarty wiersz tabeli, bo w obrębie warstwy krawędź ma prawidłowe krycie, a to, co za nią, istnieje w warstwie niżej.

Koszt: kilka razy więcej danych i konieczność ustalenia zakresów przy renderze. Zysk: wynik nie do odróżnienia od renderowanej głębi, jeśli warstw jest dość.

Głębia razem z kryciem. Rozmywa się element wraz z jego kanałem krycia, przed złożeniem z tłem. Krawędź elementu staje się wtedy miękka tak jak on sam, więc obwódka znika. Nie pomaga to tam, gdzie przedmiot przecina sam siebie na różnych odległościach — ale na granicy z tłem, czyli w większości ujęć, wystarcza.

Rozmycie kierunkowe od tyłu. Wariant, w którym piksele bliższe mają prawo rozlewać się na dalsze, ale nie odwrotnie. Odtwarza to zachowanie prawdziwego obiektywu, w którym nieostry pierwszy plan zachodzi na ostre tło, a nie na odwrót. Poprawia wygląd, nie usuwa braku danych.

Kiedy żaden nie pomoże? Gdy informacji nie ma i nie da się jej dorobić: przy elementach, w których krawędzi jest więcej niż wnętrza — włosy, dym, siatka, listowie pod światło. Wtedy obowiązuje reguła z Rozdziału 34 i głębię liczy się w rendererze. Jest to jedno z niewielu miejsc w tej książce, gdzie odpowiedź brzmi po prostu „tego nie da się zrobić taniej”.