我正在使用DirectX,相机和其他东西的设置已经在那里了。相机是看着一个物体,我想旋转,这样它就可以从各个角度观看。
当呈现对象时,通过乘以旋转矩阵和平移矩阵来创建矩阵。我现在的旋转矩阵是用XMMatrixRotationRollPitchYaw(x,y,z)创建的。
有没有一种方法来设置x,y,z,这样我就能做到这一点?
发布于 2016-04-15 16:33:47
理论上,您只需对每个偏航、俯仰和滚动执行三个嵌套的for
循环,从0度到180度不等(因为XMMatrixRotationRollPitchYaw
需要弧度,而不是度,所以实际上从0到XM_PI弧度)。
注意,您可能会遇到使用欧拉角的万向节锁问题,这就是为什么四元数经常用于摄像机旋转控制的原因。
当然,这假设你想从每一个单一的角度看物体。如果您只想确保对象的每个部分都是可见的,您可以使用更大的增量,比如45度(XM_PI / 4.f弧度)。
你会有一些重复,因为你可以组合不同的欧拉角来产生相同的三维旋转。
https://stackoverflow.com/questions/36623308
复制相似问题