2D到3D地图OpenGL

时间:2012-11-03 12:34:34

标签: opengl 3d 2d

我正在尝试制作一个简单的游戏引擎,但当我尝试将2D鼠标坐标映射到我的世界中的3D坐标时,我陷入困境。基本游戏有一个平面作为地面,因为它将成为一个RTS游戏引擎(希望随着时间的推移)。

我的问题是我无法想出任何有用的东西。该平面位于0,-100,-300点,大小约为1000x1000。我的相机位于0,0,0,场景旋转60度,给人一种“鸟眼”凸轮的印象。

我正在考虑三角方程,使用它我知道我的相机的高度和角度,并可能计算距离将给我正确的坐标,但这只是一个想法。

有人可以给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用简单的光线投射来完成。

首先,使用gluUnProject,您可以获得与鼠标指针的2D窗口坐标对应的3D世界坐标m

鉴于相机位置e = (0, 0, 0),您可以计算鼠标光线方向r = m - e

现在,假设平面上的点p和平面法线n,您可以计算intersection of the mouse ray with the plane