gpt4 book ai didi

opengl - glm::lookAt 返回具有 nan 元素的矩阵

转载 作者:行者123 更新时间:2023-12-02 07:12:09 26 4
gpt4 key购买 nike

我想为垂直观察地面的相机创建一个 View 矩阵:

glm::mat4 matrix = glm::lookAt(glm::vec3(0.0f, 1.0f, 0.0f), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 1.0f, 0.0f));

最后一个参数是全局向上向量,因此一切似乎都是正确的,但我得到以下矩阵:

-nan    -nan    -0  0   
-nan -nan 1 0
-nan -nan -0 0
nan nan -1 1

我猜我得到了 nan,因为查看向量与向上向量平行,但是如何使用 glm::lookAt 函数构建正确的 View 矩阵。

最佳答案

问题出在相机的位置或向上向量上。

您的相机向上 1 个单位 (0,1,0),俯视原点 (0,0,0)。向上向量表示相机的向上方向,而不是世界空间。例如,如果您向前看,则向上向量将为+Y。如果您向下看,头顶面向 +X,则向上向量对您来说就是 +X。它必须与相机的位置向量完全不平行。

解决方案:

  • 将向上向量更改为沿 XZ 平面的任何向量
  • 或者投影到 XZ 平面时不是 (0,0,0) 的物体
  • 移动相机,使其位于 Y 轴以外的任意位置

关于opengl - glm::lookAt 返回具有 nan 元素的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com