Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





De Matrices A Vectores Up, Left Y Dir

Iniciado por Lord Trancos 2, 03 de Marzo de 2005, 12:00:28 AM

« anterior - próximo »

Lord Trancos 2

 Una pregunta rapidilla; ¿Como puedo obtener los vectores up, left y dir, a partir de una matriz de OpenGL?
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

BeRSeRKeR

 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.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

_Grey

 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

_Grey

 [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!!.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.