【问题标题】:Why use glm::LookAt in OpenGL?为什么在 OpenGL 中使用 glm::LookAt?
【发布时间】:2018-12-30 04:54:06
【问题描述】:

在阅读了 OpenGL 中的坐标系之后,我想在世界各地移动相机,我只需要转换视图坐标。如果我说使用view = glm::translate(view, glm::vec3(0, 0, -50));,我将相机向后平移 50 个单位(通过将世界向前平移 50 个单位)。在我想通了之后,我遇到了 LookAt 函数。我不明白为什么我需要使用这个功能,如果我可以通过平移和旋转视图来移动我的相机。整个事情有点难以理解,所以如果这没有多大意义,我很抱歉!

【问题讨论】:

  • 谁说你需要使用它?您的问题似乎有人在问他们为什么需要使用std::sort,因为他们可以自己实现快速排序。为什么你认为“我只是可以通过平移和旋转视图来移动我的相机”并不是这个函数真正的作用?
  • Nico 是对的,如果您不想使用它,则不需要使用它...我在 OpenGL 中编码多年,但仍然从未使用过LookAt,不是 GLU 也不是 GLM 版本...事实上,我从未使用过 GLM(因为我自己的数学比 GLM 更早,并且更好地满足了我的需求)而且我从 GLU 使用的唯一东西是gluPerspective,最近甚至没有……LookAt 函数通常是新手将其用作他们不了解矩阵数学的人的捷径,从而阻止他们以后简单地实现高级相机的东西...
  • totally agree 与您同在,lookAt 被过度使用,并且通常可以通过组合旋转和平移来更好地表达。

标签: opengl coordinate-transformation glulookat


【解决方案1】:

glm::LookAtmat4x4_look_at 的linmath.h 或gluLookAt 等等,都是为了您(= 程序员)的方便。就是这样。

如果你想用不同的方法来设置模型视图变换的视图部分,因为它更适合你,那么你一定要那个

【讨论】:

    猜你喜欢
    • 2018-12-20
    • 2014-03-16
    • 1970-01-01
    • 2013-12-22
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多