7

当我这样称呼时glRotatef

glRotatef(angle,0.0,1.0,0.0) //rotate about y-axis

我知道它是angle围绕y axis.
但是,这里旋转的是什么?究竟是哪个对象?

可能是一个愚蠢的问题,但我对此完全陌生。

我可以使用此处的答案旋转一条关于其端点的线,但我并不真正了解它在内部是如何工作的。

4

2 回答 2

7

没有任何东西被旋转,因为 OpenGL 不“存储”对象。

glRotatef 和 glMultMatrixf 一样,用于修改当前选择的变换矩阵。这对随后的绘制方式有影响。一个人按照自己的意愿设置矩阵(和其他东西!),然后一个人绘制自己的对象。

有关更多信息,请参阅 OpenGL 红皮书,并在周围搜索“保留模式”和“立即模式”之间的区别。

于 2014-08-13T18:24:02.113 回答
2

glRotate将作用于当前矩阵,默认为GL_MODELVIEW. 这样做会影响您在序列中绘制的任何 3D 对象。当前矩阵随 改变glMatrixMode。然后将模型视图矩阵应用于使用 、 等渲染的任何glVertex几何图形glDrawArrays

现在不推荐使用 OpenGL 端矩阵。如果您使用核心 OpenGL 3+,这些功能将不再可用。如果您是 OpenGL 新手,我建议您跳过学习旧方法并专注于现代、面向着色器的 OpenGL。您可以查看以下链接以获取一些好的教程。

  1. 打开.gl
  2. opengl-tutorial.org
  3. ogldev
于 2014-08-13T18:29:36.630 回答