1 votos

¿Deben/deben curvarse las líneas paralelas cuando se renderizan con perspectiva?

Los cálculos sencillos de perspectiva utilizados en la representación de puntos 3D en una pantalla 2D consisten en dividir las coordenadas relativas a la cámara por la distancia a la misma y multiplicarlas por un parámetro de campo de visión, como se describe aquí: http://en.wikipedia.org/wiki/Perspective_transform#Perspective_projection

Entonces, si tengo un conjunto de largas líneas horizontales paralelas, como si estuviera mirando a través de un enorme tablero de ajedrez, ¿no deberían las líneas tomar una ligera curva en la salida renderizada en 2D, ya que las líneas están más cerca de la cámara en el centro que en los extremos?

No veo que esto ocurra en el renderizado 3D real, así que me preguntaba si tengo un error en mis matemáticas, o si simplemente es el caso de que el efecto es tan pequeño que no se nota.

2voto

theog Puntos 585

Tu interpretación de las matemáticas es ligeramente errónea. En la proyección en perspectiva, se divide la relación de la cámara $x$ - y $y$ -coordenadas por la cámara-relativa $z$ -coordenada, no por la distancia completa $\sqrt{x^2+y^2+z^2}$ . Esto tiene la agradable propiedad de que todas las líneas rectas en 3D se proyectan en líneas rectas en el plano de la imagen. Si se mira directamente un tablero de ajedrez, por ejemplo, todo tiene la misma $z$ -y así todas las líneas siguen apareciendo como rectas y paralelas.

Allí son otras formas de proyectar una escena 3D en el plano de la imagen 2D, y en algunas de ellas, las líneas rectas se curvan. Pero la proyección en perspectiva estándar es la más utilizada en los gráficos 3D, y una de las razones es precisamente que preserva las líneas rectas. Así que si quieres renderizar un polígono flotando en algún lugar del espacio 3, no tienes que dibujar una cosa curvada rara, simplemente proyectas sus vértices y los conectas con segmentos de líneas rectas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X