射线挑选 - 从俯仰和偏航获得方向

时间:2011-11-21 04:29:54

标签: opengl lwjgl raytracing picking

我试图从屏幕中心投射光线并检查与物体的碰撞。

渲染时,我使用这些调用来设置相机:

GL11.glRotated(mPitch, 1, 0, 0);
GL11.glRotated(mYaw, 0, 1, 0);
GL11.glTranslated(mPositionX, mPositionY, mPositionZ);

然而,我在创建光线时遇到了麻烦。这是我到目前为止的代码:

ray.origin = new Vector(mPositionX, mPositionY, mPositionZ);
ray.direction = new Vector(?, ?, ?);

我的问题是:我应该在问号点放些什么?即如何从俯仰和滚动创建光线方向?

1 个答案:

答案 0 :(得分:0)

我回答了一个与你最近的问题不同的问题。所以我建议您阅读:3d coordinate from point and angles

这同样适用于您的问题,只是您不仅需要一个点,而只需要一条光线。好吧,请记住,一个点可以假定为原点位移矢量,并且光线定义为

 r(t) = v*t + s

在您的情况下,s是相机位置,v是相对于相机位置的点。你想到其余部分(或问,如果事情仍然不清楚)。