OpenGL学习四——帧缓存

来源:互联网 发布:阿里云大厦 深圳 编辑:程序博客网 时间:2024/06/08 18:15
1、缓存介绍
   以统一的方式对每个像素的数据进行存储的空间被称为缓存,OpenGL中有四种缓存——颜色缓存、深度缓存、模板缓存以及累积缓存。
   颜色缓存存储了颜色索引或RGB颜色数据,还存储了alpha值,主要用于图像像素颜色的显示。深度缓存存储了每个像素的深度值,通常是指视点的距离。通常深度值大的像素会被深度值小的像素覆盖,但深度缓存的这种行为是可以修改的。模板缓存存储了特定的模板,用于将绘图范围限制在屏幕的特定区域,并以模板的形状显示出来。累积缓存存储了RGBA的颜色数据,通常用于将一系列的图像合成一幅图像。
   在图形程序中,一个重要的工作就是清屏(清空缓存)。为了解决这种问题,有些计算机带有可同时清除多个缓存的硬件。OpenGL的清除函数使用了这种体系。首先,对于每个要清除的缓存,指定要写入的值;然后调用执行清除操作的函数,并将所有要清除的缓存作为参数传递给该函数。清除缓存的函数:
   glClearColor:设置清除颜色缓存使用的颜色值
   glClearIndex:设置清除颜色缓存使用的颜色索引值
   glClearDepth:设置清除深度缓存使用的深度值
   glClearStencil:设置清除模板缓存使用的值
   glClearAccum:设置清除累积缓存使用的颜色值
   使用函数glClear可以同时清除多个缓存。
 
2、绘制过程
   在屏幕上绘制图像时,OpenGL需要执行各种计算和测试,计算过程包括旋转、平移、缩放、光照计算、以透视方式投影物体、判断窗口中那些像素将受影响、确定以何种颜色绘制这些像素,经过计算OpenGL即可确定应生成的片元以及片元颜色。在片元进入帧缓存之前需要经过的测试过程包括截剪测试、alpha测试、模板测试、深度测试,通过测试后片元将写入缓存成为像素,写入时还可能进行以下操作:混合、抖动以及逻辑运算。
原创粉丝点击