




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
s u nh u a l i p o s t g r a d u a t ep r o g r a m d e p a r t m e n to fc o m p u t e r s c i e n c e c e n t r a lc h i n an o r m a lu n i v e r s i t y s u p e r v i s o r :j i nh a n j u n a c a d e m i ct i t l e :p r o f e s s o r s i g n a t u r e : a p p r o v e d m a y ,2 0 11 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作 所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本声明的法律结果由本人承担。 作者签名: 日期:少,年乡月f 日 学位论文版权使用授权书 学位论文作者完全了解华中师范大学有关保留、使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属华中师范大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和电子版,允许学位论文被查阅和借阅; 学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手 段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密,在年解密后适用本授权书。 非保密论文注释:本学位论文不属于保密范围,适用本授权书。人i 作者签名:豸囊! ! 乞弘f导师签名:乏戳 日期:力f f 年b 月f 日 日期砂,f 年勿月日 。 f 本人已经认真阅读“c a l i s 高校学位论文全文数据库发布章程”,同意将本人的 学位论文提交“c a l i s 高校学位论文全文数据库”中全文发布,并可按“章程 中的 规定享受相关权益。回童途塞堡童后溢蜃;旦圭生;旦二生;旦三生叁查! 作者签名:二m 勿l作者签名:彳d 节。f 日期:沙年参月f 日 导师签名: 日期易, ,、 - 9 介影日 摘要 阴影在三维虚拟场景中扮演着重要的角色。首先,阴影可以帮助我们理解复 杂接收体的几何信息;其次,阴影可以帮助我们理解三维空间中物体间的位置和 大小关系;最后,阴影有助于我们理解复杂遮挡物的几何形状。因此,如何生成 实时而真实的阴影对于三维虚拟场景至关重要。 随着计算机图形学的发展,人们对计算机生成图形的真实性要求逐渐提高, 此时,软阴影应运而生。软阴影在真实感方面的作用毋庸质疑,但也带来一个新 的挑战实时性。于是,计算机图形界都在思索如何在保持实时性的前提下提 高图形真实感? 从现有的软阴影生成算法来看,改进的策略众多,但是还是存在 不少问题,有的算法不能形成自阴影,有的算法受到了遮挡体和接收体的类型的 限制,有的算法忽略光源的大小和形状,有的只是形成了半影的内半影,或者外 半影等等。 随着计算机图形处理器( g p u ) 的出现,各硬件厂商也纷纷在其图形处理器中 加入了对阴影生成的直接支持。以便生成更为生动,逼真的场景。这一切,为三 维虚拟场景中生成高质量的阴影提供了更加广阔的研究空间。 阴影体算法在处理大规模场景问题时计算量非常庞大,降低了算法执行效 率,达不到实时性的要求。而阴影映射算法虽然实时性较阴影体算法好,可在真 实感方面不尽如人意,因为其生成的是硬阴影。 针对三维图形学中实时阴影绘制中的实时性和真实感这一矛盾,本文提出了 一种基于膨胀腐蚀的伪软影生成算法。在不降低帧率的前提下对经典阴影映射算 法进行改进,仍然采用两遍渲染,但与经典阴影映射算法不同的是,我们在第二 遍渲染前对生成的阴影图先进行向外膨胀、向内腐蚀操作,从而得到一幅新的阴 影图,然后再对场景渲染。另外,为了提高算法实时性,我们充分利用了可编程 图形处理器的并行计算能力,探索加速方案,提高g p u 执行效率,进而增强算法 实时性。 经实验验证分析,本文提出的基于膨胀腐蚀的伪软影生成算法在不降低帧率 的前提下,可以生产真实感较强的伪软阴影,且本算法具有一定反走样功能。虽 然该方法不是基于物理的精确计算,只是对软阴影进行模拟生成真实感较强的伪 软阴影,但因其在真实感和实时性这一矛盾中探寻一个理想平衡点,可以应用于 大规模实时动态场景生成软阴影,尤其是对于不能进行预计算的动态变形体。从 而有其广泛应用前景。 关键词:实时性;软阴影;阴影绘制;图形处理器 a b s t r a c t s h a d o wp l a y sa ni m p o r t a n tr o l ei n3 dv i r t u a ls c e n e f i r s t ,t h es h a d o w c a nh e l pu su n d e r s t a n dc o m p l e xg e o m e t r i ci n f o r m a t i o na b o u tr e c e i v e r : s e c o n d l y ,t h es h a d o wc a nh e l pu su n d e r s t a n dt h es i z ea n dl o c a t i o no ft h e r e l a t i o n s h i po fo b j e c t si n3 ds p a c e :f i n a l l y ,t h es h a d o ww i l lh e l pu s u n d e r s t a n dg e o m e t r ics h a p e so fo c c l u d e r t h e r e f o r e ,h o wt og e n e r a t er e a l - ti m ea n dr e a lis tics h a d o w sf o r3 dv i r t u a ls c e n eisv e r yi m p o r t a n t w it ht h ed e v e l o p m e n to fc o m p u t e rg r a p h i c s ,p e o p l et oi m p r o v et h e r e a l i s t i co fc o m p u t e rg e n e r a t e dg r a p h i c s a tt h i st i m e ,s o f ts h a d o w s a r i s e sa tt h eh i s t o r i cm o m e n t t h e r ei sn od o u b tt os o f ts h a d o w si nt h e r o l eo fr e a l i s t i c ,b u ti th a sa l s ob r o u g h tan e wc h a l l e n g er e a l t i m e s o , c o m p u t e rg r a p h i c sb o u n d e di nt h i n k i n ga b o u th o wt ok e e pt h ep r e m i s eo f r e a l t i m ep e r f o r m a n c ei ni m p r o v i n gg r a p h i cr e a l i s m ? f r o mp e r s p e c t i v e e x i s t i n gs o f ts h a d o w sg e n e r a t i o na l g o r i t h m s ,t h e r ea r em a n yi m p r o v e d s t r a t e g y ,b u tt h e r ea r es ti11s o m ep r o b le m s s o m ea lg o r it h mc a n n o t g e n e r a t es e l f s h a d o w s ,s o m ea l g o r it h mr e s t r i c tt h et y p eo fo c c l u d e ra n d r e c e i v e r ,s o m ea l g o r i t h mi g n o r e1 i g h t ss i z ea n ds h a p ea n ds o m ea l g o r i t h m j u s tf o r m e din s id et h ep e n u m b r aa tp e n u m b r ao rt h ep e n u m b r a ,a n ds oo n a l o n gw i t ht h ec o m p u t e rg r a p h i c sp r o c e s s i n gu n i t ( g p u ) t oa p p e a r ,i n o r d e rt og e n e r a t em o r ev i v i d ,l i f e l i k es c e n e s ,t h eh a r d w a r em a n u f a c t u r e r s d i r e c tl ys u p p o r ts h a d o wr e n d e r i n gi ni t sg r a p h i c sp r o c e s s i n gu n i t a 11 t h is ,p r o v id in gb r o a d e rr e s e a r c hs p a c ei n3 dv i r t u a ls c e n et og e n e r a t e h i g hq u a l i t yo ft h es h a d o w s h a d o w v o l u m e s c o n s u m e dl a r g et i m ei nd e a l i n gw i t hl a r g es c e n e , r e d u c e dt h ea l g o r i t h me f f i c i e n c y ,c a nn o tr e a c ht h er e q u i r e m e n to fr e a l t i m e a l t h o u g hs h a d o wm a p p i n ga l g o r i t h mb e t t e rt h a ns h a d o w v o l u m e s a l g o r i t h mi nr e a l t i m e ,i t sr e a l i s t i ci sb a d b e c a u s ei tp r o d u c e st h eh a r d s h a d o w s i nc o m p u t e r g r a p h i c sr e a l t i m ea n dr e a l i s t i cc o n t r a d i c t i o n t h i s t h e s i sf o r w a r dr e n d e r i n gf a k es o f ts h a d o w sb a s e do nt h ee r o s i o na n dd i l a 。 t i o n w ei m p r o v et h ec l a s s i cs h a d o wm a p p i n ga l g o r i t h ma n di td o e sn o t r e d u c ef r a m er a t e s t i1 1u s i n gt w i c er e n d e r i n g ,b u tw i t hc l a s s i cs h a d o w m a p p i n ga l g o r i t h mi sd i f f e r e n t w eo p e r a t ee x p a n d so u t w a r da n di n w a r d i l m a s t e r s t i i e 淞 l 三詈量罢兰宝兰兰兰星量量兰兰兰兰罢量星兰罢量曼曼宝宝宝兰罢兰兰量兰兰皇量宝兰兰兰兰量兰兰宝昌兰皇兰皇量富兰兰兰兰兰宝兰量兰宝宝岂皇曼窒皇詈拿! f i n a l l yr e n d e rt h es c e n e i na d d i t i o n ,i no r d e rt oi m p r o v et h er e a l t i m e ,w ef u l l yu t i l i z et h ep r o g r a m m a b l eg r a p h i c sp r o c e s s o rp a r a l l e l c o m p u t i n gc a p a b i l i t i e s ,e x p l o r ea c c e l e r a t es c h e m e ,i m p r o v eg p ue f f i c i e n c y ,e n h a n c e m e n ta l g o r i t h mr e a l t i m e e x p e r i m e n t ss h o w e dt h ep r o p o s e da l g o r i t h l nc a np r o d u c er e a li s t i cs o f t s h a d o wa n dh a sc e r t a i na n t i a l i a s i n gf u n c t i o n a l t h o u g ht h i sm e t h o di s n o tt h ep r e c i s ec a l c u l a t i o nb a s e do np h y s i c s ,i ts i m u l a t e st h es o f ts h a d o w t og e n e r a t em o r er e a lis mf a k es o f ts h a d o w sa n dc a nb ea p p lie dt of o r ms o f t s h a d o w si nal a r g es c a l ei n3 ds i t u a t i o n s s ot h i sa l g o r i t h mh a sh u g e a p p l i c a t i o np r o s p e c t k e yw o r d s :r e a l t i m e :s o f ts h a d o w ;s h a d o wr e n d e r i n g :g p u i i i 第一章绪论1 1 1 选题背景及研究意义1 1 2 国内外研究现状2 1 3 研究的主要内容及创新点4 1 4 本文的结构安排4 第二章软阴影绘制相关技术5 2 1 基本概念5 2 1 1 阴影5 2 1 2 硬阴影和软阴影6 2 1 3 伪软影7 2 1 4 走样。7 2 2 软阴影绘制算法8 2 2 1 阴影映射算法8 2 2 2 阴影体算法1 0 2 3 图形处理器1 2 2 3 1 传统图形处理器渲染管线。1 3 2 3 2 可编程图形处理器渲染管线。1 4 2 3 3 可编程图形处理器特点1 5 2 4 本章小结1 6 第三章基于膨胀腐蚀的伪软影生成算法1 7 3 1 图像处理相关理论1 7 3 1 1 结构元素1 7 3 1 2 膨胀1 8 3 1 3 腐蚀1 8 3 2 基于膨胀腐蚀的伪软影生成算法1 9 3 2 1 算法概述1 9 3 2 2 算法步骤。2 0 3 3 基于g p u 加速的膨胀腐蚀伪软影生成算法2 1 3 4 本章小结2 2 第四章实验结果与分析2 3 4 1 实验结果2 3 4 2 算法分析2 6 4 3 本章小结2 6 第五章总结与展望2 7 5 1 全文总结2 7 5 2 下一步的工作。2 8 参考文献2 9 在校期间的科研成果。3 4 致谢3 5 1 1 选题背景及研究意义 现实生活中,阴影是三维场景中不可缺少的重要因素。试想一下,如果一个 三维场景中没有阴影,首先,我们是否会觉得这个场景不够真实,自然就谈不上 沉浸感了;其次,我们是否无法判断场景中物体的空间位置关系。 虚拟现实( v i r t u a lr e a l i t y ,简称v r ) 中,主要通过各种虚拟现实技术( 如 计算机图形学、传感器技术、人机交互技术、人工智能技术以及人机接口技术) 来模拟生成现实生活中的不同三维场景,以提供视觉、味觉、嗅觉、听觉、触觉 等方面的感受,从而使人产生如同在现实生活中的情境感受,对虚拟世界进行体 验和交互。 阴影在三维虚拟场景中伴演着重要的角色。首先,阴影可以帮助我们理解复 杂接收体的几何信息;其次,阴影可以帮助我们理解三维空间中物体间的位置和 大小关系;最后,阴影有助于我们理解复杂遮挡物的几何形状。因此,如何生成 实时而真实的阴影对于三维虚拟场景至关重要。 研究早期,生成的硬阴影是对现实生活中场景的一种简化模拟,虽然能说给 人一种空间感,立体感,然而也存在诸多问题。比如:走样问题,有时物体与阴 影无法区分,只能模拟点光源且生成的阴影比较僵硬等。而点光源在现实生活中 是是不存在的,此外,物体间相互会产生反射光等复杂光照情境,最终在物体上 得到的阴影的亮度情况自然就不同了,也就是说并非是常量。所以说在计算机图 形学中的大多数算法都简化了光照模型,这使得生成的图形真实感大打折扣,尤 其是在大规模动态场景中。 随着计算机图形学的发展,人们对计算机生成图形的真实性要求逐渐提高, 此时,软阴影应运而生。软阴影在真实感方面的作用毋庸质疑,但也带来一个新 的挑战实时性。于是,计算机图形界都在思索如何在保持实时性的前提下提 高图形真实感? 从现在的软阴影生成算法来看,改进的策略众多,但是还是存在 不少问题,有的算法不能形成自阴影,有的算法受到了遮挡体和接收体的类型的 限制,有的算法忽略光源的大小和形状,有的只是形成了半影的内半影,或者外 半影等等。 近年来,随着计算机图形处理器( g p u ) 的出现,各硬件厂商也纷纷在其图形 显示卡中加入了对阴影生成的直接支持。如n v i d i a 公司在他们的产品中提供了 算。一些较新的图形引擎,如c r y e n g i n g 以及u n r e a l ,都提供了对动态阴影的 支持,以生成更为生动,逼真的场景。这一切,为三维虚拟场景中生成高质量的 阴影提供了更加广阔的研究空间。 本文主要基于阴影绘制中的真实感和实时性这一矛盾展开研究,寻求两者间 的一个理想平衡点,在满足实时性的前提下增强场景的真实感,从而达到动态实 时性的要求。 1 2 国内外研究现状 在计算机图形学( c o m p u t e rg r a p h i c s ,简称c g ) ,丑1 11 技术方面,美国和日 本一直处于世界领先水平。虚拟现实技术的研究工作最早是在美国兴起的, s t a n f o r d 大学就是其中之一,还有m i t 、w a s h i n g t o n 大学等科研院所。在欧洲, 虚拟现实的研究得到了欧共体的计划和支持,使得研究工作进展迅速,在诸多方 面已领先世界水平。如:虚拟环境的实现与控制阳4 1 、虚拟世界的感知1 、利用 虚拟空间训练宇航员等。众所周知,日本动漫产业处于世界领先水平,这也 推动了全球计算机图形学的发展。为全球输送了大量电子游戏及动画领域的人 才,同时促进了各种游戏软件及图形处理器7 的发展。计算机图形学相关技 术应用领域覆盖社会各个层面包括多媒体教育、影视制作矾2 1 一、艺术创作 及游戏制作等旧m 6 3 3 。可以毫不夸张地说,计算机图形学已经成为一种文化产业, 给各国带来巨大经济利益的同时,也促进了社会的文明进步。 s i g g r a p h ( s p e c i a li n t e r e s tg r o u pf o rc o m p u t e rg r a p h i c s ,计算机图形图 像特别兴趣小组) ,1 7 2 4 。7 舶1 成立于1 9 6 7 年,一直致力于推广和发展计算机绘图 和动画制作的软硬件技术。是世界上影响最广、规模最大,同时也是最权威的一 个集科学、艺术、商业于一身的c g 展示、学术研讨会。历年大会都有丰富的成 果展示,比如现在很流行的像素、图层、顶点等概念0 14 弛刖,最初大都是在 s i g g r a p h 上发表的学术报告;而a d o b e 、a v i d 、d i s c r e e t 等厂商也都会选择在 大会上宣布软件更新的一些重要信息。因此,s i g g r a p h 在图形图像技术,计算 机软硬件以及c g 等方面都有着相当的影响力。 自从w o o 2 ,引提出阴影算法以来,阴影绘制技术相关研究正式进入人们的视 线,国内外相关专家学者开始从事这方面的研究工作,也提出了众多不同的绘制 算法3 跪2 7 吼j ,极大地推动着计算机图形学及虚拟现实技术的发展。 在众多算法中,有一些算法( 如:光线跟踪、光子映射引、基于全局光 照的辐射度k 、m o n t ec a r l o 光线跟踪以及不连续网格化川3 ) 能够绘制出 2 非常接近现实的阴影效果。但是,由于这些算法模拟现实世界的复杂光照效果而 导致庞大的计算量,达不到虚拟场景实时性的要求,特别是在大规模实时三维虚 拟场景中5 ,豫碱。针对这个问题,人们从软件和硬件两个方面着力解决。硬件 方面,美国s t a n f o r d 大学开发了一个专用光线处理单元,其主要针对需要大量 计算的情境,如光线跟踪算法,从而提高算法的执行效率。软件方面研究成果更 多,如o p e n r t 项目提供了类似于o p e n g l 的a p i 和高度优化的光线跟踪内核等 【2 8 3 3 3 5 】 0 尽管做出大量努力,可实践证明计算量仍然较大,无法满足实时性的要求, 尤其是大规模动态场景1 瑚- 5 51 。因此,研究人员只好在模型简化油。这块取得突 破,这也是为什么现在比较经典的算法都是基于简化模型的重要原因。当然,本 文的研究工作也是基于简化模型的。 随着技术的不断发展,有两种算法成为主流,分别是阴影映射算法( s h a d o w m a p s ) 7 3 蠢3 73 和阴影体算法( s h a d o wv o u m e s ) 盈5 川。 基于阴影映射的软阴影算法大多是先对复杂光源进行采样,然后将多个采样 点生成的阴影表合并。h e r d r i c h 提出了一种扩展算法,在计算阴影表的同时 另外算出一张可视表,此表用于存放各点处光源的可视度。但是该方法只支持线 性光源,于是英正明等沁23 将其改进能够处理复杂光源,如多边形区域光源。 随后提出利用图像处理技术生成软阴影,前提是先使用标准阴影映射算法生 成硬阴影。p a r k e r 川提出了一种用于并行的光线跟踪技术的软阴影算法,只计 算了外半影,然而其实时性不足。随后b r a b e c 旧3 进行了修改,同时计算了外半 影和内半影,充分利用了图形硬件技术提高了实时性。 接着s o l e r 1 等人提出将标准的阴影表同光源的图形进行卷积运算,从而 生成软阴影。因为在一些特殊的情况下,场景中各点处光源可见部分的计算是一 种简单的卷积形式。 基于阴影体的软阴影算法主要思想是:对光源上的每个采样点进行阴影体计 算,最终合并所有采样点生成的阴影体;v i g n a u d 33 提出了一种利用a l p h a 缓存 3 渲染移动光源场景下的软阴影算法;最先使用几何方法渲染软阴影的算法由 h a i n e s :提出;c h a n n1 为了充分利用图形硬件,在阴影体算法基础上,通过构 造光滑翼,4 7 。川来生成软阴影。 综上所述,三维图形学中实时动态软阴影2 绘制中,探究实时性和真实 感间的理想平衡点一直是研究人员追求的目标。同时也推动着图形绘制硬件技术 和软件技术的快速发展。 3 1 1 3 研究的主要内容及创新点 本文研究的主要内容有:基于图像空间的软阴影算法、图像处理技术、可编 程图形硬件技术、阴影体技术、光照和着色处理技术、阴影映射技术、基于对象 空间的软阴影算法、走样和反走样技术、图像渲染。 论文的主要创新点是: 提出了一种基于膨胀腐蚀的伪软阴影生成算法,在满足实时性的条件下,增 强了真实感。 在三维大规模场景中,探索利用g p u 强大的并行计算能力,提高算法执行效 率。 1 4 本文的结构安排 全文分五个部分,对实时软阴影绘制技术及可编程图形硬件技术进行研究和 讨论。具体安排如下: 第一部分介绍了本课题背景及研究意义,分析了国内外研究情况,说明了 本文研究的主要内容及章节安排。 第二部分介绍了阴影相关术语,重点介绍了目前比较经典的两种软阴影生 成算法,分别阐述了算法具体实现过程及用到的主要技术,并对其优劣做了比较 详细的说明。对传统图形处理器和可编程图形处理器作了介绍,重点描述了可编 程图形处理器的特点。 第三部分提出了一种基于膨胀腐蚀的伪软影生成算法。在不降低帧率的前 提下对经典阴影映射算法进行改进,仍然采用两遍渲染,但与经典阴影映射算法 不同的是,我们在第二遍渲染前对生成的阴影图先进行向外膨胀、向内腐蚀操作, 从而得到一幅新的阴影图,然后再对场景渲染。另外,为了提高算法实时性,我 们充分利用了可编程图形处理器的并行计算能力,探索加速方案,提高算法执行 效率,进而增强算法实时性。 第四部分通过实验进一步验证本文提出的基于膨胀腐蚀的伪软影生成算法 在真实感和实时性两方面的性能。对实验结果对比分析发现本文提出的基于膨胀 腐蚀的伪软影生成算法在不降低帧率的前提下,可以生产真实感较强的伪软阴 影,且具有一定反走样功能。 第五部分总结全文,对今后研究工作指明方向。 4 2 1 基本概念 2 1 1 阴影 如图2 - 1 所示,在一个由光源l 照亮的场景中。阴影的接收体( r e c e i v e r ) 为场景中能被光源l 照射到的物体,阴影的遮挡体( o c c l u d e r ) 指在接收体上会投 射阴影的物体。 遮 收体( r e c e i v e r ) 厂| 7 弋 膏l h 半影( p e n 二b r a )名影( u m b r a ) 、半影( p e n u m b r a ) 图2 - 1 阴影术语示意图 从场景中的点p 看出去,看不到光源的任何部分,所有这样的p 点构成阴影 的本影( u m b r a ) ,也即光源l 发出的光线没有一条能够直接照射到的区域为本 影。 如果从场景中点p 看出去,能够看到光源的一部分,这时我们把所有这样的 点构成的阴影称为半影( p e n u m b r a ) ,也即光源l 发出的光线有一部分能够直接照 射到的区域为半影。 需要说明的是,如果光源l 是点光源,那么只有本影而没有半影,因为对于 场景中任意点p 要么能看到点光源l ,要么看不到点光源l 。如果是面光源或体 光源则既有本影又有半影,这时就会出现本影和半影定义中出现的情况。 在计算机图形学中,我们把本影和半影的联合称为阴影( s h a d o w ) 。当然这里 还要区分两类特殊的阴影:自阴影( s e l f s h a d o w s ) 和投射阴影( c a s ts h a d o w s ) 。 自阴影是指一个物体的一部分做为遮挡体而另一部分做为接收体,也即遮挡体的 阴影投射到自己身上。投射阴影是指由投射到其它物体上的阴影所形成的阴影。 硬阴影( h a r ds h a d o w ) :在计算机图形学发展早期,为了简化模型,提高实 时性,而将现实生活中的光源看作一个点,从而大大减少计算量。 如图2 - 2 所示,我们可以非常明显地看到阴影边界,一方面为在计算机中存 储数据提供了方便,因为对于场景中的任何一个点p 只有在阴影内和不在阴影内 的o 和1 两种状态。但另一方面,这种阴影给人的感觉很不真实,不符合生活中 的实际情境,降低了图形的真实感。 接 点光源( p o i n t l i 洲1 7 。i 彳奁蠹釜? 挡体c 。c c ,硼e r , 图2 - 2 硬阴影图不 软阴影( s o f ts h a d o w ) :我们对硬阴影的分析就可以发现,其产生不真实感 的主要原因是阴影和非阴影界线非常明显,给人感觉非常僵硬,有时甚至让人误 认为就是场景中某一物体的几何特征。这关键在于光源模型, 前面我们已经谈到,只有面光源或体光源才会有半影。 如图2 - 3 所示,软阴影的半影并非固定不变,也会随着光源、遮挡体及接收 体三者的大小位置变化而变化,产生不同的效果。当光源离场景较远时,这时我 们便可以用点光源来模拟场景了。 ,面光源 遮挡体( o c c l u d e r ) - 手接收馓鼢c e h e r 软阴影( s 。f ts h a d 佣) 图2 3 软阴影图示 我们可以通过图2 - 4 对比关于硬阴影和软阴影的图像来感受一下它们的区 6 。 _ _ _ _ _ 2 1 3 伪软影 ( a ) 硬阴影 图2 - 4 阴影效果图 ( b ) 软阴影 在计算机图形学发展过程中,硬阴影易实现却真实感不如人意,软阴影真实 感较强却因实时性提升空间有限,所以有些研究人员提出了一种用滤波等图像处 理方法来模拟生成一种软阴影。一方面可以大大减少阴影生成过程中的计算时 间,提高实时性;另一方面,生成的阴影与硬阴影有明显不同,没有明显的阴影 边界,过渡比较自然,与软阴影比较相似,在一些场景要求不高的情况下,有其 应用空间。 需要说明的是,伪软影与软阴影在本质上是不同的。软阴影是严格按照光照 模型及着色模型精确计算而得到的,其半影区域柔化自然,基本与现实生活接近, 一般肉眼无法区分。而伪软影只是在硬阴影的基础上,把边缘模糊化处理,从而 使得计算简单,绘制效率高,与绘制代价昂贵的软阴影相比,有其广泛的应用空 间。尤其是对于那些无法进行预处理计算的动态变形体,如毛发、云、烟等。 2 1 4 走样 走样( a l i a s i n g ) :在计算机图形学中,绘制图像主要是由光栅系统来完成 的。而光栅系统只能用光栅网格上的单个像素近似描绘直线、圆、多边形及椭圆 等图元的边界线。这样,难免会产生如图2 - 5 所示的锯齿状或阶梯状情况,给人 的视觉感就是偏离真实,即称之为走样n 引。 图2 - 5 走样问题 7 。_ _ _ _ _ _ 。_ _ 2 2 软阴影绘制算法 目前比较经典的阴影绘制算法主要有阴影映射算法和阴影体算法。下面我们 分别介绍这两种算法的原理、具体实现过程及其优劣。 2 2 1 阴影映射算法 阴影映射算法( s h a d o wm a p p i n g ) 7 3 是一种基于图像空间的阴影算法, 于1 9 7 8 年由l a n c ew i l lj a m s 提出,基本思想如下:任何场景中,物体与遮挡体 间总存在是否遮挡问题。如果遮挡体到光源的距离小于物体到光源的距离,就说 明当前物体处在阴影之中。所以说,阴影映射算法的关键操作是从光源角度来辨 别区分场景中的区域是否可见,也即判断场景中物体和遮挡体到光源的远近关 系。 阴影映射算法在计算机图形学中实现起来相对简单,主要分二个步骤来进 行: 步骤一:从光源角度出发,在光源坐标系下对整个场景进行一次渲染,这样 做的主要目的是生成一幅场景中所有物体到光源的距离图,也即我们通常所说的 深度图( s h a d o wm a p ) 。当然,这幅图所代表的意义与我们普通的图是有本质区 别的,其每个像素值是指整个当前入射光线方向上,场景中离光源距离最近片元 的深度值( z - b u f f e r ) 。从而为第二步做好准备。当然,在整个过程中我们感兴 趣的是像素深度信息,所以我们在这个过程中不必做任何有关光照的计算,完全 可以把光照计算给关掉,而只打开写深度缓存( z - w r i t e ) 及深度测试( z - t e s t ) 功 能,以便提高算法的执行效率,增强实时性。 步骤二:在世界坐标系下再次渲染整个场景,值得注意的是我们必须把视点 恢复到场景中正常位置,并打开光照计算功能。对场景中每个可见点,计算出该 点到光源的距离后,将此值与步骤一中生成的深度图中对应值进行比较,如果当 前可见点对应的像素到光源的距离比深度图中相应值大,则说明此可见点位于阴 影中,如图2 - 6 所示;反之,如果当前可见点对应的像素到光源的距离比深度图 中相应值小,则说明此可见点位于阴影之外,如图2 7 所示。最后根据比较的结 果对阴影中和阴影外的像素进行相应的光照计算,这样我们就可以得到阴影效果 了。 8 ,? 一卢 视点 视域平面 图2 - 6a = b 当前像素位于阴影外 由于阴影映射算法是一种图像空间算法,有其独特优势: 算法易编程实现,可得到图形硬件的支持。因为该算法仅用了投影纹理 映射和深度比较运算; 算法效率高,一方面是其在图像空间计算阴影主要通过纹理查找实现, 另一方面大大减少场景中的复杂几何计算从而提高其效率; 对场景中的物体形状无特殊要求,效率不随场景中物体复杂度变化而变 化; 对于静态场景效率更佳,主要是因为在这种情况下深度图的值可重复使 用,不必重新渲染计算; 能够较好地处理自阴影问题; 适合大规模场景的实时阴影绘制。 当然,该算法也有其先天劣势,比如: 9 对于动态场景,该算法效率大打折扣,主要原因是在绘制每一帧时必须 再次渲染场景,重新计算深度图; 至少两遍渲染,一遍是从光源视点,另一次是从正常视点; 不能有效处理全光源问题; 容易产生采样误差及走样严重,导致额外开销。 2 2 2 阴影体算法 阴影体算法( s h a d o wv o l u m e ) h 涩5 73 是一种基于对象精确的阴影算法,对遮 挡体的几何形状要求较高,c r o w 1 于1 9 7 7 年在s i c - g r a p h 首次提出,其基本思 想是:沿着光源的直射方向找到遮挡体的轮廓,然后沿直射光方向扩展此轮廓, 构成一个封闭的几何体,我们将其称为阴影体( s h a d o wv o l u m e ) 。接下来就是 判断当前像素是否在阴影体中,并针对不同情况进行渲染。 早期的阴影体算法是对点光源( p o i n tl i g h t ) 而言的,是一种简化模型,我们可 以这么理解:阴影体是一个半无限金字塔,是遮挡体之后,点光源所直射不到的 空间体,也即在这个空间中是看不见点光源的。我们可以通过图2 8 来理解。 光源( l i g h t ) 图2 - 8 阴影体示意图 图2 8 中给定点光源l ,多边形遮挡体p v l ,v 2 ,v n - 1 ,v n ,当然 遮挡体并不一定是规则的几何图形,这里我们是提取了其在光源坐标系下的外边 轮廓。通过上图我们可以清楚地看到,阴影体是一个棱台,但其下底可无限延伸, 直到场景中的接收体上。 为了便于后面的判定工作,我们先将图2 8 阴影体用b s p 表示,如图2 9 所示。这样,我们在判定是否在阴影体内时,可采用右手定则。也即从正对平面 的前侧看过去,其平面顶点为逆时针方向。所以在计算阴影平面方程时的顺时针 1 0 lv 3 ,v 4 lv 4 ,v 5 图2 9 阴影体的b s p 表不 此算法采用的是z p a s s ,这使得阴影体算法并不稳定,比如:当视点在阴影 体中时,阴影体的渲染就会出错,除非先用视平面对阴影体进行截取。此外,容 易出现自阴影的问题。比如:阴影多边形和原来物体的表面重合在一起的时候。 于是出现了一些改良算法,其中比较经典的是b e r g e r o n 提出的算法。其主 要思想是这样的:在世界坐标系中,有一视点不在阴影体中,如图2 1 0 所示。 遮挡体2 、 来光源叫出) 声 视点 + 1 - ,l 图2 1 0 阴影体算法原理 从视点出发向场景中任意点p 引一矢量v ,要确定点p 是否在阴影中的方法 是:先定义一个初始常量m ,并赋初值o 。从视点出发,沿矢量v 前移,每遇到 一个前向阴影平面m 就自动加l ,每遇到一个背向阴影平面m 就自动减1 ,直到 到达p 点。最终,我们只需要判断m 是否为o ,如果是,则说明p 点在阴影体之 外,也即光源可以照射到的区域,如图2 1 0 中p 4 :否则,p 点在阴影体中,也 即光源照射不到的区域,如图2 1 0 中的p 3 、p 1 、p 2 。 阴影体算法于1 9 9 1 年由h e i d m a n n 基于图形硬件实现,主要用到s t e n c i l 存中。值得注意的是,先绘制场景中面向光源的阴影多边形,因为s t e n c i l 缓 存只能存储正整数。另一方面,深度缓存的状态应设置为只读,这样可以防止阴 影多边形的相互遮挡,产生错误阴影。然后,绘制场景中背向光源的阴影多边形, 如果场景中某点通过深度测试,则减少其在缓存中的值。最后,我们对s t e n c i l 缓存中的值进行判断。如果等于零,说明该点在阴影体之外;否则,说明该点在 阴影体中。特别说明一点:阴影体中的像素总是处于前向阴影面和背向阴影面之 中,经过上述操作后,s t e n c i l 缓存中的值是不会小于零的。 阴影体算法有许多其它算法没有的优点: 得到硬件的支持易实现,可充分利用g p u 并行计算能力为算法加速; 可以处理全方位光照; 对特殊阴影也可正确处理生成。如:自阴影、投射阴影等; 基于对象精确,得到的阴影像素级别精度高; 不会出现采样误差及走样问题; 当然,也有其不利的一面。比如: 对场景中物体,特别是遮挡体的几何形状要求较高; 在算法第一步,要渲染生成一个轮廓多边形,这对于大规模场景来说计 算是一个庞大的工程,大大降低算法效率; 对无固定外形或动态变形体的阴影处理效果不佳,如云、烟等; 绘制阴影体需高填充率,不适用于大规模场景。 2 3 图形处理器 上世纪八十年代,p c 显卡问世,为计算机图形学的发展开辟广阔前景,不 过早期主要是二维的。直到n v i d i a 推出g e f o r c e2 5 6 ,计算机图形学界才开始 逐步提出图形处理器( g p u ) 。但是,此时的g p u 都采用固定管线绘制技术,有 其局限性。而可编程图形处理器问世的标志性事件就是g e f o r c e3 的出现,主要 新增功能有:坐标转换( t r a n s f o 珈i n g ) 和光照( l i g h t i n g ) 。随着市场需求的变 化,研究人员逐步加入顶点着色器( v e r t e xs h a d e r ) 和片元着色器( p i x e ls h a d e r ) 等像素级别的可编程性能。 随着计算机图形学的发展,g p u 发展速度已经远远超过中央处理器( c p u ) 的增长速度,究其原因主要是在图形硬件中实现了可编程功能,从而使得程序员 可以自己编写顶点着色器及片元着色器,操作便捷、灵活。尽管还存在一定局限 性,如循环嵌套层数受限,但因其强大的计算能力,在诸多方面有着广泛的应用, 1 2 甚至有些学者认为,g p u 将成为未来计算的主流。 2 3 1 传统图形处理器渲染管线 流水线是指一个按照固定顺序执行的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学一年级下册数学期末模拟试题
- 《不义而富且贵》教学设计示例
- 静脉炎临床诊断标准及护理指南
- 人教版三年级数学单元考核试题
- 酒店餐饮部卫生管理标准操作流程
- 软件开发项目敏捷管理实践方案
- 古代文学经典阅读与赏析教学设计
- 建筑工程项目经理工作手册
- 污水处理厂BOT项目执行方案
- 建筑项目招投标流程及风险控制指南
- 项目经理职业生涯规划
- 除锈剂MSDS参考资料
- 高一英语选择性必修一课文及翻译(外研版新教材)中英Word精编文档
- 社会调查研究抽样课件
- 消防管道支架工程量计算表
- 英语英语句子成分和基本结构
- 应用成型的双面彩钢板复合风管代替传统的铁皮风管
- JJF(石化)006-2018漆膜弹性测定器校准规范
- 东华软件需求调研提纲汇总版与03-02同步
- 电焊工模拟试题(含答案)
- 全国优质课一等奖初中数学《有理数的乘方》精品课件
评论
0/150
提交评论