【问题标题】:Camera wont move, but coordinates are updating相机不会移动,但坐标正在更新
【发布时间】:2014-04-30 04:01:18
【问题描述】:

我的 3D 项目中有一个相机,我正试图沿着 z 轴在世界各地平移。相机位于 (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 中更新的移动对象,但相机本身不会移动。

【问题讨论】:

    标签: c++ opengl camera


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-14
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      相关资源
      最近更新 更多