相机不会移动,但坐标正在更新

Camera wont move, but coordinates are updating

本文关键字:坐标 更新 移动 相机      更新时间:2023-10-16

我的3D项目中有一台相机,我正试图沿着z轴在世界上平移。相机定位在(0.0,50.0,-75.0(,目标为(0.0,1.0,0.0(。我只是想让相机从第一个位置移动到(0.0,50.00,75.0(的对面。

在我的构造函数中,我初始化了相机的位置、目标和向上向量。

_camPos = glm::vec3(0.0f, 50.0f, -75.0f);
_target = glm::vec3(0.0f, 1.0f, 0.0f);
_up     = glm::vec3(0.0f, 1.0f, 0.0f);

在我的OnInit函数中:

_viewMatrix = glm::lookAt(_camPos, _target, _up); // glm::mat4 _viewMatrix

在我的OnRender函数中:

_camPos.z += 0.05f;

摄影机的位置会更新,但从视觉上看,摄影机会保持在同一位置。我的场景中确实有正在OnRender中更新的移动对象,但摄影机本身不会移动。

仅在每帧渲染函数中更新_camPos.z不会有任何作用。您还必须更新视图矩阵。将_viewMatrix = glm::lookAt(_camPos, _target, _up);移动到渲染函数中,您可能会看到一些结果。