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

旋转对象以从3D中的每个角度查看它,3d,rotation,directx,3d,Rotation,Directx,我使用的是DirectX,相机和其他东西的设置已经在那里了。相机正看着一个我想旋转的物体,这样从各个角度都可以看到它 渲染对象时,通过将旋转矩阵和平移矩阵相乘来创建矩阵。我现在使用XMMatrixRotationRollPitchYaw(x,y,z)创建了旋转矩阵 有没有一种方法可以设置x、y、z,这样我就可以做到这一点?理论上,你只需对横摆、俯仰和横摆的角度从0度到180度的循环执行三次嵌套的(因为XMMatrixRotationRollPitchYaw采用弧度,而不是角度,所以实际上是从0到

我使用的是DirectX,相机和其他东西的设置已经在那里了。相机正看着一个我想旋转的物体,这样从各个角度都可以看到它

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


有没有一种方法可以设置x、y、z,这样我就可以做到这一点?

理论上,你只需对横摆、俯仰和横摆的角度从0度到180度的循环执行三次嵌套的
(因为
XMMatrixRotationRollPitchYaw
采用弧度,而不是角度,所以实际上是从0到XM_PI弧度)

但是,请注意,使用Euler角度可能会遇到问题,这就是为什么四元数经常用于摄影机旋转控制

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

由于可以组合不同的Euler角度来产生相同的3D旋转,因此最终会得到一些复制