我在Open GL中旋转3D对象时遇到了问题。我通过加载标识(glLoadIdentity())开始每个绘制帧,然后根据我需要的内容(对于相机等)在栈上按压和弹出。然后,我希望3D物体能够滚动,俯仰和偏航,然后让它们正确显示。Open GL Android 3D对象旋转问题
这里有一个问题......我希望能够像增加一架飞机一样进行增量旋转。所以每次按下向上按钮时,对象都围绕它自己的x轴旋转。但是,如果物体倾斜并选择偏航,则旋转应该围绕物体的向上矢量而不是Y轴。
我试过做以下操作:
glRotatef(pitchTotal,1,0,0);
glRotatef(yawTotal,0,1,0);
glRotate(rollTotal,0,0,1);
和那些似乎不起作用。 (请记住矢量正确计算)
我也试过...
glRotatef(pitchTotal,1,0,0);
glRotatef(yawTotal,0,1,0);
glRotate(rollTotal,0,0,1);
我仍然有怪异的旋转。
长话短说... 在Open GL中使用对象的外观,正确向上矢量旋转3D对象的正确方法是什么?
对不起,我犯了一个错误,第二组glRotates本来应该是围绕着向上,向右看的。我尝试重新排列向量,并且我的对象仍然没有正确旋转。它工作在90度的角度相当不错。换句话说,我可以用90度的角度滚动,俯仰和偏航飞行我的物体,但这并不总是有效(只有一段时间),然后如果我尝试做小增量,它会变得疯狂......尽管谢谢你的建议! – Matthew 2012-02-22 22:01:38