0
我在Minecraft中制作了一个小型测试模块,玩家可以在自由空间中飞行一架小型飞机。旋转矩阵的反向顺序
的Minecraft适用相机转换为
glRotatef(pitch, 0, 0, 1);
glRotatef(yaw, 0, 1, 0);
glRotatef(roll, 1, 0, 0);
然而,在此设置中,辊应用最后,这最终使平面摆在世界空间间距,而不是施加滚后,使银行不可能。
我已经想通了,为了使银行工作,我应该申请的转换以相反的顺序,即
glRotatef(roll, 1, 0, 0);
glRotatef(yaw, 0, 1, 0);
glRotatef(pitch, 0, 0, 1);
有一些方法,给出滚动,偏航和变桨,在的顺序 ,以获得更正后的值以恢复原来的Minecraft相机转换,以实现相同的最终旋转(基本上,使平面使用自己的相对轴而不是世界轴旋转)?
它可以完成,但它可能不会成为你想要的。为了清楚起见,给定了三个参数,然后是偏摆然后是间距,您需要计算三个参数,即俯仰 - 偏航 - 后滚,这将产生相同的方向,是吗? – Beta