优化OpenGL代码
优化OpenGL代码是提高渲染性能的重要手段。我们常常使用各种工具对OpenGL程序进行优化,比如使用profiler分析程序热点函数,改进瓶颈算法等等。在本文中,我们将介绍一种使用OpenGL自身功能来优化代码的方法。
在OpenGL中,我们可以使用显示列表(display list)来预先编译一组OpenGL命令序列,并在渲染时直接调用显示列表来执行命令。这样做的好处在于,减少了OpenGL函数调用,缩短了CPU和GPU之间的通信时间,提高了渲染效率。下面我们来看一个简单的示例。
#include <GL/glut.h>
void display()
{
static GLuint dispList = 0;
if (dispList == 0)
{
dispList = glGenLists(1);
glNewList(dispList, GL_COMPILE);
// 此处为OpenGL命令序列
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(-1.0, -1.0, 0.0);
glColor3f(0.0, 1.0, 0.0);
glVertex3f(0.0, 1.0, 0.0);
g