OpenGL中的对象轴旋转

时间:2012-01-10 16:28:54

标签: opengl

当我在OpenGL中旋转对象时,轴也随着对象旋转。有办法避免这种情况吗?基本上,我想在同一轴上实现连续旋转。

我对四元数不是很熟悉,但是当我读到它时,它似乎是一个解决方案。有没有其他方法可以得到它?

1 个答案:

答案 0 :(得分:0)

  

当我在OpenGL中旋转对象时,轴也随着对象旋转。

转换不会旋转对象,它会旋转坐标系。链式旋转是非交换的。因此,您必须做的只是:交换旋转操作,即第一次旋转应用,即堆叠中的最后一次旋转指定对象旋转,然后跟随(即先前乘以)另一次旋转。

BTW:在你写的评论中写道:

  

我使用glGetDoublev存储上一个变换,然后在应用新旋转之前,我通过glLoad加载该矩阵,然后将其与新的旋转矩阵相乘。在我的应用程序中,我必须序列化磁盘上的对象,这就是我这样做的原因。与对象一起,我也存储转换矩阵

这表明你错误地将OpenGL用于场景图或矩阵数学库。它既不是。不要将OpenGL用作“对象存储”(它不能像这样工作),也不要依赖OpenGL的矩阵函数(无论如何都要从OpenGL-3中删除)。