网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 软件工程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
本月文章推荐
.技术专家带你您走出SOA六大误区.
.实现基于IDEA算法的加密工具(5).
.面向服务的体系结构的成熟度模型.
.保证SOA走上成功之路的十大步骤.
.CMM简介.
.标准建模语言UML的动态建模机制.
.Apache中的挂钩剖析(2).
.SOA: 规则先行.
.软件项目如何进行需求分析.
.ADO.NET实现应用程序数据访问层.
.UML在嵌入式系统设计中的应用(1).
.浅析.Net下的多线程编程.
.SOA案例:不同应用程序的集成组织.
.IBM的MARS加密算法实现(1).
.Sun不支持SOAP; Microsoft的工具.
.微软事务处理服务介绍.
.SOA不止是一种IT技术.
.SOA面向服务架构的原则.
.UML在关系型数据库设计中的应用(.
.经典的软件质量保证检查过程(1).

Accumulation Buffer(累积缓存)

发表日期:2008-3-23


累积缓存是为合成多幅图像而设计的,它不是简单的用引入象素片元来代替象素值,而是将片元进行缩放,然后加到已有的象素值上。为了经过一系列的混合操作后能够保持精度,累积缓存每个颜色分量的位数要比一般的可视化系统要多。
我们可以象其他缓存一样清空累积缓存,可以用glClearAccum()来设置红、绿和蓝色分量的清空值,按位顺序清空累积缓存或以GL_ACCUM_BUFFER_BIT调用glClear()命令。
你不能直接渲染进累积缓存,而是应该渲染到一个选定的缓存,然后用glAccum()来将在那缓存中的当前图像累积进累积缓存。glAccum()用当前选择的读取缓存来拷贝。你可以用glReadBuffer()来设置你想读取的缓存。
glAccum()有2个参数:op和value。op值可为下面中的一个:
                                                                    表1 glAccum()的op值
op值
动作
GL_ACCUM
从当前选定的缓存中读取象素(该缓存为了用glReadBuffer()进行读取而选定,用value乘上R、G、B、A值,然后将结果加到累积缓存中。
GL_LOAD
与GL_ACCUM操作类似,但它是用结果值替换掉累积缓存中的值,而不是与之相加。
GL_RETURN
从累积缓存中取值,以value乘以该值,然后将该结果放入为写操作而激活的颜色缓存中。
GL_ADD
将value值与累积缓存中的每个象素值的R、G、B、A分量相加
GL_MULT
将value值截取到[-1,1]之间,然后与累积缓存中的每象素的R、G、B、A分量相乘
因为你必须在累积之前渲染到另一个缓存,所以累积图像典型的方法是,将图像渲染到后缓存若干次,累积每幅图像到累积缓存中,当所需的图像数目已累积后,将内容拷贝回后缓存中,然后交换前后缓存。这样,只有在最后,才显示累积的图像。
下面是累积n幅图像的一个示例程序:
1.  调用glDrawBuffer(GL_BACK)来只渲染到后缓存;
2.  调用glReadBuffer(GL_BACK),这样累积缓存将从后缓存读取。
注重:前2步只有当应用程序已经改变了所选的写和读缓存时才需要。若可视化系统是双缓存,这些选择是默认的。
3.  调用glClear(bitfield)清空后缓存,然后渲染第1幅图像;
4.  调用glAccum(GL_LOAD,1.f/n);这答应你避免用分开的步骤来清空累积缓存;

5.  改变你的图像的参数,再重绘它;
6.  调用glAccum(GL_ACCUM,1.f/n)来将第2幅图像加到第1幅上;
7.  重复前面2个步骤≥n-2次……
8.  调用glAccum(GL_RETURN,1.f)来将完成的图像拷贝到后缓存中;
9.  调用glutSwapBuffers()(若使用GLUT)或SwapBuffers()(若使用Win32)来交换前后缓存。
累积缓存提供了一种在保持好的颜色分辨率下实现在场景中“多重曝光(multiple eXPosures)”的方法。使用累积缓存可以产生许多图像效果来提高图像的真实性,其中包括:反走样、运动模糊、软阴影、深度域(景深)和卷积。要产生这些效果,必须将图像渲染多次,对场景位置(或所选的物体)进行微小的、渐增的改变,然后累积结果。

上一篇:3DS模型Bump Map(凹凸贴图)渲染器 人气:602
下一篇:基于区域增长的可视人彩色图像分割 人气:653
浏览全部软件工程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐