【发布时间】:2013-12-15 08:14:06
【问题描述】:
我有一个使用 OpenGL 的可视化程序,我正在使用 glRotated 进行旋转。 我有用于旋转的四元数数据,但我不确定如何将其应用于 glRotated 函数。 我需要先进行转换吗?如果是这样,我该怎么办?
【问题讨论】:
标签: opengl
我有一个使用 OpenGL 的可视化程序,我正在使用 glRotated 进行旋转。 我有用于旋转的四元数数据,但我不确定如何将其应用于 glRotated 函数。 我需要先进行转换吗?如果是这样,我该怎么办?
【问题讨论】:
标签: opengl
【讨论】:
最好的方法是停止使用已弃用的固定功能管道函数。
改为使用基于着色器的新管道,您只需调用glUniformMatrix4fv() 即可提供您自己的矩阵。
然后您基本上可以将四元数转换为矩阵。
如果您不想自己做所有繁重的工作和计算所有矩阵,那么您可以使用 GLM(OpenGL 数学)。
另外,如果您不知道如何使用新的 /modern OpenGL 的东西,那么您可以阅读这些很棒的教程。
我强烈建议您不要使用另一种方法,因为它依赖于已弃用的固定功能管道。
仍将四元数计算为矩阵,然后使用glMultMatrix*()将其传递给OpenGL
【讨论】: