(计算机应用技术专业论文)基于路径时空一致性的高效动画渲染方法研究.pdf_第1页
(计算机应用技术专业论文)基于路径时空一致性的高效动画渲染方法研究.pdf_第2页
(计算机应用技术专业论文)基于路径时空一致性的高效动画渲染方法研究.pdf_第3页
(计算机应用技术专业论文)基于路径时空一致性的高效动画渲染方法研究.pdf_第4页
(计算机应用技术专业论文)基于路径时空一致性的高效动画渲染方法研究.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 随着计算机动画技术的不断发展,人们对动画质量的要求越来越高。基于目 前人们对计算机动画技术的研究现状以及受计算机硬件技术的限制,离线情况下 渲染高质量动画还是非常的耗时,这种情况在有间接光照场景的动画中表现的尤 为突出。 本文提出一种基于路径时空一致性的高效动画渲染方法。该方法将路径时空 一致性应用在高效动画渲染框架上,达到提高渲染动画质量的目的。首先,本文 提出适合动画渲染的路径时空一致性方法,分析了在动画渲染过程中使用路径时 空一致性方法的必要性,并给出了如何使用路径时空一致性方法提高路径的生成 效率。然后,从两方面设计高效的动画渲染框架,一方面是利用共享方法和r s 内存结构来管理动画渲染过程中所需的内存;另一方面是利用最大化空区域法、 重划分方法和替换技术动态更新k d 树来减少光线在动画场景中的传输时间和 进一步减少动画渲染过程中内存的使用。并通过实验结果详述了如何根据不同动 画场景环境设置不同的r s 参数值,达到最大化利用动画渲染框架的目的。接着 分别实现了如何在动画场景中处理路径的可见性变化,如何利用路径可见性变化 测试方法在路径空间一致性基础上开发路径时空一致性以及如何将路径时空一 致性应用在高效动画渲染框架上实现基于路径时空一致性的高效动画渲染方法, 达到在相同时间内生成更多有效样本路径的目的,使得生成图像的质量更高。 最后分别从两方面展示了基于时空一致性动画渲染方法生成动画的优越性: 一方面通过无参考图形质量评估方法来说明利用该技术可以有效的消除动画在 时间上的噪声;另一方面通过展示动画中的单帧图像对比效果来分析和说明在相 同时间内可以生成更高质量的动画,特别是在间接光照场景中。 关键词:时空一致性动画渲染框架最大化空区域可见性变化空间一致性 a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m p u t e ra n i m a t i o nt e c h n o l o g y ,p e o p l er e q m r e a n i m a t i o nw i t hh i g h e ra n dh i g h e rq u a l i t y a c c o r d i n gt o t h el i m i t a t i o no fc u r r e n t c o m p u t e rh a r d w a r et e c h n i q u e ,i ti sv e r yt i m ec o n s u m i n gf o ro f f i i n er e n d e r i n gh i g h q u a l i t ya n i m a t i o n ,e s p e c i a l l yf o ri n d i r e c tl i g h t i n gs c e n e w ep r o p o s ea ne f f i c i e n ta n i m a t i o nr e n d e r i n gm e t h o dw h i c he m p l o y ss p a t i o - t e m p o r a l c o h e l i e n c eo na n i m a t i o nr e n d e r i n ga r c h i t e c t u r e f i r m l y , w ea n a l y z et h en e c e s s i t yo f u s i n gs p a t i o - t e m p o r a lc o h e r e n c ei na n i m a t i o nr e n d e r i n ga n dg i v et h em e t h o do fh o w t ou s es p a t i o t e m p o r a lc o h e r e n c ef o rh i g he f f i c i e n c yr e n d e r i n g s e c o n d l y , w ed e s i g n e f f i c i e n ta n i m m i o nr e n d e r i n ga r c h i t e c t u r ei nt w ow a y s o n et h eo n eh a n d ,u s i n g s h a r i n gm e t h o da n dr sm e m o r ys t r u c t u r et om a n a g em e m o r ys p a c e ;o nt h eo t h e r h a n d u s i n gm a x i m i z i n gs p a c er e g i o n ,s u b d i v i d i n ga n d r e p l a c i n gm e t h o d st od y n a m l c u p d a t ek dt r e ef o rr e d u c i n gt i m eo fr a yt r a v e r s a la n dm e m o r yc o n s u m i n g ih r o u g n e x p e r i m e n t s ,w ed i s c u s ss u i t a b l er s sa c c o r d i n gt o d i f f e r e n ts c e n e sw h i c hm o s t l y u t i l i z ea n i m a t i o nr e n d e r i n ga r c h i t e c t u r e t h i r d l y , w ei m p l e m e n t h o wt od e a lw i t hp a t h v i s i b i l i v yc h a n g ei na n i m a t i o ns c e n e ,h o wt ou s ep a t hv i s i b i l i t yc h a n g et e s tm e t h o d b a s e do np a t hs p a t i a lc o h e r e n c et od e v e l o p m e n tp a t hs p a t i o - t e m p o r a lc o h e r e n c e a n d h o wt ou s ep a t hs p a t i o - t e m p o r a l c o h e r e n c ei ne f f e c t i v ea n i m a t i o nr e n d e r i n g a r c h i t e c t u r ct od e v e l o p m e n te f f e c t i v ea n i m a t i o nr e n d e r i n gm e t h o d b a s e do np a t h s p a t i o t e m p o r a lc o h e r e n c ei no r d e r t op r o d u c em o r ec o m p l e t ep a t hi nt h es a m et l m e a n dp r o d u c eh i g hq u a l i t yi m a g e f i n a l l y , w ep r e s e n tt h ea d v a n t a g eo fo u ra p p r o a c hi nt w oa s p e c t s n o - r e f e r e n c e i m a g eq u a l i t ye v a l u a t i o nd e m o n s t r a t e so u ra p p r o a c hc a ne f f e c t i v e l yr e m o v et e m p o r a l n o i s ei na n i m a t i o n m o r e o v e r , c o m p a r i s o nb e t w e e nf r a m e si n d i c a t e so u ra p p r o a c hc a n p r o d u c ea n i m a t i o n w i t hh i g h e rq u a l i t y ,e s p e c i a l l yi ni n d i r e c ts c e n e s k e yw o r d s :s p a t i o t e m p o r a lc o h e r e n c e ,a n i m a t i o nr e n d e r i n ga r c h i t e c t u r e , m a x i m i z i n gs p a c er e g i o n ,v i s i b i l i t yc h a n g e ,s p a t i a lc o h e r e n c e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤鲞盘鲎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 一躲倚、咩平蝴期:加分年月乡日 学位论文版权使用授权书 本学位论文作者完全了解苤盗盘堂有关保留、使用学位论文的规定。 特授权丕盗盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名l 搿华午 签字日期:也嘲厂年多月乡日 导师签名: 诉 签字日期:b f 年己月毛 日 第一章绪论 第一章绪论 在图形学领域,常常需要大量的时间来渲染高质量的动画。特别是在离线的 逐帧渲染情况下,渲染一帧高质量的图像常常需要耗费几个小时甚至几天的时 间,这意味着渲染一段高质量动画或视频的时间可能是无法承受的。因此,在动 画渲染过程中减少动画渲染时间就变得非常重要的,而动画渲染时间的长短又直 接和场景本身的复杂程度相关,在场景的复杂程度中间接光照对图像渲染时间有 着非常大的影响。 1 1 研究背景和状况 在生成图像的过程中,特别是在场景中包含间接光照的环境下,找到一条有 效光线路径的概率非常小。例如本文实验中用到的物体移动场景,找到一条有效 光线路径的概率只有1 2 3 0 ,也就是说平均需要生成2 3 0 条光线路径才能得到一 条有效的光线路径。通常情况下,找到一条有效光线路径并计算完该路径的贡献 后就扔掉,继续寻找下一条有效光线路径,这种方法非常浪费时间。e r p t i l j 正 好弥补了这个缺点,它将m l t t 2 ,3 ,4 1 和路径追踪方法结合起来,通过在路径空间 对有效路径进行路径变换得到一条新的有效路径。这样当找到一条有效路径并计 算完贡献后,并不是直接将这条有效路径扔掉,而是利用这条有效光线路径在路 径空间进行路径变换产生一条新的有效路径,提高有效路径在间接光照场景中的 生成效率。但是e r p t 使用相同能量流动规则来分配能量,容易造成图像因为能 量流动不出去而产生亮斑的效果。y u c h i t 5 】提出了等比例能量流动规则方法来减 少亮斑的出现,每次分配能量的大小直接和接受概率相关,接受概率越大,分配 的能量越多;反之,就越小。s h a o h u af a n 【6 ,7 】将p o p u l a t i o nm o n t ec a r l o ( p m c ) 峭j 方法和路径追踪1 9 j 方法结合起来提出了p m c p t 方法,该方法通过改变路径 链长度来减少图像中亮斑出现的概率。 时间一致性走样问题之所以难以解决的主要原因是在动画渲染过程中路径 的时间一致性很难被开发出来。当前大部分基于光线追踪的渲染系统中,如 p b r t l 9 ,10 1 ,m a y ar e n d e r i n gs y s t e m 1 1 1 ,p h o t o r e a l i s t i cr e n d e r m a n 1 2 ,1 3 】等,动画 都是逐帧计算出来的,这种情况下路径时间一致性通常是被忽略的。而在动画中, 单帧的看动画中的图像时,图像中的噪声水平也许可以接受,但是一旦将这些可 以接受的噪声水平图像连成动画,动画中就会产生讨厌的闪烁,震动等效果。为 第一章绪论 了解决动画中的时间一致性问题,v l a s t i m i ih a v r a n 【1 4 ,1 5 , 1 q 提出了一种考虑时间 一致性的动画渲染框架,该框架利用路径在复用帧中的复用和重采样完成路径时 间一致性的开发。v l a s t i m i lh a v r a n 虽然利用了双向路径追踪方、法【17 ,1 8 1 来减少动 画渲染框架在间接光照场景中的不适应性,但是这种方法在间接光照场景中对效 率的提高依旧有其极限性。 1 2 主要研究工作 本文的目标是将光线路径空间一致性和光线路径时间一致性结合起来,并利 用高效动画渲染框架管理动画场景中的动态物体和静态物体。达到高效开发基于 路径时空一致性动画的目的。本文的主要研究工作如下: 1 :提出适合动画渲染的路径时空一致性方法,并分析了在动画渲染过程中 使用路径时空一致性的必要性和给出如何利用路径时空一致性在动画渲染过程 中提高路径的生成效率。 2 :设计适合路径时空一致性的高效动画渲染框架来组织动画场景中的动态 物体和静态物体。首先利用共享方法减少保存动画场景中动态物体所需的内存。 同时利用最大化空区域法、重划分和替换技术动态更新k d 树,减少动画渲染过 程中对内存的消耗和光线在动画场景中的传输时间。 3 :提出如何在基于时空一致性的动画渲染过程中处理路径可见性变化。 4 :实现如何利用路径可见性变化方法在路径空间一致性基础上开发路径时 空一致性以及如何将路径时空一致性应用在高效动画渲染框架上实现基于路径 时空一致性的高效动画渲染方法。 1 3 本文组织 第二章,回顾和路径时空一致性相关的理论知识,如蒙地卡罗积分、细节平 衡和全局平衡、m e t r o p o l i s 采样、能量重分布采样、动画渲染框架和p b r t 渲染 系统等。第三章,给出了在动画渲染过程中使用路径时空一致性的必要性。第四 章。改进已有的动画渲染框架,不仅适合用来开发路径时空一致性,而且减少动 画渲染过程中内存的消耗及光线在场景中的传输时间。第五章,开发了路径时空 一致性,并应用在改进后的动画渲染框架上。第六章,从两方面对比和分析了利 用动画渲染技术渲染出图像和利用传统方法生成图像质量的优越性。第七章,总 结了工作,并对下一步的工作进行了展望。 2 第二章相关理论介绍 第二章相关理论介绍 这部分主要介绍一些与开发基于路径时空一致性动画渲染系统相关的理论 知识。首先介绍了蒙地卡罗积分;然后描述了和马尔可夫链相关的全局平衡和细 节平衡:接着讲述了m e t r o p o l i s 采样和能量重分布采样;最后介绍了已有的动画 渲染框架和p b r t 渲染系统。 2 1 蒙地卡罗积分 蒙地卡罗方法,也称计算机随机模拟方法,是一种基于“随机数 的计算方 法。这一方法源于美国在第一次世界大战中进行研制原子弹的“曼哈顿计划。 该计划的主持人之一,数学家冯诺伊曼用驰名世界的赌城一摩纳哥的蒙地卡罗 一来命名这种方法。 蒙地卡罗的基本思想:给定一个函数厂,该函数在状态空间q 上的积分公式 为: 厂( j f ) d ( i ) 公式( 2 1 ) 牙表示z 是向量而非标量。蒙地卡罗积分通过创建随机变量一,并使随机变量 的期望值等于积分值,即: e x a = l 厂( 列( - ) 公式( 2 2 ) 来解决函数厂的积分问题。为了计算( i ) 的值,可以在状态空间q 上通过概率 分布p 产生样本i 的位置,那么: _ ( _ ) = 器 公式( 2 3 ) 通过公式( 2 3 ) 计算的积分是无偏的,但可能会导致高方差。通常利用平均化 ( i ) 值的方法来减少方差,本文称( i ) 为样本位置i 处的初始能量值。 通过重新组织公式( 2 - 3 ) ,i g l 数f 的值可以利用和p 计算: 第二:章相关理论介绍 ( 习= t ( i ) p ( 习 本文称t ( 孑) p ( 劝为样本位置i 处的期望能量,也称平均能量。 2 2 能量流动中的细节平衡和全局平衡 公式( 2 4 ) 如图2 1 所示:可以通过变换源样本路径1 1i 得到新的样本路径歹来表示能 量的流动( 可以想象为在舅和歹之间有一管子将它们连起来,能量通过管子可以 在i 和歹之间流动) 。 图2 1 能量流动示意图 在这种情况下,从i 流到歹的平均流动能量【1 】公式为: e 【( i 专歹) 】= e 彳,( 舅) p ( i ) r ( i 一萝) 口( 冤专歹) 公式( 2 - 5 ) 其中:( i 专歹) 表示从i 流到歹的能量,丁( z 专歹) 表示从i 变换到歹的概率, 口( i 专歹) 表示当i 和歹之间建立连接后从孑流到歹的能量百分比,石r ( i ) p ( i ) 为i 处的能量值。 为了保证能量流动的无偏性,只需要满足从源样本点i 流出的能量等于从外 界流入该样本点的能量即可。如图2 2 所示。满足这种能量流动属性的称为全局 平衡。公式表示为: e 扣( - 哼歹) d ( 歹) = e 卜( 罗专动d ( 歹) 坛公式( 2 - 6 ) 一个更强的无偏限制条件:任意两点间相互流动的能量相同。即从样本点i 流到样本点歹的能量等于从样本点歹流到样本点孑的能量。如图2 2 所示,满足 这种能量流动属性的称为细节平衡。公式表示为: 4 第二章相关理论介绍 e 西( i 哼歹) = e 西( 歹j i ) 派,歹 公式( 2 - 7 ) 通过公式( 2 5 ) 和公式( 2 7 ) ,可以得到: 巧( _ ) p ( i ) 丁( - 一刀口( _ 寸刃- - x :( y ) p ( y - ) t ( y - - - i ) a ( y 专习 公式( 2 8 ) 二二夏二二夕 从而可以依据公式( 2 8 ) 导出接受概率表达式: 缨:挈娶婴墨害 公式( 2 - 9 ) 一=-一 7 ,卫z - 、,j o c ( y i ) yr ( i ) p ( i ) 丁( i 歹) 事实上,如果让口( i 专刃和a ( y - - - h 习尽可能大的话,那么变换后的路径更容易 被接受。这样在相同数量路径的情况下,更容易达到平衡。所以可以这样定义接 受概率: 口何j 刃= 聊加 - ,辜墨笔黼) 公式c 2 - 。) 这样可以将口何专罗) 和a ( y _ i ) 较大者置为1 。表明在两个状态间转移时,其 中一个方向的转移肯定会被接受,而另一个方向的转移则是以一定的接受概率接 受,这样即可以保证细节平衡条件的满足,又可以更快的朝着稳态方向发展。 2 3m e t r o p o l i s 采样 m e t r o p o l i s 1 9 ,2 0 1 算法最早由m e t r o p o l i s ,r o s e n b l u t h ,a n dt e l l e r 在1 9 5 3 年为解 决物理学采样方面问题而提出的。这种方法工作如下:给定一个状态空间q 和一 个非负函数f :q j 犬+ 。同时给定一个初始状态:c o q ,目标是产生一序列样本 第二章相关理论介绍 值k ,墨,五,五,其中置的获取只和五一有关而和置一,之前的所有状态无 关,使得最终五的分布和厂成比例而和初始状态k 无关。在本文所使用的方法 中,通过路径变换来产生新的样本,然后利用细节平衡和全局平衡来维护样本的 无偏性,即: 给定条件:函数厂( x ) ,其中x q ; 目标:产生样本置卜p ( x ) ,其中p ( x ) o c f ( x ) ,且【、p ( x y ( x ) = l 。 - - - - , ,一一- ,二,1 , 。 图2 - 3m e t r o p o l i s 采样 如图2 3 所示,m e t r o p o l i s 算法通过在不同积分区域q ,q 移动样本位置来计 算各个积分值,本文每个积分区域代表一个像素。当样本移动时,用柱状图来保 存样本位置。最后样本落在各个积分区域的次数等比于该区域最后积分值。 2 4 能量重分布采样 能量重分布采样方法【1 1 作为一种新的路径积分方法,它通过两步来计算相关 积分值。首先从积分域获取蒙地卡罗1 2 1 ,2 2 1 样本点,然后将这些样本点的能量利 用能量流动规则在相关积分域进行能量的重分配,但是要保证能量流动规则是无 偏的。其过程参考图2 4 : 图2 - 4 能量重分布采样方法 6 第二章相关理论介绍 对于能量流动规则方法,d a v i dc l i n e i l j 在e r p t 中提出了相同能量流动规则, 即每次通过接受概率判断接受还是拒绝后,分配的能量都相同。y u c h i t 5 】中提出 了等比例能量流动规则方法,这样每次分配能量的大小直接和接受概率相关,接 受概率越大,分的能量越多,反之,就越小。但是这两种方法都有一个共同的缺 点,当一条路径能量很大的情况下,需要大量时间来对这条路径进行路径变换。 本文用的能量相关的相同沉积流动规则1 2 3 方法,不用花很长的时间来进行路径变 换,而是利用节省下来的时间采更多的样本,获得更好的图像效果。能量相关的 相同沉积流动规则方法如图2 5 。其中,i ,歹代表原始路径和变换后的路径,e 为 路径i 的能量,m 为采样链的长度,s 为总的样本路径数和有效路径数的比例, 白为分配的能量,e d = m ,为样本路径的平均能量,即屏幕像素的平均 能量。 2 5 动画 图2 5 能量相关的相同沉积流动规则 目前很多动画渲染方法都是基于蒙地卡罗技术对每一帧的路径进行重复计 算,利用相同的随机数产生路径来减少动画过程中的闪动。由于在动画场景中光 线路径在每帧都有可能发生变化,那么和每条路径相关的随机数序列都必须独立 于其它路径。但是这些方法通常都很低效,因为在动画场景中很多路径都是可以 被复用的,而不需要重新计算。在本文的方法中,通过路径在帧间存在被复用的 可能开发了路径时间一致性,从而避免了重复计算。 7 第二章相关理论介绍 2 5 1 动画的分类 全局光照动画渲染算法可以高效的处理动画场景中不同类型的变化,动画场 景中的类型变化主要分为以下三种: l :光源的变化【2 4 】:光源的变化包括光源位置的改变、光源亮度的变化、光源 形状的改变、光源在不同方向能量分布的变化等。 2 :视点变化1 2 5 】:视点的变化包含很多种,如视点位置、相机的可视角度、 焦距、光圈大小等等。本文只讨论视点位置的变化。 3 :物体变化:场景中的物体分为刚体和非刚体两种。刚体的表示及其变化 的描述相对简单,本文中只讨论刚体的变化。刚体的变化包括平移、旋转、缩放 等。 动画场景中的全局光照动画渲染算法可以分为两类: 1 :交互式方法【2 6 ,2 7 】:被设计用来在图像质量和响应速度之间的寻找一个平 衡,主要目的是在场景环境变化时提供快速的响应。交互式方法需要提供固定的 帧率,有时为了追求时间上的灵敏度,它往往会牺牲图像的渲染质量。 2 :离线式方法【2 8 ,2 9 】:需要完全的预知场景中对象的变化轨迹。这种方法的 目的是为了产生高质量的图像,没有严格的时间限制。 本文所使用的方法严格意义上来说是属于离线式的,其中包含了视点变化和 物体变化【1 5 ,3 0 j 。 2 5 2 裁减空区域法 在k d 树的构造过程中,当子节点为空时,此节点将被声明为叶子节点而不 用再细分。空的叶子节点在光线求交和光线传输方面具有重要意义。因为当光线 通过空的叶子节点时,求交运算可以被忽略,源于在看到光线和物体求交之前的 区域必为空区域,所以通过最大化空区域可以减少光线的传输时间。v l a s t i m i l h a v r a n 3 1 ,3 2 】提出了一种称为裁剪空间区域法的k d 树构造方法,如图2 - 6 所示。 列出了三种不同的空间划分方法 3 3 , 3 4 , 3 5 1 ,从上到下依次为等对象空间划分方法, 推迟裁剪空区域法和前期裁剪空区域法。在一次光线求交时间远远大于光线传输 时间的情况下,前期裁减空区域法是最好的。如图所示,当一条光线通过场景时, 光线在等空间区域划分方法中需要和两个节点中的物体进行求交测试。在推迟裁 减空区域法中光线虽然只用和一个节点中的物体进行求交测试,但是确需要通过 两个空区域。而在前期裁减空区域法中,虽然光线也需要和一个节点中的物体进 行求交测试,但是光线仅仅通过一个空区域。v l a s t i m i lh a v r a n i l 4 j 将裁剪空区域 法应用到了动画中,用来减少没有和场景中动态物体相交的光线传输时间。 s 第二章相关理论介绍 2 6p b r t 渲染系统简介 令团油 1 囝 图2 - 6k d 树的空间划分法 p b r t 渲染系统是由m a t tp h a r r 和g r e gh u m p h r e y s 编写的基于物理的全局光 照渲染系统。它采用组件式结构,由一个核心模块c o r e 来管理和控制整个渲染 系统,渲染过程中的每一个环节都提供了多种实现,每个实现都由一个组件完成。 渲染时根据场景文件的设置有选择性加载某些组件来共同协作完成预定的渲染 任务。 总的来说,p b r t 系统渲染过程主要由三部分组成。首先,p b r t 系统读入 预先设计的场景文件,场景文件中包括场景的视点位置,物体组成,位置,纹理 及其材质,光源等信息,还包括为每个渲染环节选定的组件模块名称,系统会根 据场景文件的设定加载需要的组件,并建立相应的k d 树【3 6 3 7 1 来保存读入的物 体及光源。 其次,当读入完场景后,系统进入主渲染流程,渲染过程如图2 7 所示。采样 器s a m p l e r 生成样本点,虚拟相机c a m e r a 根据样本点生成光线射入场景中,然后 路径积分器i n t e g r a t o r 追踪该光线在场景中进行的传输,反射,折射等事件,最后 生成一条路径并返回光照值。在光线传输过程中和场景中几何物体进行求交的同 时,根据物体的不同材质属性确定b s d f ( ( b i d i r e c t i o n a lr e f l e c t a n c ed i s t r i b u t i o n f u n c t i o n ) b r d f 和( b i d i r e c t i o n a lt r a n s m i t t a n c ed i s t r i b u t i o nf u n c t i o n ) b t d f 的混合) 9 第二章相关理论介绍 及光线反射和折射方向。 图2 7p b r t 渲染流程 最后把光线返回的光照值记录在虚拟胶片f i l m 中,将所有光照值写完后, 通过一些滤波操作得到每个像素的光照值,并记录在e x r 格式的结果图像中。 l o 第三章镕径h 空一致性的提m 第三章路径时空一致性的提出 本章主要提出适合动画渲染的路径时空 致性方法,分析了在动画渲染过程 中使用路径时空一致性的必要性,并给出了如何使用路径时空一致性在动画渲染 过程中提高路径生成效率。本章首先介绍了如何利用路径空间一致性提高场景中 路径的生成效率以及更高效的开发问接光照场景。接着讲述了为什么需要借助路 径时间一致性提高动画场景中路径的生成效率以及消除动画的时间噪声。最后分 析了在动画渲染过程中将路径时间一致性和路径空间一致性结合起来开发路径 时空一致性的必要性以及如何利用路径时空一致性提高路径的生成效率。 3 1 路径空间一致性 基于路径光线追踪的渲染方法中常常需要耗费大量的时间生成一条有效路 径( 本文所说的有效路径是指最后和光源相连的路径) 。本文所说的耗时包含两个 方面:一方面指光线在场景中进行传输时,需要和场景中的物体进行求交测试、 折射和反射等耗时操作:另一方面是在场景中找到一条有效光线路径的概率非常 小特别是在间接光照场景中。比如图3 1 所示的场景,生成有效路径的概率只 有1 2 3 0 ,也就是说平均需要生成2 3 0 条路径,才有得到一条有效路径。而通常 情况下,找到一条有效路径并计算完该路径的贡献后,就认为这条路径已经处理 完了,然后继续利用光线追踪方法寻找下一条有效路径,这种方法非常浪费时间。 本文利用路径空间一致性可以解决有效路径生成效率低的两个问题。 创3 - 1 场景图 路径空间一致性指的是用一条已经存在的有效路径在路径空间通过路径变 第三章路径时空一致性的提出 换来获得一条新的有效路径。这条路径可能是一条全新的路径,也可能是在源路 径的某点上结合而成的路径。本文使用两种常用的路径变化方式来对有效路径进 行变换:一种是视点变换,即通过随机变换屏幕路径样本位置【l j 达到对路径的变 换,进行该种方式变换的路径形式为:( l i d ) d s * e ( h e c k b e r t s 【3 8 l 表达式,其中e 代表视点,s 代表镜面反射,d 代表漫反射,l 代表光源,木代表零个或者多个) 。 另一种是焦散变换,即通过在光源或路径倒数第一个漫反射点处对光线方向进行 随机抖动【l 】达到对路径的变换,进行焦散变换的路径形式为:( d i l ) s * d e 。 利用路径空间一致性对路径进行变换不但可以减少路径的生成时间,而且还 可以极大的提高有效路径的生成效率。如图2 1 左边所示的视点变换,路径形式 为:l d d s s e ,满足视点变换要求的形式。新的有效样本路径y 由源样本路径i 在 屏幕位置进行一定的抖动后发出,在s 处进行镜面反射,在d d 处和路径更重叠 从而产生了路径歹。图3 2 右边所示的焦散变换,路径形式为:l d s s d e ,满足 焦散变换需要的形式。新的有效路径萝从光源处和路径i 同一方向发出,在d 处 进行抖动,在s 处进行镜面反射,最后在d 处通过抖动和视点相连产生路径歹。 两种方法生成的新路径y 不但需要的时间更少,而且还可以直接获得新的有效路 径。 _ + 原始路径段变换路径段一- 4 1 , 连接路径段 视点变换 3 2 路径时间一致性 图3 - 2 路径变换示意图 焦散变换 由于路径时间一致性的难以开发性导致路径时间一致性在动画渲染过程中 常常被忽略,这意味着在动画渲染过程中必须用大量的时间对每帧进行重复的计 算。这种方法不但会因为路径的重复计算而大量的浪费时间,而且忽略路径时间 一致性会产生动画的时间噪声。如图3 3 所示:左边是利用路径空间一致性生成 1 2 第三章镕径时! 致性提m 的图像,右边是在路径空间一致性的基础上加入路径时间一致性后生成的图像 直接看这两幅图像也许没什么差别,但是将这两种方法生成的图像连成动画时 没有加入时间一致性的动画就会产生讨厌的闪烁、微光及震荡等效果。 一一 睬7 醺 第三章路径时空一致性的提出 3 3 路径时空一致性的提出及应用 在图像渲染过程中,利用路径空间一致性可以减少路径生成时间和提高路径 在场景中的生成效率。即利用路径追踪方法生成一条路径的时间和利用路径空间 一致性变换一条路径的时间存在如下关系: 乃咖 乙“嘲 公式( 3 1 ) 利用路径时间一致性可以消除动画的时间噪声和提高路径在动画场景中的 生成效率。即利用路径追踪方法生成一条路径的时间和利用路径时间一致性复用 一条路径的时间存在如下关系: 耙 乙 公式( 3 2 ) 将公式( 3 1 ) 和公式( 3 2 ) 结合起来,利用光线追踪方法生成路径的时间、 路径的变换时间和路径的复用时间存在如下关系: 配 乙枷翩 砭脚 公式( 3 3 ) 由公式( 3 3 ) 可知,在路径的生成过程中,利用光线追踪方法生成路径的 时间大于路径的变换时间,而路径的变换时间又大于路径的复用时间。根据路径 生成时间的特性,本文提出了路径时空一致性方法,该方法将路径空间一致性作 为桥梁,尽量减少用路径追踪方法生成的路径数目,而最大化的利用路径时间一 致性生成路径。过程如下:首先在当前帧利用路径追踪方法生成有效路径;接着 将当前帧这条有效路径利用路径时间一致性在复用帧中进行路径复用;最后利用 路径空间一致性对当前帧的有效路径进行路径变换,并将路径变换得到有效路径 再利用路径时间一致性在复用帧中进行路径复用。最终实现最大化的提高路径生 成效率。 1 4 第四章高效动画渲染框架的设计 第四章高效动画渲染框架的设计 本章主要从两方面讲述如何设计适合开发路径时空一致性的高效动画渲染 框架:一方面是动画渲染框架中内存的管理;另一方面是动画渲染框架中物体的 管理。这两方面作为影响动画渲染时间长短的关键因素,在动画渲染过程中起着 非常重要的作用。首先,本章讲述了如何管理动画渲染框架中的内存,减少动画 渲染过程中内存的使用。然后,详细描述了如何管理动画场景中的动态物体和静 态物体,更进一步减少内存的使用和光线在场景中的传输时间。最后通过实验结 果说明如何根据不同动画场景设置不同的动画渲染框架参数值,达到最大化利用 动画渲染框架的目的。 4 1 动画渲染框架中的内存管理 动画渲染框架中内存的管理主要包括两方面:一方面是如何管理加载动态物 体过程中的内存,另一方面是如何管理动画渲染过程中的内存。 对于加载动态物体过程中内存的管理,主要是利用共享技术,使得场景中同 类动态物体除了表示位置的变换矩阵外,别的信息都可以被共享,如物体的面片 组成、物体的材质和纹理等。由于在物体的移动过程中,物体的形状和材质属性 并没有发生变化,变化的仅仅是物体的位置。这样就没必要为每个动态物体都保 存其完整数据,而只需要为每类动态物体保存一份数据,每个属于该类的动态物 体都保存指向此数据的指针及该动态物体的变换矩阵,达到减少内存使用的目 的。这种方法在动态物体由大量三角面片组成时效果更突出。 对于动画渲染过程中内存的管理,一种非常直接的方法是将需要处理的所有 帧动态物体都存放在内存中。该方法的优点是方便,一次加载完后,在整个动画 渲染过程中不用再管理。但缺点也很明显,需要大量的内存来保存所有帧的动态 物体,而实际内存大小往往直接限制了一次能加载的帧数。为了减少内存的需要 和一次可以处理多帧,本文采用迭代的方式【1 4 】来处理内存。如图4 1 所示,假 设当前处理帧为巧( f 表示帧号) ,则当前帧e 的复用范围为【兄r ,e + 。】( r 为 当前帧的复用半径) 。并且在计算初始采样的时候采用逐段前进的策略,每次对 s 帧进行初始采样,每一帧的初始采样量是提前设定的,每个初始采样被计算出 来以后会在前后r 帧的范围内进行复用( 复用方法参考第五章) 。 因此,渲染s 帧的过程中,内存中需要存储的帧数仅为s + 2 * r ,而不用将所 第四章高效动画渲染框架的设计 有的动态物体都载入内存。当前面的s 帧计算完毕后,位于s + 2 * r 帧最前端的s 帧将被写入磁盘。但是并不释放前s 帧用于存储像素值的空间,而是在接着处理 下一个s 帧的时候是用来存储下一个s 帧的像素值,如图4 1 所示: 当前段 图4 1 动画内存管理结构 参数s 和r 值作为影响动画渲染过程中所需内存大小的关键因素,本章在第 三部分详细说明如何根据不同的场景设置s 和r 值。 4 2 动画渲染框架中的物体管理 动画渲染框架中物体的管理主要分为静态物体管理和动态物体管理,其中重 点需要关注的是动态物体管理。源于静态物体在动画渲染过程中都不会改变,改 变的只是动态物体。如何利用静态物体和动态物体构建动画渲染框架中的k d 树,达到提高效率的目的,是这部分需要解决的主要问题。本文在动态构建k d 树的过程中,使用了最大化空间区域法,重划分和替换技术来减少内存的消耗和 光线在动画场景中的传输时间。 在k d 树的构建过程中,首先利用标识f r a m e t a g 鉴别物体是否为动态物体, 利用f r a m e t a g 10 0 0 0 区分物体为哪一类动态物体以及用f r a m e t a g l0 0 0 0 区分物 体属于哪一帧的动态物体,对于静态物体的标识f r a m e t a g 一律置为零。这样在光 线和动画场景中的物体求交时,不用和场景中的所有物体求交,而只用和满足以 下两个条件中一个的物体进行求交:一是物体为静态物体;二是物体的标识在光 线标识的复用范围内,即 口一足r a y i d f + 。】( 其中,尺吼表示第i 帧的光线,口 表示第i 帧的动态物体) 。通过这种方法,即使k d 树同时加载多帧的动态物体 也不会对光线的求交时间产生什么影响,增加的只是光线的传输时间,由此消除 物体因为加载多帧而带来的求交时间的增加。 1 6 第四章高效动画渲染框架的设计 4 2 1 最大化空间区域法 在光线传输过程中,当光线通过的k d 树叶子节点为空时,光线是不用和物 体进行求交测试的。也就是说,在看到光线和动画场景中物体第一次相交前,光 线在k d 树中穿过的区域都是空区域,那么可以通过最大化空间区域来提高光线 在场景中的传输速度。在动画场景中可以高效的利用最大化空间区域法,主要是 由于动态物体有如下两个重要特性:首先是动态物体在空间区域的连续性。由于 相邻两帧间动态物体移动距离小,所以动态物体在空间区域上具有很强的紧凑性 和连续性;其次是动态物体运动空间为空区域,主要是因为动态物体在动画场景 中的移动空间是场景中的空区域部分。 首先,可以利用动态物体空间的连续性对动态物体进行分簇。由于动态物体 空间是连续的,那么组成动态物体的面片在空间上也是紧凑的,这样每次提取 s + 2 * r 帧动态物体时,可以将这些帧的动态物体进行分簇,簇的大小可以依据动 态物体面片数来确定。至于如何将s + 2 木r 帧动态物体进行分簇,本文中使用最 常用的等对象数目空间分配方法。过程如下:首先计算s + 2 * r 帧动态物体的空 间包围盒,当包围盒中面片数目小于每簇指定数目时,将此包围盒作为k d 树的 叶子节点而不再划分。否则找到该包围盒的最长轴,然后将此轴作为切分垂直面 对空间进行划分,使两边子节点的对象数目相同。当某个面片刚好处于切割面上 时,将此面片在两子节点均保存一份。最后分别对两子节点进行相同的递归操作, 直到节点中包含的物体面片数小于簇指定数目。 在k d 树的构建过程中,通常物体密度越小的区域,作为叶子节点时,该叶 子节点所包围的空间区域就会越大,这正适合使用最大化空间区域法。常用构建 k d 树的方法是将内存中存储的所有动态物体和静态物体放在一起构建k d 树, 这种构建方法不能很好的利用动态物体空间的连续性,也忽视了动态物体移动空 间的空区域性。使得构建出的k d 树不但没有很好的发挥动态物体应有的特性, 而且会使k d 树变得非常复杂,不利于光线在动画场景中的传输。而本文用到的 最大化空间区域法,充分利用了动态物体的特性来提高光线传输速度,以及减少 构建k d 树过程中内存的需求。处理过程如下:首先,利用f r a m e t a g 将动态物体 和静态物体分开,并利用所有静态物体构建原始静态k d 树疋。然后,加载s + 2 * r 帧动态物体,并利用前面提到的等对象分配方法对这些帧的动态物体进行分簇, 将分好的簇存放于q 中。接着,将所有簇都插入到静态k d 树k 。的相应叶子节 点中。最后,对插入过动态物体面片的静态叶子节点进行重建k d 子树,并将重 建完的k d 子树插回静态树k 。中。由于动态物体移动空间的空区域性以及k d 树叶子节点包含空间大小和物体空间片面数目成反比的特性。插入的簇一般都会 1 7 第四章高效动画渲染框架的设计 位于某些大的叶子节点中,而那些没有插入动态物体的空区域仍然保持其空间区 域的最大化,由此来减少光线在动画场景中的传输时间。 4 2 2k d 树的动态更新 在将簇插入到静态k d 树k 。的过程中,如果该簇的包围盒空间同时和多 个叶子节点空间重叠。通常做法是,将该簇多次备份到所有和它重叠的静态树叶 子节点中,这样做虽然方便,但是会导致两个非常不好的结果。首先,会增加构 建k d 树过程中内存的需要。因为需要大量的内存来为每个和该簇重叠的叶子节 点保存该簇的信息。其次,备份会导致k d 树中面片数目的增加,从而导致k d 树深度的增加,而k d 树深度的增加会带来光线传输时间的增加。本文利用重划 分方法可以有效解决了上面提到的问题,即当某簇d 的包围盒空间和一个以上 的静态树叶子节点空间重叠时,并不是直接给每个和该簇重叠的静态树叶子节点 保存一个备份,而是将该簇中动态物体面片一个一个的插入到静态k d 树叶子节 点中。实验结果表明,使用重划分技术可以将动态物体面片的备份率由以前的8 降到1 ,这样既减少了构建k d 树过程中内存的需要,同时也没有因为额外 增加k d 树深度而带来光线传输时间的增加。 在本章第一部分所说的动画内存管理中。当处理完s 帧后,接着调入下一个 s 帧时,如何处理k d 树中动态物体的更新问题,本文尝试了三种方法。 第一种方法是直接利用最大化空区域法将动画场景中所有的动态物体和静 态物体都放在一起建立k d 树。实验结果表明,这样建立的k d 树在调入下一个 s 帧时,不用考虑k d 树的变化,可以减少每次处理完s 帧后更新k d 树所需要 的时间。但带来的缺点更明显,不仅会因为所有动态物体的调入而极大的增加保 存k d 树所需的内存,同时也会因为构建的k d 树变得复杂,而需要更多的时间 进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论