[OpenGL学习] 缓冲区

来源:互联网 发布:教学软件 编辑:程序博客网 时间:2024/05/15 16:05

缓冲区: 

1 颜色缓冲区(COLOR_BUFFER):

颜色缓冲区就是帧缓冲区(FRAME_BUFFER),你需要渲染的场景最终每一个像素都要写入该缓冲区,然后由它在渲染到屏幕上显示; 

2 深度缓冲区(DEPTH_BUFFER):

深度缓冲区与帧缓冲区对应,用于记录上面每个像素的深度值,通过深度缓冲区,我们可以进行深度测试,从而确定像素的遮挡关系,保证渲染正确;

PS:现实世界里的物体投影到平面,存在遮挡关系,要在荧幕显示的时候要进行深度测试,确定显示哪个物体。 

3 模版缓冲(STENCIL_BUFFER):

模版缓冲与深度缓冲大小相同,通过设置模版缓冲每个像素的值,我们可以指定在渲染的时候只渲染某些像素,从而可以达到一些特殊的效果.

(以上转自http://www.cnblogs.com/tekkaman/archive/2011/11/16/2250938.html,并添加了部分内容) 

4 累积缓冲区(ACCUM_BUFFER):

主要作用是允许颜色缓冲区的内容不直接显示到窗口上

作用过程:

(1)内容从颜色缓冲区 复制 到累积缓冲区;

(2)根据不同的方法,将颜色缓冲区的内容与在累积缓冲区的内容进行反复混合;

(3)将最终结果从累积缓冲区 复制 回颜色缓冲区;

(4)由颜色缓冲区直接显示到窗口上。

PS:由于积累缓冲区操作需要复制大量的内存并进行大量的处理,所以很少使用这个功能。