【问题标题】:Good Practices for updating camera matrix更新相机矩阵的良好做法
【发布时间】:2013-05-05 23:58:39
【问题描述】:

我现在正在学习 OpenGL,特别是如何移动相机。如果我想改变我的相机矩阵,例如,如果用户使用 WASD 翻译它,我可以通过两种主要方式来做到这一点:

  1. 将相机矩阵预乘以新的平移矩阵。
  2. 管理相机的一组属性,例如位置、视角、向上矢量,修改这些属性,并根据这些属性重新计算相机矩阵。

哪些被认为更好?我觉得第一个会引入漂移,第二个需要更多的计算,但我对这两者的了解不够。

【问题讨论】:

    标签: opengl camera


    【解决方案1】:

    对相机建模的最简单方法之一是使用“lookAt”系统。基本上你记得camera_poscamera_target,可选camera_up向量。然后你使用旧的gluLookAt 或像glm::lookAt 这样的现代方式构建最终矩阵。

    这样更容易对相机及其参数进行建模。

    这里有一些链接:

    不要太看重性能成本。首先学习一些东西,构建它......然后在需要时进行优化。

    【讨论】:

    • 是的,它确实属于“过早的优化”,但由于我最终会经常这样做,而且以前有很多人这样做过,所以我认为早点问是有意义的。无论如何,谢谢!
    • '过早优化'不仅仅是你的问题 :)
    • 不要花太多时间担心计算时间。让它工作并在需要时进行优化。我非常怀疑,只要您不开始每帧重新计算一万次,它就会成为一个问题。计算一次......并将其传递给您的着色器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多