我想围绕全局y轴旋转对象(基本上围绕0,1,0偏转,不管当前方向是什么)。我会显示一张图片,但声望...我想围绕一个全局轴旋转偏航而不是该对象的本地轴。例如,如果我通过俯仰稍微倾斜一个盒子,然后尝试旋转偏航,它将以倾斜角度而不是直线旋转盒子,就好像盒子完全没有倾斜一样。使对象围绕全局坐标轴旋转Directx
每个对象存储在被更新的每一个更新呼叫的基质其位置和旋转。旋转代码如下所示:
D3DXMatrixRotationYawPitchRoll(&rotation, yaw, pitch, roll);
D3DXMatrixMultiply(&position, &rotation, &position);
其中位置是每次更新都翻译和旋转的优秀矩阵。这是在本地旋转它,但我想通过全局轴旋转偏航。
我怎么能写这样使得偏航转动完成,犹如当地的向上矢量为(0,1,0),即使倾斜?
Direct3D在历史上使用左手行主矩阵。 XNA Game Studio和DirectX Tool Kit SimpleMath类使用左手行主矩阵。 [DirectXMath](http://blogs.msdn.com/b/chuckw/archive/2012/03/27/introducing-directxmath.aspx)可以支持左手或右手行主矩阵。不赞成使用的D3DX数学库使用左手,行主。 – 2014-10-05 05:58:33
这是做同样的事情:/我不希望旋转发生在世界各地,好像立方体正在轨道上行星一样。基本上我想让它假装局部上轴总是(0,1,0),而不是在做一些俯仰之后倾斜。 – NeonWolfTrance 2014-10-05 14:25:20