旋转对象以从3D中的每个角度查看它

时间:2016-04-14 12:35:24

标签: 3d rotation directx

我正在使用DirectX,摄像头和设备的设置已经存在。相机正在查看我想要旋转的物体,以便从各个角度进行查看。

渲染对象时,通过将旋转和平移矩阵相乘来创建矩阵。我现在使用XMMatrixRotationRollPitchYaw(x,y,z)创建旋转矩阵。

有没有办法设置x,y,z以便我可以完成这个?

1 个答案:

答案 0 :(得分:0)

从理论上讲,你可以为偏航,俯仰和滚转中的每一个做0到180度的三个嵌套for循环(因为XMMatrixRotationRollPitchYaw需要弧度而不是度数所以从0开始实际运行到XM_PI弧度)。

  

但请注意,使用欧拉角可能会遇到gimbal lock问题,这就是四元数通常用于相机旋转控制的原因。

当然,这假设您希望从每个单度角度看到对象。如果你只想确保对象的每个部分都是可见的,你可以用更大的45度增量(XM_PI / 4.f弧度)来做到这一点。

你最终会得到一些重复,因为你可以组合不同的欧拉角来产生相同的3D旋转。