《图形编程技术学习》(三十八)颜色缓冲
一、多种类型的帧缓冲区(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。