OpenGL:glRotatef旋转的是什么?

8
当我像这样调用glRotatef时:
glRotatef(angle,0.0,1.0,0.0) //rotate about y-axis

我知道它是绕y轴旋转angle度,但这里到底旋转了什么?具体是哪个对象?
可能是一个愚蠢的问题,但我完全不了解这个。
我能够使用这里的答案将一条线绕其端点旋转,但我不太理解其内部工作原理。
2个回答

8

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

glRotatef和glMultMatrixf用于修改当前选择的变换矩阵。这会影响随后绘制的内容。您可以设置矩阵(和其他一些内容!)以期望的方式,然后绘制您的对象。

有关更多信息,请参见OpenGL红书,并搜索“保留模式”和“立即模式”的区别。


1
OpenGL不仅不会“存储”对象,而且它实际上没有对象的概念。 - Tom Knapen
@sanjeevmk 变换矩阵应用于您使用 glVertex 传递的顶点。 - Tom Knapen

2

glRotate会作用于当前矩阵,默认为GL_MODELVIEW。这将影响您在序列中绘制的任何3D对象。当前矩阵通过glMatrixMode更改。

OpenGL侧的矩阵现已过时。如果您使用核心OpenGL 3+,这些函数将不再可用。如果您是OpenGL新手,建议您跳过学习旧方法,专注于现代、基于着色器的OpenGL。您可以查看以下链接获取一些好的教程。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接