我目前有一个水晶球接口相机设置,相机总是看着原点,然后按左、右、上、下键简单地围绕对象移动。
我想改变这一点,以便相机可以在 3D 环境中自由移动。
我目前有两个功能,LEFT 和 UP,它们已作为我提到的 CB 接口实现。
我希望左右键向左/向右扫射,而向上/向下则用于升降相机。我将如何改变它?
另外..向前和向后移动相机的正确方法是什么?我在想也许拖动鼠标可能等同于向前/向后移动?
void Transform::left(float degrees, vec3& eye, vec3& up) {
eye = eye*rotate(degrees, up);
}
void Transform::up(float degrees, vec3& eye, vec3& up) {
vec3 ortho_axis = glm::cross(eye, up);
ortho_axis = glm::normalize(ortho_axis);
eye = eye*rotate(degrees, ortho_axis);
up = up*rotate(degrees, ortho_axis);
}