我一直在空间模拟一段时间了。 起初我使用我自己的3D引擎与软件光栅器。旋转太空模拟器/游戏太空船模型
但是,当实施纹理的时间到期时,我放弃了。 现在我在某段时间后重新开始,现在我正在使用Opengl(使用SDL)来渲染3D模型。
但现在我打了另一堵砖墙。
我无法弄清楚如何进行适当的旋转。 作为一个空间模拟器我想类似的控制使用
glRotatef(angleX, 1.0f, 0.0f, 0.0f);
glRotatef(angleY, 0.0f, 1.0f, 0.0f);
glRotatef(angleZ, 0.0f, 0.0f, 1.0f);
或相似,
不正确,如果我旋转模型(飞船)第90度工作向左,然后flighsim
旋转它“向上”。 它会滚动。
下面是一个图像,说明我的问题。
我试了几个招数,试图解决这个,但不知何故,我觉得我失去了一些东西。 它不能帮助模拟器样式旋转的例子几乎不可能找到。
因此,我正在寻找示例,链接和旋转3d模型(如飞船,飞机)的理论。
我是否应该使用3个向量(左,上,前)作为方向,因为我还必须计算诸如推力器的加速度以及随着旋转(方向?)和模型透视点像火箭发动机这样的方向。
我不是很好的数学和努力可视化解决方案只给出头痛
我终于破解了! 我使用描述模型方向的矩阵。 当我按下向上键时,一个函数调用创建一个旋转矩阵的函数,我旋转x所需的量,然后将其乘以模型方向矩阵。 – kvasan 2009-08-06 03:54:10