0

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

1)我使用 GL_TRIANGLES(4 个三角形)绘制了我的四面体。这是绘制将要转换的图元的更好方法吗?

2)我相信(从我看到的其他问题)轴旋转是关于平移到特定轴,例如(0,-y,-z),然后围绕该轴旋转并最终平移回来。好的,现在翻译的价值应该是什么?y,z?我有很多代表每个顶点的值,我要翻译它们吗?

4

1 回答 1

0

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

  1. 为了减轻和加快速度,请使用GL_TRIANGLE_FANor GL_TRIANGLE_STRIP代替。

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

    2.1旧 OpenGL(< 2.0,无着色器)

    您不应该手动平移和旋转它们。使用适当glRotate的和glTranslate功能。您需要传递给这些函数的值显然与对象的所需位置和旋转有关;您将在文档中找到有关它们的更多信息。

    2.2可编程流水线

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

哦,你不会翻译成轴。您将当前视图矩阵乘以适当的旋转矩阵。

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

于 2013-02-12T14:21:31.033 回答