【问题标题】:Camera Pitch/Yaw to Direction Vector相机俯仰/偏航到方向矢量
【发布时间】:2012-05-21 03:07:49
【问题描述】:

我想做的是从我的相机投射光线。我知道相机的 x、y 和 z 坐标,以及它的俯仰和偏航角。我需要计算它的方向向量,以便将其传递给我的光线追踪算法。

相机的向上向量是 (0, 1, 0)。 “俯仰”,从相机的角度来看,是上下看。

(我宁愿不使用矩阵,但如果必须,我会使用)

【问题讨论】:

  • 为什么反对矩阵?这对我来说似乎是最合乎逻辑的方式。太混乱,太贵?如果你不做矩阵,你只需要使用大量的三角函数来设计它,这最终会做同样的事情。

标签: java lwjgl raytracing ray-picking


【解决方案1】:

假设您的坐标系设置为满足以下条件:

(pitch, yaw)  -> (x, y, z)
(0,     0)    -> (1, 0, 0)
(pi/2,  0)    -> (0, 1, 0)
(0,    -pi/2) -> (0, 0, 1)

这将计算 (x, y, z):

xzLen = cos(pitch)
x = xzLen * cos(yaw)
y = sin(pitch)
z = xzLen * sin(-yaw)

【讨论】:

  • 太棒了,这对我帮助很大:D
  • @Neil Forrester,xzlen 是什么意思?我在哪里可以找到公式的数学推导?
  • xzLen 是单位向量在将其投影到包含 x 和 z 轴的平面后在所需方向上的长度。该公式直接来自 sin() 和 cos() 的定义。
猜你喜欢
  • 1970-01-01
  • 2016-10-07
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
相关资源
最近更新 更多