首页 文章

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

提问于
浏览
1

我在我的 3D 项目中有一个摄像头,我正试图沿着 z-axis 平移到世界各地。相机位于(0.0,50.0,-75.0),目标为(0.0,1.0,0.0)。我只是想让相机从第一个位置移动到它的相反位置(0.0,50.0,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 中更新的移动物体,但相机本身不会移动。

1 回答

  • 1

    只是更新 per-frame 渲染函数中的_camPos.z将无法做到。您还必须更新视图矩阵。将_viewMatrix = glm::lookAt(_camPos, _target, _up);移动到渲染功能中,您可能会看到一些结果。

相关问题