gpt4 book ai didi

Java/C++ - 从相机偏航(航向)和俯仰(无滚动)获取 3d 线

转载 作者:搜寻专家 更新时间:2023-10-31 01:54:08 27 4
gpt4 key购买 nike

我知道执行此操作的四元数方法。但最终这些方法需要我们将所有相关对象转换到相机的旋转“空间”中。

但是,从数学角度来看,我确信一定有一种简单的方法可以仅基于摄像机的 YAW(航向)和 PITCH 来获得直线的 XY、YZ 和 XZ 方程。

例如,给定视锥体的法线,例如 (sqrt(2), sqrt(2), 0),您可以轻松地为 XY 平面构造直线 (x+y=0)。但是一旦Z(在这种情况下,Z用于深度,而不是GL的Y坐标置乱)发生变化,计算就会变得更加复杂。

此外,给定应用旋转的顺序:偏航、俯仰、滚动;滚动根本不影响视锥体的法线。

所以我的问题很简单。我如何从 3 坐标 View 法线(即归一化,即 vector 长度为 1)或偏航(以弧度为单位)、俯仰(以弧度为单位)对到一组映射方向的三个线方程穿越空间的“眼睛”?

注意:

四元数我在这方面取得了成功,但是对于模拟中的每个实体来说,数学太复杂了,无法进行视觉检查,而且必须检查所有可见对象,即使进行各种检查以减少可见对象的数量对象。

最佳答案

使用 popular methods 中的任何一个那里用于从偏航和俯仰构造矩阵来表示相机旋转。矩阵元素现在包含各种有用的信息。例如(当使用通常的表示时)第三列的前三个元素将指向 View vector (进入或离开相机,具体取决于您使用的约定)。第二列的前三个元素将相对于相机指向“上方”。等等。

但是,很难自信地回答您的问题,因为您说的很多事情对我来说都没有意义。例如,我不知道“一组通过空间映射'眼睛'方向的三个线方程”是什么意思。如上所述,视线方向仅由 vector 给出。

关于Java/C++ - 从相机偏航(航向)和俯仰(无滚动)获取 3d 线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10131094/

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