opengl高级技术专题二new.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
opengl高级技术专题二new

OpenGL高级技术专题二 北京大学人机交互与多媒体实验室 朱龙佰 zlb@ 2004年5月21日 专题内容 多通道绘制技术 帧缓存应用技术 高级反走样技术 高级线绘制技术 高级纹理映射技术 5 多通道绘制技术 关于多通道绘制技术 定义:在不同的条件下,多次绘制同一场景或场景的一部分,各次绘制的结果按照一定的逻辑合成最后的图像. 意义:有时在现有的条件下(硬件条件和软件条件等),不能一次就生成最后的图像,但通过多次绘制并结合多次的绘制结果能生成最后的图像.例如在硬件或软件驱动程序不支持多纹理映射的时候,可以采用多通道绘制技术来实现多纹理映射,每次应用单个纹理进行映射,然后融合各次的结果. 5 多通道绘制技术 多通道绘制技术的应用模式 独立模式:每一通道的绘制都是独立的,后面的绘制不使用前面绘制的结果, 各次绘制没有顺序要求.一般是多次绘制的结果按照一定的逻辑叠加或融合形成最后的图像.这是最简单的多通道绘制模式. 例如多通道纹理映射就是这种模式. 关联模式:后面的绘制要使用前面的绘制设置的环境,各次绘制不能交换顺序.最后的图像一般是最后一次绘制的结果,但也可能需要叠加或融合前面绘制的部分结果. 这是使用最多的多通道绘制模式,后面的高级技术中将会大量地使用这种多通道绘制技术. 6 帧缓存应用技术 OpenGL帧缓存与片元测试 所有3D加速显卡都支持的最基本的帧缓存 Color Buffers Depth Buffer 普通3D加速显卡基本上都支持的帧缓存 Stencil Buffer Accumulation Buffer 高档3D加速显卡支持的额外帧缓存 P-Buffer Multisample Buffer 6 帧缓存应用技术 OpenGL帧缓存与片元测试 片元测试流水线(Fragment Operations Pipeline) 6 帧缓存应用技术 深度缓存的应用 深度缓存的主要应用模式:利用深度缓存以及深度测试构造场景在Light Space中的深度图(Depth Map);深度图作为后续绘制通道的参考,通常将深度图保存到纹理中. 6 帧缓存应用技术 模板缓存的应用 模板缓存的主要应用模式:使用模板缓存和模板测试标记像素的状态;结合多通道绘制技术,每通道绘制都与模板缓存的值比较,并根据比较结果修改模板缓存的值. 模板缓存是许多特效快速实现的基础硬件,Doom3就是利用模板缓存实现阴影的. 常见的利用模板缓存的应用有: 镜面反射(在特效中介绍) 阴影 绘制物体轮廓(在高级线绘制技术中介绍) 贴花效果(Decal)(在特效中介绍) 复杂平面的模式填充,渐进填充 实体几何造型(CSG) 6 帧缓存应用技术 累积缓存的应用 累积缓存的主要应用模式:使用多通道绘制技术多次绘制场景,每次绘制都将视图体稍作抖动,在累积缓存加权平均所有的绘制结果. 6 帧缓存应用技术 小结 现在有大量的特效是基于帧缓存实现的,3D程序开发者使用帧缓存设计了许多巧妙的特效算法,平时可以积累这些技术. 帧缓存的应用有许多技巧,但基本上都是基于帧缓存的主要应用模式开发的. 7 高级反走样技术 走样(Aliasing)与反走样(Antialiasing) 基于Alpha Blending的反走样 基于Super-sampling的反走样 基于Multisample的全屏反走样FSAA (Full-Screen Antialiasing ) 7 高级反走样技术 走样与反走样 定义:图形信号是连续的,而在光栅显示系统中,用来表示图形的却是一个个离散的象素.这种用离散量表示连续量引起的失真现象称之为走样(Aliasing), 也称为混淆;用于减少或消除这种现象的技术称为反走样(Antialiasing). 典型的走样:锯齿线,锯齿边,细节失真, 狭小图形遗失等。 7 高级反走样技术 走样与反走样 7 高级反走样技术 基于Alpha Blending的反走样 基本原理:将直线看作是单像素宽度的矩形,像素看作是有面积的正方形;对与直线相交的每个像素,计算其被直线覆盖的面积占像素面积的百分比a,用a作为Alpha值,与帧缓存中已有的像素的颜色值混合(Blend),产生该像素最后的颜色值. 由于要计算像素面积覆盖,所以Alpha Blending反走样本质上是基于Area-Sampling的. 7 高级反走样技术 基于Alpha Bending的反走样 OpenGL的实现 启用混合 glEnable (GL_BLEND) glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 启用反走样 glEnable(GLenum cap) cap: GL_POINT_SMOOTH

文档评论(0)

sandaolingcrh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档