viernes, 16 de marzo de 2007

Matriz de Transformación
El orden es primero rotación (z a x) y luego traslación por -d, dado que mover la cámara es como mover el mundo en la dirección opuesta.
Otro método para generar la matriz de transformación y rotación consiste en calcular los vectores unitarios uvn y formar la matriz de rotación compuesta de manera directa. Dados los vectores N y V, se calculan estos vectores unitarios como
n = N / çN ç= ( n1, n2, n3 )
u= VxN / ç VxN ç= ( u1, u2, u3 )
v = nxu = ( v1, v2, v3 )
Este método también ajusta en forma automática la dirección de V de modo que v sea perpendicular a n.
La matriz de rotación compuesta para la transformación de vista es



que transforma u en el eje mundial de xw, v en el eje de yw y n en el eje de zw. Esta matriz lleva a cabo de manera automática la reflexión necesaria para transformar un sistema de vista de lado izquierdo en un sistema mundial de lado derecho.
La transformación completa de coordenadas mundiales a coordenadas de vista se obtiene como el producto de matriz

MVC ¬WC = R · T-1


glViewport(0, 0, width, height);

Esta función define la porción de ventana donde puede dibujar ogl. Los parámetros son x e y, esquina superior izquierda del "cuadro" donde puede dibujar (con
referencia la ventana), y ancho y alto. En este caso coje el width y height, que son los parámetros de reshape(), es decir, los datos que acaba de recibir por culpa
del reescalado de la ventana.

No hay comentarios: