在其中心周围旋转opengl四面体?

时间:2013-02-12 14:10:17

标签: opengl rotation

我被要求绘制一个3D四面体并使其围绕x,y或z轴旋转,具体取决于输入给定。现在我有两个问题。

1)我使用GL_TRIANGLES(4个三角形)绘制了四面体。这是绘制原型的更好方法吗?

2)我相信(从我见过的其他问题)轴旋转是关于转换到特定的轴,如(0,-y,-z),然后围绕该轴旋转,最后转回。好了,翻译的价值应该是什么? y,z?我有很多代表每个顶点的值,我是否全部翻译它们?

1 个答案:

答案 0 :(得分:0)

我认为写完整答案要比提出很多问题要快得多:

  1. 为了简化和加快速度,请改用GL_TRIANGLE_FANGL_TRIANGLE_STRIP

  2. 取决于您正在使用的管道:

    2.1 旧OpenGL(< 2.0,shaderless)

    您不应手动翻译和旋转它们。使用适当的glRotateglTranslate函数。传递给这些函数所需的值显然与对象的所需位置和旋转有关;你会在文档中找到更多关于它们的信息。

    2.2 可编程管道

    创建一个变换矩阵(通过自己或使用GLM等库)并将其作为统一传递给顶点着色器。

  3. 哦,你没有翻译成轴。您可以将当前视图矩阵乘以适当的旋转矩阵。

    在深入研究更复杂的主题之前,您应该尝试阅读更多内容。 This tutorial很好地涵盖了现代OpenGL;如果您被迫使用旧的OpenGL,请改为使用NeHe tutorials