在3D空间中旋转和平移相机

时间:2011-01-07 16:17:44

标签: 3d c++11

我在3D空间中翻译和旋转相机时遇到了一些问题。在Direct3D9中,摄像机被定义为位置,查看和向上轴(作为3d矢量)。所以我存储了相机的旋转和位置,当为新相框定义相机时,我通过旋转旋转了向量和向上轴的旋转并设置了位置。翻译相机时,我进行了平移,通过旋转旋转并平移了相机的位置并查看了矢量。但是经过一段时间后,观察向量和新的平移不会对齐 - 也就是说,当平移向量是定义向前的原始观察向量的直线倍数时,相机不再向前移动。我不明白为什么会发生这种情况 - 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你能体验Gimbal Lock吗?我之前发生过这种情况,因此我将向量转移到Quaternions