OpenGL显示列表

时间:2011-12-26 03:53:45

标签: list opengl matrix

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

提前致谢。

1 个答案:

答案 0 :(得分:5)

显示列表是不可变的;一旦创建,你就无法改变它们。这就是他们的重点。

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

您当前的代码如下所示:

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

///More setup work.

glBegin(...);
glVertex/TexCoord/Color/etc(...);
...
glEnd();

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

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

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

glCallList(...);