2011-05-26 37 views
9

Estoy usando una API Lua. Intento transformar las coordenadas espaciales 3D en coordenadas espaciales 2D. Le pregunté a google pero no puedo encontrar nada aparte de los fragmentos que usan la función OpenGL. No necesito el código fuente ni nada de forma sencilla sobre cómo hacerlo. Puedo obtener la perspectiva de la cámara, la posición original que se va a transformar, el tamaño de la ventana y la relación de aspecto, si es de alguna ayuda. Gracias de antemano por cualquier sugerencia :)¿Cómo puedo convertir coordenadas espaciales 3D a coordenadas espaciales 2D?

+2

Para 2D ¿Coordenadas en qué espacio? – Bart

+0

Disculpa, quise escribir las coordenadas de ** pantalla **. – Conros

Respuesta

11

Si estamos hablando de la transformación del mundo en el espacio (x, y, z) las coordenadas de espacio de pantalla (u, v) las coordenadas, entonces el enfoque básico es:

u = x/z; 
v = y/z; 

Si la cámara no está en el origen, transforme (x, y, z) en la matriz de vista antes de la matriz de proyección. Es posible que también desee ajustar la perspectiva de la cámara, la relación de aspecto, etc., en cuyo caso me referiría al this Wikipedia article.

Mis disculpas si buscas algo específico de la API de Lua, con el que no estoy familiarizado.

+0

: D! Gracias, el diagrama en la wiki ha ayudado bastante. Debería haber pensado en verificar allí, jaja. – Conros

+0

Es importante tener en cuenta que esta no es una verdadera proyección en perspectiva sino una llamada "proyección en perspectiva débil", un híbrido de perspectiva ortográfica –

+0

Gracias por leer el artículo de la wiki Adrián. – Birdasaur

Cuestiones relacionadas