【问题标题】:Using Matrix Multiplication to Rotate a cube in opengl在opengl中使用矩阵乘法旋转立方体
【发布时间】:2014-10-30 13:46:38
【问题描述】:

我有一些绘制立方体的代码。我已经设法使用 glRotatef 旋转立方体,但我需要能够仅使用矩阵乘法来旋转立方体。我知道要使用什么矩阵,但我不确定如何将它们应用于立方体的顶点。有没有办法将向量传递给 glVertex3f?还是一种传递顶点数组的方法?

【问题讨论】:

  • 你会想要使用着色器(一般来说和这个问题)
  • 您能说得更详细些吗?我才真正开始使用 opengl
  • 您想在渲染顶点时对其进行变换吗?还是在渲染之前转换存储的几何图形?
  • 它需要能够在程序运行以响应按键时进行更改,但我认为其中任何一个都可以。

标签: c opengl matrix 3d


【解决方案1】:

我完全同意 Drew 的回答。不过,我想我会为您指明一个编写精美的教程系列的方向,该系列教程展示了这些概念的实际应用:

http://en.wikibooks.org/wiki/OpenGL_Programming

从前 3 个教程开始学习着色器基础知识,然后第 4 和第 5 个教程深入研究三角形和立方体的旋转。此外,这些示例使用了 FreeGLUT,它是一个框架,可让您轻松地使用按键、鼠标移动、鼠标按下等方式与您的代码进行交互。

【讨论】:

  • 谢谢,这看起来很有帮助
【解决方案2】:

您使用的 OpenGL 函数用于即时模式渲染,顶点变换在 OpenGL 中完成。如果您想在 OpenGL 之外手动转换顶点,则必须实现 matrix * vector 乘法,或者使用为您执行此操作的库。

附带说明,如果您只对旋转感兴趣,您可能会发现Rodrigues' rotation formula 比一般矩阵变换更容易实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多