Trochę kontekstu. Powyżej znajduje się kod i obraz wynikowy w Raytracing Petera Shirleya w książce z jednego weekendu. Jak widać z kodu, dodaje kilka sfer. A jednak na ostatecznym zdjęciu są obok siebie 2 elipsoidy. Nie mogę pojąć, dlaczego tak jest, bez względu na to, ile razy patrzyłem na kod. Czy ktoś może mi wyjaśnić? Oto link do kodu źródłowego. https://github.com/petershirley/raytracinginoneweekend
raytracing
Manh Nguyen
źródło
źródło
Odpowiedzi:
Pojawiające się na obrzeżach kształty są konsekwencją rzutowania perspektywicznego. Im szersze pole widzenia (FOV), tym silniejszy efekt rozciągania.
Aby zademonstrować efekt, napisałem szybki przykład na ShaderToy: https://www.shadertoy.com/view/MltBW2
Jak widać na poniższych zdjęciach (odpowiadających FOV 40, 80 i 120; jeśli się nie pomyliłem), staje się to szczególnie zauważalne przy szerokich FOV, takich jak 90 ° i więcej.
źródło