Permite definir de forma específica
donde se va a situar la cámara, hacía donde mirará ésta y cuál será el orden de
los ejes de coordenadas.
Según sea el valor del
vector de vista hacia arriba el objeto que se visualizara tendrá un aspecto
diferente.En OpenGL lo tenemos fácil con:
gluLookAt(eyeX,
eyeY, eyeZ, atX, atY, atZ, upX, upY, upZ);
Esta es la función que
determina dónde y cómo está dispuesta la cámara. Cuidado que la posición de la
cámara no tiene nada que ver con el tipo de proyección que hayamos definidoPara
ello recordad siempre activar esta matriz antes de llamar a gluLookAt de esta
forma:
glMatrixMode(GL_MODELVIEW);
En cuanto a los parámetros
que demanda la función son los siguientes:
Coordenadas del
"eye". Es literalmente la posición XYZ dónde colocar la cámara dentro
del mundo.
Coordenadas del
"at". Es el valor XYZ del punto al que queremos que mire la cámara.
Un punto del mundo obviamente.
Coordenadas del vector
"up". Si, es un vector y no un punto. Con él regularemos la
orientación de la cámara. Este ha de ser el vector que "mira hacia
arriba" si entendemos que el vector que mira hacia adelante es el que va
del "eye" hasta el "at". Variando el "up"
variamos la orientación y sino mirad:
Si gluLookAt altera la matriz GL_MODELVIEW y esta es la que guarda el
estado de todo nuestro sistema en cuanto a transformaciones (recordad el
artículo anterior), mejor controlar la situación con los gl_push y gl_pop que
ya conoceis para no desmontarlo todo....y quizás tengais que limpiar la matriz
antes de tocar la cámara usando para ello una identidad.....pensad en ello un
poco...8)
No hay comentarios:
Publicar un comentario