2011-11-21 48 views
0

我试图从屏幕中心投射光线并检查与物体的碰撞。Ray采摘 - 从俯仰和偏航获取方向

渲染时,我的使用这些功能设置摄像机:

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

我回答了一个问题,不像你刚才的问题。所以我建议你阅读这个:3d coordinate from point and angles

这也适用于你的问题,只是你不想只是一个点,而是射线。那么,请记住,一个点可以假设一个位移从原产向量和光线被定义为

r(t) = v*t + s 

在你的情况,s是摄像头的位置,v是相对于相机的一个点位置。你计算其余的(或问,如果事情还不清楚)。

相关问题