glRotatef旋转什么?

OpenGL: What does glRotatef rotate?

本文关键字:什么 旋转 glRotatef      更新时间:2023-10-16

当我这样调用glRotatef时:

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

我知道它是围绕y axis旋转angle度。
但是,什么在这里被旋转?具体是哪个对象?

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

我可以使用这里的答案旋转一行,但我真的不明白它是如何在内部工作的。

没有对象被旋转,因为OpenGL不"存储"对象。

glRotatef和glMultMatrixf一样,用于修改当前选择的变换矩阵。这对随后的绘制方式有影响。你可以把矩阵(和其他东西!)设置成你想要的样子,然后画出你想要的对象。

有关更多信息,请参阅OpenGL红皮书,并搜索"保留模式"answers"立即模式"之间的区别

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

opengl端矩阵现在已弃用。如果你使用核心opengl3 +,这些功能将不再可用。如果你是OpenGL的新手,我建议你跳过学习旧的方法,专注于现代的,面向着色器的OpenGL。你可以查看下面的链接来获得一些很好的教程。

  1. open.gl
  2. opengl-tutorial.org
  3. ogldev