1、颜色缓冲区
通常用于绘图的缓冲区,包含了颜色索引或RGB颜色数据,还可能包含了alpha数据。如果opengl系统支持立体图,则有左右两个缓冲区。双缓冲系统提供了前后缓冲区。每个opengl实现都必须提供一个前左缓冲区。
2、深度缓冲区
即Z-BUFFER,保存每个像素的深度值,用于保存像素Z方向的数值。深度通常是根据物体和观察点的距离来测量的,较大深度值的像素可能会被较小深度值的像素所覆盖。但这只是一种约定,可以改变这种行为。
3、模板缓冲区
把绘图限制在屏幕中的某个区域,就像用纸板和喷漆实现精确的绘图一样。用于保持屏幕上某些位置图形不变,而其他部分重绘。例如模拟驾驶的程序,可以只绘制车内的仪表和其他物体1次,当汽车开动时,只有车窗外的场景需要更新。
4、累积缓存
只保存RGBA数据,用于合成图像累积缓冲区通常用于把一系列的图像合成为一副图像。通过这种方法,可以对图像进行超量采样,然后对样本求平均值,并将结果写入到颜色缓冲区中,从何实现场景的抗锯齿处理。我们不能把数据直接写入到累积缓冲区,累积操作总是以进行快块为单位idui数据进行操作,通常是把数据移入或移出颜色缓冲区。
指定清除值:
void glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
void glClearIndex( GLfloat index );
void glClearDepth( GLclampf depth );
void glClearStencil( GLint s );
void glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
GLclampf/d 经过截取的GLfloat和GLdouble都限定在0.0和1.0的范围之内。默认的深度缓冲区清楚值是1.0(表示与观察点尽可能远的距离),其他所有缓冲区的清除值都是0.0然后进行清除:
void glClear(GLbitfield mask);
mask: GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_ACCUM_BUFFER_BIT