Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Lord Trancos 2 en 03 de Marzo de 2005, 12:00:28 AM

Título: De Matrices A Vectores Up, Left Y Dir
Publicado por: Lord Trancos 2 en 03 de Marzo de 2005, 12:00:28 AM
 Una pregunta rapidilla; ¿Como puedo obtener los vectores up, left y dir, a partir de una matriz de OpenGL?
Título: De Matrices A Vectores Up, Left Y Dir
Publicado por: BeRSeRKeR en 03 de Marzo de 2005, 05:24:47 AM
 Pues supongo que será como en Direct3D salvo que en OpenGL, si no me equivoco, las matrices son column-major, por lo que las bases de un objeto con una matriz de transformación T serían (en teoría :D):

right = vec3(T[0], T[1], T[2])
up = vec3(T[4], T[5], T[6])
look = vec3(T[8], T[9], T[10])

Si es la matriz de vista (la cámara), entonces es al revés (la traspuesta).

Saludos.
Título: De Matrices A Vectores Up, Left Y Dir
Publicado por: _Grey en 03 de Marzo de 2005, 11:18:46 AM
 Lo que voy a decir es de memoria, y puede que me equivoque por no tener tanta carrera como vosotros, si es asi corregirme, pero me pareceria interesante decir algo sobre las matrizes.

En algunos libros puedes aprender a "ver" las matrizes como algo mas que una tabla bisimensional de numeros, estos representan el espacio de coordenadas por el que se trasformaran los vectores, y en realidad son un grupo de vertices que representan ese espacio de coordenadas. puedes sacar el vector que indica la direccion de x en la primera fila, la de y en la segunda ,y la de z en la tercera.

Como ves no es casualidad que la matriz identidad sea:


Matriz3x3
100  
010
001


Matriz4x4
1000  
0100
0010
0001
Título: De Matrices A Vectores Up, Left Y Dir
Publicado por: _Grey en 03 de Marzo de 2005, 12:47:14 PM
 [EDIT]

Importante!

Si no voy mal OGL usa vectores columna y no vectores fila, asi que tendras que leer las columnas de la matriz y no sus filas, primera columna X, seguna Y, tercera Z.

Ya nos contaras si hay mas! chao!!.