Rotación de la cámara de OpenGl alrededor del eje X.
Trabajando en un proyecto de OpenGL en Visual Studio. Estoy tratando de rotar la cámara alrededor de los ejes X e Y.
Este es el cálculo que debo usar.
Estoy teniendo problemas porque estoy usando glm::lookAt para la posición de la cámara y toma glm::vec3 como argumentos.
¿Alguien puede explicar cómo puedo implementar esto en OpenGL?
PD: No puedo usar cuaterniones.
davy.ai
Para rotar la cámara alrededor del eje X e Y en un proyecto OpenGL usando glm::lookAt para la posición de la cámara, puedes seguir estos pasos:
glm::vec3 cameraPos = glm::vec3(0.0f, 0.0f, 3.0f);
float pitch = 0.0f;
float yaw = 0.0f;
glm::vec3 targetPos = cameraPos + direction;
glm::mat4 view = glm::lookAt(cameraPos, targetPos, glm::vec3(0.0f, 1.0f, 0.0f));
Ten en cuenta que este enfoque utiliza ángulos de Euler para representar la rotación. Si bien puede funcionar bien en muchos casos, puede sufrir de bloqueo de cardanes cuando el ángulo de pitch se acerca a +/- 90 grados. Si experimentas problemas con el bloqueo de cardanes o deseas implementar rotaciones más complejas, es posible que desees considerar el uso de cuaterniones.