Raytracing: ¿por qué las esferas de la imagen a continuación aparecen estiradas?


8

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Algún contexto. Arriba están el código y la imagen resultante en el libro Raytracing de Peter Shirley en el libro de un fin de semana. Como puede ver en el código, agrega algunas esferas. Y, sin embargo, en la imagen final hay 2 elipsoides uno al lado del otro. Simplemente no puedo entender por qué es así, no importa cuántas veces miré el código. ¿Alguien puede explicarme? Aquí está el enlace al código fuente. https://github.com/petershirley/raytracinginoneweekend


2
Esto parece normal y se debe a que la cámara de perspectiva está cerca de las esferas y tiene un valor FOV grande.
PaulHK

Por cierto, esto no es exclusivo del trazado de rayos.
Sebastian Mach

Respuestas:


16

Las formas que aparecen estiradas en la periferia son consecuencia de la proyección en perspectiva. Cuanto más amplio es el campo de visión (FOV), más fuerte se vuelve el efecto de estiramiento.

Para demostrar el efecto, escribí un ejemplo rápido en ShaderToy: https://www.shadertoy.com/view/MltBW2

Como puede ver en las imágenes a continuación (correspondientes al FOV de 40, 80 y 120; si no cometí ningún error), esto se vuelve especialmente notable con un FOV amplio, como 90 ° y más.

FOV 40 ° FOV 80 ° FOV 120 °


Buen ejemplo Sin embargo, podría ser útil tener algún tipo de textura (por ejemplo, una cuadrícula) en el plano de tierra; de lo contrario, es difícil distinguir entre cambiar el ángulo de visión y simplemente mover la cámara. (Ver también: dolly zoom .)
Ilmari Karonen

1
También se debe tener en cuenta que este efecto generalmente ocurre con un FOV alto en relación con la distancia de los objetos desde la cámara. Parece antinatural porque generalmente no ves objetos desde tan cerca de tus ojos. Al menos, no sin volver rápidamente los ojos.
Nicol Bolas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.