【问题标题】:Quaternions with OpenGL glRotated function带有 OpenGL glRotated 函数的四元数
【发布时间】:2013-12-15 08:14:06
【问题描述】:

我有一个使用 OpenGL 的可视化程序,我正在使用 glRotated 进行旋转。 我有用于旋转的四元数数据,但我不确定如何将其应用于 glRotated 函数。 我需要先进行转换吗?如果是这样,我该怎么办?

【问题讨论】:

    标签: opengl


    【解决方案1】:

    您需要将四元数转换为旋转矩阵。 见Convert Quaternion rotation to rotation matrix?

    来自http://www.math.ucsd.edu/~sbuss/MathCG/

    【讨论】:

      【解决方案2】:

      最好的方法是停止使用已弃用的固定功能管道函数。

      • glMatrixMode()
      • glLoadIdentity()
      • glTranslate*()
      • glRotate*()
      • glBegin()

      改为使用基于着色器的新管道,您只需调用glUniformMatrix4fv() 即可提供您自己的矩阵。

      然后您基本上可以将四元数转换为矩阵。

      如果您不想自己做所有繁重的工作和计算所有矩阵,那么您可以使用 GLM(OpenGL 数学)。

      另外,如果您不知道如何使用新的 /modern OpenGL 的东西,那么您可以阅读这些很棒的教程。

      另类

      我强烈建议您不要使用另一种方法,因为它依赖于已弃用的固定功能管道。

      仍将四元数计算为矩阵,然后使用glMultMatrix*()将其传递给OpenGL

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-13
        • 1970-01-01
        • 2011-12-17
        • 1970-01-01
        • 1970-01-01
        • 2012-09-08
        • 1970-01-01
        相关资源
        最近更新 更多