Jak wdrażana jest głębia ostrości?

10

Wiem, że głębia ostrości obejmuje rozmycie.

Jest kilka świetnych informacji o tym, jak zrobić rozmycie gaussowskie w pytaniu Jak realizuje się rozmycie gaussowskie?

Ale poza tym, w jaki sposób wdrażana jest głębia ostrości?

Jakie są zasady dotyczące rozmycia każdego piksela i jak sobie radzić z przypadkiem, gdy istnieje piksel, który chce dużo rozmazać obok piksela, który nie chce tak często rozmycia?

Słyszałem również o „kręgu zamieszania”, ale nie mam pojęcia, co to jest.

Czy ktoś może wyjaśnić DOF w prosty, łatwy do zrozumienia sposób?

Alan Wolfe
źródło

Odpowiedzi:

20

Głębia ostrości jest charakterystyczna dla ustawienia obiektywu kamery, chociaż nazwa „Głębia ostrości” jest powszechnie używana do opisania efektu wywołanego przez taką charakterystykę.

Obiektywy aparatu mogą idealnie skupić się tylko na jednym punkcie, ale istnieje odległość, dla której obraz będzie nadal wyglądał dość ostro. Taką odległością jest właściwie głębia ostrości. Odległość ta jest zmienna w zależności od różnych czynników, ale dla zwięzłości powiedzmy, że najłatwiej jest ją zmienić, zmieniając przysłonę aparatu.

wprowadź opis zdjęcia tutaj

Jeśli chodzi o krąg zamieszania, pomocne jest obejrzenie zdjęcia z wikipedii:

wprowadź opis zdjęcia tutaj

We wszystkich trzech przypadkach pojedynczy punkt jest „rzutowany” na naszą płaszczyznę obrazu, ale jak widać, znajduje się on w różnych odległościach od obiektywu.

Zasadniczo, ponieważ, jak powiedziałem, nie wszystko jest idealnie ostre (to znaczy punkt centralny znajduje się na płaszczyźnie obrazu), punkt można rzutować na naszą płaszczyznę obrazu nie na pojedynczy punkt, ale na obszar. Jest to, jak widać na zdjęciu, ponieważ punkt centralny znajduje się przed lub za płaszczyzną obrazu. To „koło”, które powstaje na płaszczyźnie obrazu, nazywane jest kołem zamieszania.

Teraz powinno być jasne, że zmieniając głębię pola, zmieniasz rozmiar CoC, dlatego może być stosowany jako miara samej DOF i intuicyjny, gdy myślisz o rozmyciu.

Jeśli chodzi o sposób implementacji w renderowaniu, istnieje naprawdę wiele metod. Zwykle w grach odbywa się to jako proces końcowy z wykorzystaniem informacji o głębokości, aby podzielić scenę na różne „płaszczyzny”; na przykład płaszczyzna ostrości, która nie musi być zamazana, płaszczyzna bliska i płaszczyzna daleka / tła, które muszą zostać zamazane. Po rozmyciu płaszczyzn możesz połączyć je ponownie, aby uzyskać ostateczny obraz. To, jak bardzo zamazujesz różne płaszczyzny, zależy od efektu, jaki chcesz osiągnąć. Zaawansowany system zwykle implementuje ten i inne efekty „soczewek” przy użyciu odpowiednich parametrów pochodzących ze świata fotografii, takich jak przysłona.

Zauważ, że istnieje wiele sposobów na wdrożenie tego efektu, ten, który opisałem, jest tylko jednym ze sposobów, który ma również odmiany (na przykład wykonanie całej rzeczy w niższej rozdzielczości). Limit zależy od tego, jaki jest twój cel i ile budżetujesz na ten efekt. Możesz przejść od przyjęcia metody „3 płaszczyzn” przy bardzo niskiej rozdzielczości do obliczenia kręgu pomieszania dla każdego piksela i zastosowania wynikowego rozmycia ad-hoc na tym pikselu.


EDYCJA: Komentarz od @NathanReed musi być bardziej widoczny jako część odpowiedzi:

Wpisy na blogu Matt Pettineo How To Fake Bokeh i Bokeh II: The Sequel to świetne wprowadzenie do praktycznego wdrażania post-processingu DoF i adresowania typowych artefaktów, które z niego otrzymujesz.

CIFZ
źródło
1
Tanim sposobem jest po prostu użycie rozmycia gaussowskiego na ostatniej scenie i przechowanie dwóch z nich. Jeden dla pierwszego planu i jeden dla tła. Mogą mieć ten sam lub inny poziom rozmycia i to zależy od Ciebie. Po zakończeniu rozmycia, po prostu przeciągnij od głębokości 0 do pewnej określonej (i dostrajającej) głębokości (powiedz 0.10). To, czego się uczysz, to rozmyta scena z idealnie skupioną sceną. W przypadku rozmycia tła możesz po prostu zrobić to samo, z wyjątkiem rozmycia od doskonałej ostrości do zamazanego obrazu. Pozostaw trochę miejsca dla środka, aby stworzyć idealnie skupiony obszar.
ChaoSXDemon