OpenGL显示清单

use*_*607 1 opengl list matrix

有人可以向我解释一下一旦编译后如何在OpenGL中修改显示列表?我如何执行,例如对其进行矩阵转换?

提前致谢。

Nic*_*las 5

显示列表是不可变的;创建后就无法更改它们。这就是他们的重点。

如果要将几何图形内置到可以在矩阵定义的位置渲染的显示列表中,则只需将矩阵命令不放在显示列表中即可。只需将绘图内容放入显示列表即可。当您要渲染该几何图形时,请进行设置工作(包括矩阵工作),然后执行显示列表。

您当前的代码如下所示:

//Every frame
glRotatef(...);
glTranslatef(...);

///More setup work.

glBegin(...);
glVertex/TexCoord/Color/etc(...);
...
glEnd();
Run Code Online (Sandbox Code Playgroud)

您基于显示列表的代码应如下所示:

//Initialization. Done once.
glBeginList(...);
glBegin(...);
glVertex/TexCoord/Color/etc(...);
...
glEnd();
glEndList();

//Every frame
glRotatef(...);
glTranslatef(...);
...

glCallList(...);
Run Code Online (Sandbox Code Playgroud)