变换相机OpenGL

Transform camera OpenGL

本文关键字:OpenGL 相机 变换      更新时间:2023-10-16

如何在界面左侧变换相机?需要将"eye"矢量旋转到"up"矢量周围!?

void Transform::left(float degrees, vec3& eye, vec3& up) {
    float c = cosf(degrees * (pi / 180));
    float s = sinf(degrees * (pi / 180));
}
mat4 Transform::lookAt(vec3 eye, vec3 up) {
    glm::mat4 view = glm::lookAt(
        glm::vec3(eye.x, eye.y, eye.z),
        glm::vec3(0.0f, 0.0f, 0.0f),
        glm::vec3(up.x, up.y, up.z)
        );
    return view;
}

通过将旋转向量乘以原始的未旋转的眼睛向量来计算旋转的眼睛向量,并将其传递给lookAt函数。

float rotX = cosf(angle * (pi / 180));
float rotY = sinf(angle * (pi / 180));
glm::vec3 rotatedEye = glm::vec3(eye.x * rotX , eye.y * rotY, eye.z)
glam::mat4 view = lookAt(rotatedEye, up);

注意,每次你的相机矢量改变,你将需要计算一个新的视图矩阵。