0

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

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

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(?, ?, ?);

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

4

1 回答 1

0

我最近回答了一个与您的问题不同的问题。所以我建议你阅读这个:3d坐标来自点和角度

这也适用于你的问题,只是你不想要一个点,而是一个射线。好吧,请记住,可以假设一个点是原点位移向量,并且射线定义为

 r(t) = v*t + s

在您的情况下,s是相机位置,并且v是相对于相机位置的点。你计算其余的(或询问,如果事情仍然不清楚)。

于 2011-11-21T07:39:32.480 回答