我试图从屏幕中心投射光线并检查与物体的碰撞。
渲染时,我使用这些调用来设置相机:
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(?, ?, ?);
我的问题是:我应该在问号点放些什么?即如何从俯仰和滚动创建光线方向?
答案 0 :(得分:0)
我回答了一个与你最近的问题不同的问题。所以我建议您阅读:3d coordinate from point and angles
这同样适用于您的问题,只是您不仅需要一个点,而只需要一条光线。好吧,请记住,一个点可以假定为原点位移矢量,并且光线定义为
r(t) = v*t + s
在您的情况下,s
是相机位置,v
是相对于相机位置的点。你想到其余部分(或问,如果事情仍然不清楚)。