2011-05-07 24 views
5

He estado intentando utilizar gluLookAt pero he encontrado algunos problemas ... el primero es cuál es la posición predeterminada de la cámara, cada vez que intento usarla, toda mi escena parece girar hacia los lados y hasta .... mi segunda pregunta es ... por lo que he leído es gluLookAt (Posx, Posy, PosZ, yaw, cabeceo, balanceo, luego tres vectores ascendentes)C++ OpenGL gluLookAt ayuda

pero qué orden es yaw cabeceo y balanceo supongo que debe estar adentro?

Resuelto
la posición predeterminada de la cámara es en gluLookAt (0, 0, 0, 0, 0, -1, 0, 1, 0); Gracias Drew por toda su ayuda: D

Respuesta

4

Parece que ha recibido alguna información incorrecta sobre los argumentos de gluLookAt(). Desde el OpenGL 2.1 online documentation, los argumentos deben ser las siguientes:

eyeX, eyeY, eyeZ: 
    World coordinates of camera location 

centerX, centerY, centerZ: 
    World coordinates of camera aimpoint (what it's looking at). 
    This point will be in the center of the resulting image, assuming 
    that it lies between the near & far clip planes. 

upX, upY, upZ: 
    A vector (preferrably orthogonal to the line of sight) that specifies the 
    roll orientation of the camera (that is, which way is "up" in the image). 

Como se puede ver, no hay ninguna mención explícita de cabeceo, balanceo, o de guiñada.

También, de forma predeterminada, la cámara está en (0, 0, -1) si recuerdo correctamente, pero no importa ya que casi siempre se llamará a gluLookAt con la matriz de vista de modelo establecida en la identidad.

+0

ahhh -1 ... pero ¿qué se entiende por centro? lo siento, soy realmente nuevo en openGL –

+0

@ | Phantasm |: Traté de aclarar eso. Es el punto en el que la cámara está mirando. centro - ojo es por lo tanto el vector de línea de visión. –

+0

No hay cámara en OpenGL. Período. Y sin cámara en OpenGL, no hay una posición predeterminada de la cámara (0,0, -1). Lo que realmente ocurre es que tienes una matriz que transforma coordenadas en el espacio mundial, llamada vista de modelo. Cualquier movimiento de una cámara también se puede ver como un movimiento opuesto del mundo entero. gluLookAt aplicó una transformación tan opuesta en la vista de modelo actual. Por lo tanto, en general, primero se restablece la vista de modelo a la identidad, que colocaría cualquier tipo de cámara en ** origen ** (0,0,0). – datenwolf