《图形编程技术学习》(三十八)颜色缓冲

一、多种类型的帧缓冲区(Frame buffer)

《图形编程技术学习》(三十八)颜色缓冲

二、颜色缓冲(Color buffer)

存储视口中每个像素的颜色

《图形编程技术学习》(三十八)颜色缓冲

三、颜色缓冲所占的存储空间

1.Resolution(分辨率):1024 * 768

2.像素颜色:采用RGB三个分量来表示颜色,每个分量采用8bits来表示

问题:该颜色缓冲需要多大的存储空间?

1024 * 768 * 8 bit / 1024 = 6144Kb

四、清楚缓冲的操作

1.同时清除帧缓冲和深度缓冲

2.glClearColor(0.0,0.0,0.0,0.0);

glClear(GL_COLOR_BUFFER_BIT);

glClearDepth(1.0);

glClear(GL_DEPTH_BUFFER_BIT|GL_DEPTH_BUFFER);

扩展:按位或运算符(|)

参加运算的两个对象,按二进制进行“或”运算。

运算规则:0|0 = 0; 0|1 = 1;1|0 = 1; 1|1 = 1;

即:参加运算的两个对象只要有一个为1,其值为1.

eg:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。

《图形编程技术学习》(三十八)颜色缓冲

关于这些宏定义有兴趣的可以翻一下源代码。

3.尽量同时清除多块缓冲,这样效率更高

关于glClear之前的文章中有介绍,有兴趣的可以翻阅一下。

五、单缓冲和双缓冲

双缓冲可以避免屏幕闪烁

《图形编程技术学习》(三十八)颜色缓冲

单缓冲只在Front Buffer缓冲,边画边缓冲,可能会出现闪屏的现象。

双缓冲先在Back Buffer缓冲,然后一次性复制到Front Buffer。

拓展链接:https://wenku.baidu.com/view/81