Jak zbudować porządny model obiektywu / obiektywu do śledzenia ścieżki?

13

Napisałem mały znacznik ścieżki po nauce i eksperymentowaniu na smallpt .

Jedyne, czego sam nie napisałem (i nie zrozumiałem), to sposób obliczania i wystrzeliwania promieni początkowych z kamery. Mam tę zasadę, ale szukam zasobów opisujących, jak:

  • Oblicz początkowy kierunek promieni
  • Modelujesz prawdziwy obiektyw (w przeciwieństwie do aparatu otworkowego), rzekomo pozwalając na efekty takie jak głębia ostrości?

Najnowocześniejsza matematyka i fizyka nie są wymagane, ale OK, jeśli zostaną dokładnie wyjaśnione.

internety wykonane są z Catz
źródło

Odpowiedzi:

13

Kolejnym krokiem w górę od modelu z otworem na aparat jest model z cienkimi obiektywami , w którym modelujemy obiektyw jako nieskończenie cienki dysk. Jest to wciąż idealizacja, która jest dość daleka od modelowania prawdziwej kamery, ale da ci podstawowe efekty głębi ostrości.

Model z cienkimi soczewkami

Zdjęcie powyżej, z panohelp.com , pokazuje podstawową ideę. Dla każdego punktu na obrazie do tego punktu obrazu dociera wiele promieni przez każdy punkt na powierzchni soczewki 2D. Dlatego generowanie takiego obrazu za pomocą Monte Carlo będzie wymagało pobrania dla każdego promienia zarówno punktu próbki 2D na płaszczyźnie obrazu, jak i niezależnego punktu próbki 2D na powierzchni soczewki.

Ustawianymi przez użytkownika parametrami będzie promień obiektywu (jako fizyczny promień w jednostkach sceny), który kontroluje, jak płytki jest zakres ostrości (większy obiektyw = płytki zakres ostrości) i odległość, na którą mają znajdować się obiekty skupiać.

Aby wygenerować promienie oka na scenie, możesz obliczyć położenie i kierunek promieni opuszczających powierzchnię soczewki; w tym modelu nie ma potrzeby jawnej symulacji płaszczyzny obrazu i załamania światła przez obiektyw. Zasadniczo pomyśl o soczewce wyśrodkowanej w pozycji kamery i skierowanej w stronę kamery.

Na podstawie położenia obrazu skonstruuj promień z pozycji kamery (środek obiektywu) w scenę, tak jak w przypadku modelu z otworem; następnie znajdź jego przecięcie z płaszczyzną ogniskowej. Właśnie tam wszystkie promienie z tej lokalizacji obrazu powinny się zbiegać. Teraz możesz przesunąć punkt początkowy promienia do losowo wybranego punktu na soczewce i ustawić jego kierunek w stronę punktu zbieżności.

Możesz to trochę uogólnić, pozwalając płaszczyźnie ogniskowej być czymś innym niż płaszczyzna, lub soczewce czymś innym niż okrągły dysk i postępując zgodnie z tym samym procesem. Może to wywołać ciekawe, choć nie całkiem fizyczne efekty. Możliwe jest również wyjście poza ten prosty model z bardziej realistyczną fizycznie symulacją elementów obiektywu aparatu - ale to jest poza moim doświadczeniem.

Nathan Reed
źródło
4

Patrz Kolb i in., A Realistic Camera Model for Graphics Computer , SIGGRAPH 95.

Pamiętaj jednak, że modele kamer, które naśladują rzeczywiste kamery, niekoniecznie są tym, czego potrzebujesz w fazie renderowania. W scenariuszu efektów wizualnych / postprodukcji, im więcej rozmycia / winietowania / zniekształceń wprowadza model aparatu, tym gorzej dla kompozytora / timera kolorów. Często lepiej jest to zrobić jako post-pass.

Pseudonim
źródło