No se puede obtener de guiñada, cabeceo y balanceo de un vector de dirección que el vector de dirección única le dirá qué dirección mirar en (guiñada y cabeceo)
Para obtener la guiñada y cabeceo utiliza la trigonometría - Asumo que tener algunos conocimientos prácticos. Consulte this wiki page para obtener algunos diagramas útiles para visualizar los ángulos.
Dejando Y = yaw, P = pitch.
En primer lugar para obtener de guiñada que desee:
tan(Y) = x/(-y)
Ahora para conseguir terreno de juego:
tan(P) = sqrt(x^2 + y^2)/z
Para obtener los valores reales de Y y P tendrá que utilizar inversa bronceado, I' lo escribí arriba usando bronceado para hacer la derivación más clara.
Tenga en cuenta que los signos menos dependen de cómo defina sus ángulos y ejes, pero debe tener la idea.
A continuación, puede establecer que el rollo sea 0 o lo que desee.
Gracias por la pista. Acabo de empezar a usar OpenGL y no sabía acerca de esta función. Lo solucioné usando esto. – Jack
Esta es una buena respuesta, pero solo es práctica para un subconjunto de las plataformas comunes que proporcionan GLU (p. Ej., No necesariamente plataformas OpenGL ES) – jheriko