(计算机软件与理论专业论文)基于真实感技术的渲染引擎的架构与开发.pdf_第1页
(计算机软件与理论专业论文)基于真实感技术的渲染引擎的架构与开发.pdf_第2页
(计算机软件与理论专业论文)基于真实感技术的渲染引擎的架构与开发.pdf_第3页
(计算机软件与理论专业论文)基于真实感技术的渲染引擎的架构与开发.pdf_第4页
(计算机软件与理论专业论文)基于真实感技术的渲染引擎的架构与开发.pdf_第5页
已阅读5页,还剩120页未读 继续免费阅读

(计算机软件与理论专业论文)基于真实感技术的渲染引擎的架构与开发.pdf.pdf 免费下载

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

文档简介

电子科授大学硕士学位论文 摘要 真实感渲染技术是计算机图形学的核心和基础。从影视特效,广告动画到建 筑c a d ,机械设计,数字娱乐,真实感渲染技术都超着重要且不可替代的作用。 因此,对真实渲染技术的研究及实现不仅具有极高的技术价值,也具有极高的商 业价值。由于真实感渲染技术是一门涉及多学科,多领域的综合性科学,设计一 款基于真实感渲染技术的应用软件是一件庞大,复杂的工程。到目前为止,国内 还没有一款商业级的相关软件,对这个领域的研究和探索都处于相当初级的阶 段。 c l r e ( c o a g e l l i g h t r a y t r a c i n g e n g i n e ) 是一款由本文作者自主研发的基于 真实感算法的渲染器。该项目基于c + + 开发,目前只有w i n d o w s 版本。c l r e 使用基于m o n t ec a r l o 积分技术的并行式光线追踪作为其核心渲染算法,通过结 合光线追踪算法和辐射度算法的优点,达到了较高的渲染质量。同时c l r e 通过 从底层对m o n t ec a r l o 积分算法的分析和推导,为减小该技术产生的误差专门建 立了特殊的全局光线跟踪算法。c l r e 在渲染前期通过引入信号分析领域的相关 技术,通过对二维平面的采样使得并行式光线追踪技术在保持效率的前提下能极 大的提高最终图像质量:在渲染中期通过结合光谱分析学等相关领域技术,使用 一种高效灵活且高质量的方式保存场景中的光照和颜色信息;在渲染后期通过结 合人体生理感应和物理颜色学等领域的相关技术,通过对图像信息的再处理,是 最终渲染结果能高质量的还原在当前的外部显示设备( c r t ,l c d ) 上。 本文首先会对真实感渲染技术作一个大概的介绍,接着对c l r e 的软件架 构,模块功能,创新技术和渲染流程进行全面的描述。在此基础上,本文对渲染 流水线上每个模块都进行细致的分析和架构。由于c l r e 是基于流水线设计的, 在流水线上每个模块都有互不相交的功能,本文会给出每个模块的执行流程( 伪 代码) 和接口设计( u m l ) 。由于篇幅所限,本文对些基础算法不再详细描述 ( 如信号采样还原原理,m o n t ec a r l o 积分算法等) ,而主要针对c l r e 中的创新 技术进行描述。 关键词:真实感光线追踪渲染辐射度光照模型 摘要 a b s t r a c t p h y s i c a l l y b a s e d r e n d e rt e c h n o l o g yi st h ec o r ea n df o u n d a t i o no fc u r r e n t c o m p m e rg r a p h i c s i th a st h ek e yr o l e i nm a n yf i e l d sa sm o v i ee f f e c t s ,c a d , m e c h a n i cd e s i g n ,a d v e n i s e m e m ,d i g i t a le n t e r t a i n m e n ta n ds oo n r e s e a r c h i n ga n d i m p l e m e n t i n go f i ta r en o th a v i n gi n c r e d i b l ev a l u ei nt e c h n o l o g yb u ta l s ot h es a l n ef o r c o m m e r c e u n f o r t u n a t e l y , ap h y s i c a l l y b a s e dr e n d e ra p p l i c a t i o ni s s oc o m p l e xa n d d i f f i c u l tt oa r c h i v es i n c et h e c r o s s d o m a i na t c r i b m eo f t h i st e c h n o l o g y c l r e ( c o a g e li a g h tr a y t r a c i n ge n g i n e ) i sap e r s o n a lp r o j e c tb a s e db yt h e p h y s i c a l l y - b a s e dr e n d e rt e c h n o l o g y i tw a sd e s i g n e db yc + + a n d h a v eo n l yw i n d o w s v e r s i o nc u r r e n t l y c l r ec h o s et h em o m ec a r l o r a y t r a c i n ga si t sc o r er e n d e r t e c h n o l o g y t h ec o m b i n a t i o no fr a y t r a c i n ga n dr a d i o m e t r yt e c h n o l o g ym a d ec l r e h a sah i 曲r e n d e rq u a l i t y c l r ea l s ou s e das p e c i a ls t r a t e g yt ot r a c i n gt h er a yt h a t d e c r e a s e st h ev a r i a n to fm o n t ec a r l ot e c h n o l o g y a tt h ep r o p h a s e ,c l r ei n t r o d u c e d s o m ei d e a sb a s e do ns i g n a lp r o c e s s i n gt ob e n e f i tt h er a y t r a c i n gf r a g m e n t sq u a l i t y a n dp e r f o r m a n c e i nt h em e m p h a s e ,c l r eu s e ds p d ( s p e c u l a t ep o w e rd i s t r i b u t e ) t o d e s c r i b e dt h ec o l o ra n dl i g h t ,t h i ss u c c e s s f u l l yl e dt h ee f f o r tt oi m p r o v et h ef i n a lr e s u l t o n l yw i t hal o wc o s t c l r eu s es o m et o n e - m a p p i n gt e c h n o l o g yt oi m p r o v et h e r e s u l t sq u a l i t yo nd i s p l a yd e v i c e ( c r t , l c d ) i nt h ea n a p h a s e t h i st h e s i sw i l li n t r o d u c et h ep h y s i c a l l y - b a s e dr e n d e rt e c h n o l o g yi nas h o r tt e x t , a n dt h e ni n t r o d u c et h ec l r e sf r a m e w o r k ,c r e a t i v e l yt e c h n o l o g ya n dr e n d e r i n g p i p e l i n es t e pb ys t e p c l r ei sd e s i g n e da sp i p e l i n ep a t t e r n ,s oe v e r ym o d u l eo nt h e p i p e l i n ew i l lb eg i v e n af l o wc h a r t ( b yp s e u d oc o d e ) a n di n t e r f a c ed e s i g nc h a r t ( u m l ) f o rt h ep a g e ,t h eb a s i ca l g o r i t h ml i k es i g n a lp r o c e s s i n ga n dm o n t ec a r l oa r en o t i n c l u d e k e yw o r d :p h y s i c a l l y b a s e dr a y t r a c i n g r e n d e r r a d i o m e t r y l i g h t i n gm o d l e l i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谓 的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 鱼望日期:7 口口年1 月歹日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:叠盘。导师签名:2 :叠鍪 日期:川年f 月f 日 电子科技大学硕士学位论文 第一章绪论 从计算机诞生的那天开始,对现实世界的真实模拟就是图形学领域追求的 最终目标。随着计算机图形学的发展,计算机真实感图形学已经建立起完整的 学术和工程体系。从影视特效,广告动画到建筑c a d ,机械设计,数字娱乐, 人们已经领略到真实感图形的魅力。虽然真实感渲染在商业,艺术,教学等领 域都有及其重要的作用,但是长期以来,在国内在这方面的研究投入却风毛麟 角。这是因为真实感渲染是一门及其特殊的科学,它的实现需要引入很多其它 科学领域的研究成果。这种跨学科的交互性使得真实感技术对大多数计算机领 域的研究者来讲都过于神秘和复杂。目前在真实感研究领域中绝大部分的研究 成果都包含了数学,物理学,生理学,信号学等领域的技术,有的甚至还应用 了材料工程学,自动化科学这些领域的相关知识。而本文所介绍的照片级渲染 引擎c o a g e ll i g h tr a y t r a c i n ge n g i n e 中,也同样大量使用了数学,经典光学, 热物理学,感应生理学,信号学等技术。 c o a g e l l i g h t r a y t r a c i n g e n g i n e 是笔者所研发的一款照片级渲染引擎。本文 将从下一章开始,通过对c l r e 的剖析和对其中原理的描述,来展示在其中所 使用的所有关键性技术,并提出对整个程序框架乃至对当前主流的真实感渲染 计算的改进方案。 1 1 真实感渲染的研究方向 真实感渲染是- - 1 利用计算机的强大计算能力,模拟现实生活中的各种视 觉现象的科学。这门新兴的科学以有近5 0 年的历史,在早期的发展阶段,由于 计算机硬件能力的限制,主要的研究方向集中在如何简化物理数学模型以使计 算机生成计算量不过于庞大而效果又可被接受的图形。随着硬件能力的提升, 科学家和研究者开始把重心集中到如何创建出真实可信的图形上来。从7 0 年代 至今,有大批的研究者对这个领域作出了杰出的贡献,目前利用商业引擎制作 的影视特效和广告效果图已经很难被肉眼识别出与真实效果的差别。但是目前 渲染技术中所使用的各种算法模型仍然是现实情况的一种简化和模拟,要完全 真实的模拟现实效果,还有一段很长的路。 第一章绪论 1 2 当前主流渲染技术介绍 在计算机图形学中,主要存在三种渲染技术:z 缓冲技术,光线跟踪技术 和辐射度技术。这三种技术各自拥有数量庞大的具体的实现方法。其中z 缓冲 技术主要使用于实时绘制领域,而光线跟踪技术和辐射度技术丰要使用于真实 感渲染领域。 1 2 1z 缓冲技术 z 缓冲技术的基本思想是:将三维场景根据透视矩阵投影到视平面上,并 在视平面将其光删化。光删化的每个片断都保留有原始几何体的深度坐标,纹 理坐标和颜色,法向量等信息。其后的整个渲染过程全部在视平面上进行,对 每个片段根据它的深度与在z 缓冲中的深度值比较可以知道它是否可见。对于 可见片段则计算它的光照颜色,纹理颜色等信息,得到最终图像。 这种技术的各个流程都非常固定,因此容易被直接固化到硬件上。通过硬 件加速,这种渲染技术能极大的提高效率。因此现在绝大部分的实时图形渲染 程序都使用这种技术。 z 缓冲技术的优点是操作方便,效率高。但是它也存在了很多缺点:首先, 它不是基于真实的光照模型,图像表现出不真实性。由于它本身是一种局部照 明模型的衍生,从算法理论上无法表现出场景中物体的相互反射和折射等现象。 更不能表现像焦散,衍射这些高级光照效果。虽然目前有很多实时图形程序通 过使用纹理技术和可编程片段着色技术能够表现一些上述效果。但是这些实现 都不是物理真实的,只是通过程序设计者的精心设计,使得最终效果看起来真 实而以。并且z 缓冲算法本身不能表现出场景中的阴影,阴影的绘制必须通过 其它方式得到。 1 2 2 光线跟踪算法 照射到物体上的光线,不仪有从光源直接射来的,也有通过其他物体反射 或折射来的。局部灯光模型只能处理直接灯光,为了对环境中物体之间的各种 反射、折射光进行精确类比,需要使用全局灯光模型。 光线追踪演算法是典型的全局灯光模型,最早由g o l d s t e 、n a g e l 和a p p e l 等人提出。a p p e l 利用光线追踪的方法来计算阴影;w h i t e d 和k a y 则扩展了 此一演算法,用于解决镜面反射和折射问题。这个演算法的基本观念如下:对 于屏幕上的每个像素,追踪一条从视点h 发并通过该像素的光线,求出和环境 于屏幕上的每个像素,追踪一条从视点出发并通过该像素的光线,求出和环境 电子科技大学硕士学位论文 中物体的交点。然后,在交点处的光线将分为两支,分别沿镜面反射方向和透 明体的折射方向进行追踪,形成个递回的追踪过程。光线每通过一次反射或 折射;通过物体材质决定的反射、折射系数都会使其强度衰减。当该光线对原 来像素光亮度的分布小于给定的值时,追踪过程即停止。j 光线追踪的阴影处理很简单,只需从光线和物体的交点处向光源发出一条 测试光线,就可以确定是否有其他物体遮挡了该光源( 对于透明的遮挡物体则 需进一步处理光源强度的衰减) ,从而模拟出软影区和透明体阴影的效果。 光线追踪是一个典型的采样过程,各个屏幕像素的亮度都是分别计算的, 因而会生成失真走样,而演算法本身的计算量将使得传统加大采样频率的反失 真技术难以落实。 像素细分是一种适用于光线追踪的反失真技术,具体方法是:首先对每一 像素的角点用光线追踪计算亮度:然后比较各角点的亮度,若差异较大,则将 像素细分为四个子区域,并对新增的五个角点用光线追踪计算亮度;重复比较 和细分,直到子区域各角点亮度差异小于给定的值为止;最后加权平均求出像 素点的显示亮度。 和像素细分不同,c o o k 、p o r t e r 和c a r p e n t e r 提出的分散式光线追踪是一 种以随机采样的方法,在镜面反射方向和折射方向所夹的立体角内交点处,按 照照一定的分布函数同时追踪着干根光线,然后进行加权平均。c o o k 等人还 提出了利用分散式随机采样技术来模拟半影、景深和运动模糊等效果的方法。 光线追踪的另一个问题是:光线都是从视点发出的,阴影测试光线则需另 外处理,因而无法处理间接的反射或折射光源。例如,镜子或透镜对光源所生 成的作用就难以模拟。为解决这问题,我们可以从光源和视点出发,以对光 线进行双向追踪。但是,大量从光源出发的光线根本不可能到达屏幕,这使得 双向光线追踪的计算量显着增大,难以实用。于是,h e c k b e r t 和h a n r a h a n r 就 提出一解决方法,就是只将从光源出发的光线追踪作为常归光线追踪的补充; a r v o 方法则是对从光源发出进入环境的光线进行预先处理:邵敏之和彭群生 等人也提出了基于空间线性八叉树结构的观点,对光源所发出光线进行最佳化 的双向光线追踪演算法。 1 2 3 辐射度算法 常规灯光模型将假设物体间的漫射是一个恒定的环境光源,即使双向光线 追踪也只能处理物体间的反射和折射,而不能处理物体间的漫射。最初由g o r a l 等人于1 9 8 4 年和n i s h i t a 等人提出的辐射度方法是一种基于热传导工程的方 法,用光辐射的生成和反射来代替环境光源,从而能够精确处理对象之间的光 第一章绪论 反射问题。 辐射度方法会将配景和光源视为一个封闭的系统,在系统中光能量是守恒 的;并假定构成配景的曲面都是理想的漫射面。所谓辐射度j ,是指单位时间 内从曲面上单位面积反射出去的光能量,我们以b 来表示。在理想情况下, 我们可以认定趋近曲面上每个面片上的光源强度都是均匀的,即漫射的各方向 都是均匀的。通过辐射度模型,可以得到一个线性方程组。 辐射度方法的主要计算量在于计算形状系数。c o h e n 和g r e e n b e r g 所提出 的半立方体方法就是一种近似计算封闭面形状系数的高效方法。首先,以面片i 的中心为原点,法矢量为z 轴创建一个半立方体,将其五个表面划分成均匀 的网格,每个网格单元的微形系数即可以预先求得:然后,将场景中所有其他 面片都投影到半立方体上,并对于多个面片投影到同一个网格单元的情况在投 影方向上进行深度比较,网格单元只保留最近的面片。这样的过程就相当于 z b u f f e r 演算法。最后再将半立方体中所有和面片j 相关的网格单元的微形系 数累加,即可得到面片i 相对于面片j 的形状系数殉。 辐射度方法的优点在于:演算法和视点无关、计算和绘制可以分别独立进 行、能够模拟颜色渗透效果等,但无法处理镜面反射和折射。 在辐射度方法中,面片向特定方向辐射出的光能量仅和总辐射度有关,而 和所接受能量的方向无关。i m m e l 、c o h e n 和g r e e n b e r g 推广了这一方法,每 个面片不只计算唯一的辐射度,而是将面片半球空间分割成有限个空间立体角 的区域,在每个区域内分别计算输入输出的光能量,通过双向辐射函数计算向 某一方向辐射能量的概率,每个顶点的光源强度可以通过对和视点方向最为接 近的若千方向上的辐射度进行插治募口到,并最终完成图形的生成。这种改进 方法可以处理包含镜面和透明物体的复杂场景,但要付出巨大的时间花费和存 文件空间占有率。 另一种方案是将辐射度和光线追踪相结合,仅仅将两种方法的计算结果相 加是不够的,而是必须同时处理漫射面和镜面之间的灯光关系。w a l l a c e 、c o h e n 和g r e e n b e r g 提出了一种两步法:第一步是执行和视点无关的辐射度方法,辐 射度的计算必须考虑镜面,这可以通过镜像法( m i r r o r - w o r l da p p r o a c h ) 予以 模拟;第二步则是执行基于视点的光线追踪演算法,来处理全局镜面反射和折 射,并生成图形。j 演算法效率的关键在于第一步,其中镜像法只需处理理想镜面的反射作用, 并据此对形状系数加以修正,形状系数的计算量将随镜面数量的增加而显着增 加。s i l l o n 和p u e c h 进一步扩展了上述两步法,在第一步时不采用镜像法,而 是采用递回的光线追踪来计算形状系数,这样就可以处理具有任意数量镜面和 电子科技大学硕士学位论文 透明体的场景。 1 3 本文相关工作和成果 本文作者在参考大量图形学专业资料和其他相关领域的书籍的基础上,使 用c + + 开发了一款基于真实感渲染技术的渲染器c l r e 。与其他同类产品相比, 该渲染器具有:完全基于流水线方式设计:从最底层对m o n t ec a r l o 积分技术 进行优化;速度理想的采样器;功能强大的后期图像处理等特点。c l r e 是一 个将光线追踪和辐射度算法相结合的渲染引擎。它在渲染核心部分,通过使用 m o n t ec a r l o 积分方法计算场景中的光能分布情况。由于这种特性,它不需要在 渲染时对场景的形状因子矩阵进行预计算。与一些将辐射度渲染和光线追踪演 染分为两个渲染步骤的渲染器相比,c l r e 在表现较为光滑的物体时效果更加 理想,如玻璃,塑料等材质。同时,c l r e 拥有良好的扩展性和可配置性,用 户可以通过场景配置文件方便的选用各种渲染策略和核心插件,并通过设置其 中的算法复杂度来达到效率与效果的最佳平衡。 本文通过对该渲染器的算法原理和设计架构进行剖析,展示了真实感演染 的各种核心技术的实现和优化方法。由于篇幅所限,在正文中不会出现源代码, 对于一些核心的功能模块,本文使用伪代码的流程图来说明。 第二章c o a g e ll i g i l tr a y t r a e i n ge n g i n e 简介 第二章0 0 a g e il i g h tr a y t r a c in ge n g i n e 简介 c o a g e ll i g h tr a y t r a i n ge n g i n e ( 以下简称c l r e ) 是笔者自主研发的照片 级渲染引擎。就目前的开发阶段来说,c l r e 已经实现了大部分的核心技术, 但是仍然需要相当程度的修改,尤其是对其效率的提升成为c l r e 后期开发的 主要目标。 c l r e 是一个将光线追踪和辐射度算法相结合的渲染引擎。它在渲染核心 部分,通过使用m o n t ec a r l o 积分方法计算场景中的光能分布情况。由于这种 特性,它不需要在渲染时对场景的形状因子矩阵进行预计算。与一些将辐射度 渲染和光线追踪渲染分为两个渲染步骤的渲染器相比,c l r e 在表现较为光滑 的物体时效果更加理想,如玻璃,塑料等材质。同时,c l r e 拥有良好的扩展 性和可配置性,用户可以通过场景配置文件方便的选用各种渲染策略和核心插 件,并通过设置其中的算法复杂度来达到效率与效果的最佳平衡。c l r e 的一 些效果图请参看附录。 c l r e 本身是一个复杂庞大的软件项目,不可能在本文中介绍它的所有实 现细节,本文将详细的分析c l r e 中与真实感图形技术相关的整体渲染流程和 其中所使用各种关键性技术。由于真实感渲染本身是一门复杂的跨学科工程, 在本文会适量的介绍一些其它领域的技术和分析方法,这些知识都被应用在了 c l r e 中。 2 1c l r e 的设计目的和技术特点 作为一款完全自主开发的渲染引擎,c l r e 的开发目的是能够成为一款能够 与国外顶级渲染引擎相抗衡的产品。同时c l r e 也在设计中首要考虑到了它的 易扩展性。c l r e 的主要流程是基于流水线操作的。在线上有多个模块,每个 模块都负责完全独立的功能。核心程序将这些模块组装起来一起运作。用户可 以通过在现有模块上派生新的模块来实现对流水线的任意阶段的更改。这种设 计模式除了易扩展外,还符合当前硬件渲染的主流设计思想。因此可以将c l r e 中的一部分模块交给g p u 来操作,以实现整体效率的提高。这正是c l r e 的 下一阶段的开发目标。 c l r e 的主要技术特点分为以下几点: 1 根据图像合成原理精心设计的多种采样器和过滤器。 电子科技大学硕士学位论文 在真实感渲染中,图像质量是一个及其重要的指标。由于图像合成技术直 接关系到最终图像的质量,在图像合成期对图像生成的过程进行分析和优化会 大幅度提高渲染器的视觉质量。而且由于真实感渲染算法的复杂度,在图像合 成中对采样和还原过程进行优化是一种最廉价的方案。c l r e 通过对信号处理 过程的分析,并结合一部分数学领域随机过程的技术,实现了多种采样器和过 滤器以满足各种情况下的图像合成需求。 2 基于光谱分布函数的颜色描述 基于光谱分布函数s p d 的颜色描述贯穿了整个c l r e 的渲染流水线。s p d 可以更加完整的保存光能的物理信息,并对最终的图像质量产生巨大的影响。 但是保存完整的s p d 并对其进行操作会导致程序运算量的级数膨胀。c l r e 从 对s p d 的数学和物理特性分析入手,用较少的数据量和运算量来达到了对s p d 的较高程度的近似。这个技术使得c l r e 能花费较少的运算成本而达到较高的 物理精确度。 3 基于双向反射系数的场景物理描述 c l r e 中,所有场景物质都使用双向反射系数来描述它的反射折射行为。 这种基于物理属性的场景描述使得在后面的流水线操作中能够更为物理精确的 得到光能的分布数据。同时这种描述使得创建一个物理真实的场景成为可能, 用户可以通过使用各种自定义的数据来模拟现实生活中的各种物质。这是照片 级渲染器的主要目的之一。 4 基于辐射度分布的光能传输系统 基于辐射度的光能分布系统可以从物理真实地角度描述场景中能量的分 布。从而创建了一个关于场景中所有点上光线强度的完备解集。真实感渲染的 主要目的就是从这个完备解集中找到所需要的解。同时基于辐射度的光能传输 系统还使得可以以渐进的方式对场景求解。使用者可以在设计期花费较少的代 价得到一个初步的解,及时发现场景中的错误对其改进,而不需要在初期花费 大量的时间得到完整的解,而在发现错误后又需要重新花费大量时间重新求得 正确的解。 5 结合辐射度和光线追踪技术的核心渲染系统 c l r e 通过深度结合辐射度和光线追踪技术使得对复杂场景可以通过一次 渲染而得到最终结果。这种深度结合的渲染技术保证了辐射度算法的优点,可 以以很高的真实度描述场景中的漫反射光线,尤其利于实现柔和的阴影和光照 效果。同时这种渲染技术还保留的光线追踪的特点,使得整卜求解过程更加直 观和阶段化,从而能够将整个渲染流程架构为流水线过程。 第二j ! o a g e ll i g h tr a y t r a c i n ge n g i n e 简介 6 利用m o n t ec a r l o 技术实现的光能计算 对场景中任意光能强度的计算是一个复杂的积分过程,而对整个场景中光 能的分布计算更是一个递归积分过程。利用m o n t ec a r l o 积分技术可以用较小 的计算代价而得到较为精确的解。通过对m o n t ec a r l o 方法的深入分析和改进, 解的精确性还可以得到进一步的提高。 7 符合人眼感应心理学的后期图像合成技术 c l r e 具有一个功能强大的后期图像处理模块。在将以s p d 描述的颜色信 息转化为显示设备接受的标准r g b 数据时,该模块通过使用人眼感应心理学 领域的一些感光模型,能够尽量完整的保存场景中的亮度对比信息,使得最终 结果显的更为真实。 2 。2c l r e 的创新 任何基于真实感渲染算法的图形程序都需要在两个相互对立的问题中找到 一个平衡点一一质量和效率。一个具有高质量的渲染程序可以通过复杂的算法 模拟出更加真实的图像,但是复杂的算法导致了效率的下降,而过于偏重效率 必然使得算法的简化和图像真实度的降低。在c l r e 中同样存在这个问题。 c l i 也的设计核心是如何在保证高真实度的前提下尽量提高程序效率,也就是 说,c l r e 的主要设计目的是高质量的图形渲染器,不会为了提高渲染效率而 简化所使用的各种数学和物理模型。但同时c l r e 也是一款可自由配置的开放 式渲染程序,用户可以通过二次开发光照模块,采样器等插件,来实现其内部 算法的简化。c l i 铂e 的创新主要围绕在提高核心的算法效率和整个框架的开发 式上,可分为以下几点: 1 基于l o wd i s c r e p a n c y 序列的采样算法大量提高了采样器的效率。 低差异度( 1 0 w d i s c r e p a n c y ) 序列是一种伪随机序列。它的最大特点就是 子序列仍然满足低差异度序列的定义。c l r e 中通过预先生成的l d 序列来进 行采样计算过程,使得采样器的效率大幅提高。并且c l r e 还使用了一种很巧 妙的方式解决了使用预生成的序列带来的相似性问题。 2 在核心运算部分通过m o n t ec a r l o 算法来加速计算过程。 在核心运算部分主要有两种运算;对相交点的光强度计算和对光线路径的 计算。对光强度的计算通过m o n t ec a r l o 积分算法可以得到较好的效率和精确 度,并且对光线路径的计算也根据m o n t ec a r l o 算法下采样特点进行设计,使 m o n t ec a r l o 算法的精确度得到很大提高。 电子科技大学硕士学位论文 3 基于流水线的设计模式可以方便的映射为g p u 模型 基于流水线的设计模式是c l r e 的基本设计思路,这种设计模式使得c l r e 的任意模块都可以被独立出来并重新设计或修改。由于流水线设计模式符合当 前g p u 的设计架构,c l r e 中的一部分模块也可以使用g p u 实现。 4 通过小型词法和语法分析器,场景创建和算法选择都具有高度自由化 c l r e 可以通过脚本方式对场景进行创建和配置。这种方式使得用户使用 时得到了极大的自由度。词法和语法分析不属于本文范围。 2 3c l r e 的整体软件架构 c l r e 主要分为7 大模块,分别为: 1 二维软渲染功能模块p i x e lr e n d e r : 该模块主要负责创建并初使化程序窗口,并将内存或文件中保存的图像数 据显示到外部设备。该模块并不负责对图像的后期处理,它所接收的图像数据 必须是r g b 格式的( c l i 也中是使用s p d 格式作为图像数据,在后期模块中 才转换成r g b ) 。可以把它看成是整个c l r e 的主程序入口,在p i x e lr e n d e r 的各个流程中,它负责其它模块协同工作。p i x e l r e n d e r 的功能流程如图2 1 : 创建窗口豳l i 鼙剃初使化窗口自自割 发射射线 流p i 程x e l 图r “d e 。模块功能厂一保存射线辐射度流程图fr 一。一 p i x e lr e n d e r 模块是c l r e 的 主程序模块,负责组织其他 模块顺序调用。该模块从视 平面发射采样射线,并记录 下射线上返回的辐射强度。 下一个t 素区域 绘制被后期处理 模块处理过的数 据 图2 1 p i x e lr e n d e r 模块功能流程图 该流程图没有画出p i x e lr e n d e r 对其它模块的调用过程。对该过程的描述 被放在所有其它模块的介绍后。 2 采样功能模块s a m p l e r : s a m p l e r 模块封装了各种采样算法,支持对高至n 维空间的采样。用户通 过输入对采样空间的描述和需求的样点数量而得到在该采样空间中的样点序 列。s a m p l e r 本身并不直接参加渲染过程,但是在c l r e 中几乎每个跟渲染有 第二章c o a g e ll i g h tr a y t r a c i n ge n g i n e 简介 关的模块都需要调用s a m p l e r 。s a m p l e r 的功能流程如图2 2 : 需要注意的是由于直接在高维空间采样会带来几何倍增长的运算量, s a m p l e r 使用了一种替代的方法。s a m p l e r 内部算法只支持1 维和2 维空间,如 果用户要求一个更高维的采样空间,如5 维空间( 这在c l r e 中的确存在,参 看第三章) ,则s a m p l e r 通过分别在1 维空间采样一次,在2 维空间采样两次, 并把所有结果通过组合算法结合为5 维样点。组合算法的设计是为了消除这种 采样策略下各个维度之间的关联性。实际使用时这种替代方法得到了很好的效 果,并且拥有较高的效率。 输会蓦麓髻间_ 驯正规化采样空间 s a m p l e r 模块功能流程 图 s a m p l e r 模块不直接参见渲 染过程,它只负责在用户指 定的采样空间上按用户选择 的采样算法产生样点,并返 回样点序列和采样概率密度 ( 可选) 。 根据采样算法需要 放大采样数量 露 采样空间 根据需要扰动采样 序列 输出采样序列 图2 2s a m p l e r 模块功能流程图 3 还原功能模块f i l t e r : 该模块对应于s a m p l e r ,负责将采样信号还原并重采样( 原理参看第三章) 。 由于在c l r e 中,我们只关心最终图像效果,而在中间处理过程中都只需要对 采样信号进行操作,因此f i l t e r 只被后期图像处理模块调用,由于其特殊性, 它也只需二维信号进行还原并重采样。f i l t e r 的功能流程如图2 3 : f i l t e r 将还原被采样函数和重采样合并为一个操作。不同的f i l t e r 有不同的 滤波形状,会影响到在计算每个像素值时需要考虑到的采样信号子序列。 4 场景描述模块s c e n e : 三维场景的描述是一个相当复杂的过程,尤其是在基于真实感渲染的图形 程序中。s c e n e 模块抽象了一切对场景的描述操作,并提供了多种加速渲染过 程的管理结构。在s c e n e 中,几何物体分为两种描述方式:一种是在三维图形 软件中最常用的三角链表描述,几何体由顶点序列和索引序列描述;另一种是 由数学方式描述的,如球体可以用球心和半径长度描述,二次曲面可以由系数 描述等。使用这种描述的几何物体在基于光删化和z 缓冲的渲染算法中无法直 接渲染,但是在基于光线追踪的渲染算法中却有很重要的作用。s c e n e 的功能 电子科技大学硕士学位论文 流程如图2 4 : 输入采样信号序列 f i l t e r 模块功能流程图 根据还原器形状选 择被处理采样信号 子序列 霉警燃嚣萋蔫l 一罐序返回的采样信号进行还原l 示”! 苎、 和重采样。重采样中采样点1 的选择是根据显示设备的当 根据还原器函数计 算像素s p d 值 输出在像素上进行 重采样后能s p d 序 列 图2 3f n t e r 模块功能流程图 s c e n e 在接收了一根采样射线后会返回带有相交点信息的数据结构。该结 构中包含有相交点的位置,纹理坐标的局部变化率( 用于纹理反走样) ,法线方 向的局部变化率( 用于实现高级纹理技术,如凹凸贴图) 和材质信息 ( b r d f b t d f 的集合) 。 采样射线 利用场景管理计算 相交点潜在空间 i 在潜在空间寻找相 交物体 工 根据相交物体定义 返回相交点信息 根据相交点l 的材质幂l 管:霎管l s c e n e 模块功能流程图 射线方向l 幌歇明日e 孤程脚 s c e n e 模块负贲对虚拟场景 的描述和光线进入场景后相 交计算。对场景的描述是基 于物理模型的,每个物体都 有自己的材质和反射行为。 图2 4s c e n e 模块功能流程图 s c e n e 本身不负责改变射线的方向,而是通过输入该数据结构调用光线追 踪模块来改交。 5 光线追踪模块r a yt r a c i n g : r a yt r a c i n g 模块根据各种光线追踪策略来生成一条光线路径。该路径上保 存了所有的光线相交点的局部数据结构,并且根据需要,还保存的该路径的概 率密度( 参看m o n t ec a r l o 算法) 。光线追踪模块本身并不计算具体的光照信息, 它只负责在基于m o n t ec a r l o 算法的基础下,实现各种减小误差值的路径跟踪 第二章c o a g e ll i g h tr a y t r a c i n ge n g i n e 简介 算法。r a yt r a c i n g 的功能流程如图2 5 图2 5r a y t r a i n g 模块功能流程图 r a yt r a c i n g 在相交点上计算反射方向时会使用s a m p l e r 生成采样点,并结 合相交点的相关数据( 由s c e n e 返回) ,生成根新的采样射线。根据路径跟踪 策略的不同,r a y t r a c i n g 会从不同的方向计算路径,如在普通跟踪算法下,r a y t r a c i n g 从视平面发射射线与场景的第一个交点开始逆向( 光线实际传播方向) 生成跟踪路径;在双向跟踪和光子映射时,r a y t r a c i n g 也会从光线开始正向计 算跟踪路径。关于这部分算法的原理请参看第3 5 节一光线追踪器和路径渲染 器。 6 渲染模块s h a d e r - s h a d e r 模块输入光线路径而返回一个具体的光线强度值,该值作为采样信 号被保存在缓冲中。s h a d e r 模块是c l r e 的核心模块,它通过使用累计光线路 径上每个点的双向反射特性和采样概率创建来对复杂的光能传播过程进行计 算。s h a d e r 模块的功能流程如图2 6 。 s h a d e r 模块同时也为提高用户设计效率,实现对最终结果的初步预览等提 供了功能提供了良好的支持。用户可以通过屏蔽掉各种类型的b r d f 使得渲染 模块快速返回一个不精确的解。 7 后期图像处理模块f i l m : 该模块模拟在现实生活中的成像设备( 如:照相机,摄影机) 中胶片的作 用。通过结合人跟观察系统h v s 在观察时的特性,将以s p d 表示的图像信息 转换为标准显示设备可以接收的r g b 格式。 皇王型垫丕堂堡主堂垡笙塞 图2 6s h a e r 模块功能流程图 用户可以通过选择不同的f i l m 来实现各种特殊的实际效果。如b l o o m f i l m 可以使最终图像显得艨胧,光晕变大,h d r f i l m 可以保留场景中最大范围的光 亮度信息,使图像显得最为真实。f i l m 模块的功能流程如图2 7 。 g a m m a 校正是争对非线性显示设备而进行的,如:c r t 显示器。如果用 户使用l c d 等线性显示设备,则可以忽略掉该操作。f i l m 最后将r g b 数据保 存在系统缓存中,并通过p i x e lr e n d e r 模块将其最终绘制到设备上。 以上是c l r e 的7 大主要功能模块。当然,c l r e 还有很多其他功能模块, 如c a m e r a 模块用于模拟三维投影和成像,s c r i p t 模块用于根据外部用户文件创 建和配置c l r e 场景,t e x t u r e 模块用于完成各种纹理映射和查找功能。由 于这些模块都不直接关系到真实感渲染技术,本文不会着重介绍。在下面的章 节中,我们将围绕以上7 个模块剖析c l r e 的整体设计理念和内在原理。 2 4c l r e 的渲染流水线 基于流水线的设计是为了符合当前硬件的发展趋势:局部运算速度的提升 已经远远超过了带宽容量的提升。也就是说,在大型程序设计中,带宽已经成 为首要制约效率的因素。 虽然当前版本的c u 也是完全基于c p u 进行运算的,并不涉及到在c p u 和g p u 中传输数据,流水线的设计模式并不能有效的提高c l r e 的运行效率。 但是这种设计模式使得c l r e 可以将一部份流水线上的功能模块映射到g p u 或者是其他c p u 上运行,从而极大的提高运行效率。 作为一款基于流水线设计思想的渲染器,c l r e 不仅拥有一条完整的主渲 染流水线,在其核心的数个模块中,也各自拥有一条子流水线。下面将详细介 绍各流水线的功能和流程。 1 c l i 啦的主渲染流水线 主渲染流水线的操作过程如图2 8 :p i x e lr e n d e r 模块在视平面上的每一个 像素区域向s a m p l e r 提出采样请求。s a m p l e r 返回采样点的二维坐标。p i x e l r e n d e r 根据二维坐标和当前的视线方向向虚拟场景发射采样射线。 样点 兰擎瑚酬陋 攀k 归 矿上 7 样结束 壕芸g k 嚣浏帧缓存制后期处理kr 颜g 色b 浏图害缓 一- 上一一z c l p j e 主演染流水线jb ( 盛形持号是流水线上前进镌数据寿形持号是流瘩线上的功r 一 能操佧菱形符号是翔辑选择圆强框是存储数据)疆裸崴像 c l r e 的主渲染流水线d q p i x e lr e n d e r 模块组织调用,流水线l 一 上的每个功能操作本身也可能舍有子流水绩。 图2 8c l r e 主渲染流水线 望| | 冷一嚣 电子科技大学硕士学位论文 采样射线进入r a yt r a c i n g 模块,r a yt r a c i n g 在经过了一系统的操作后输 出一条光线路径,s h a d e r 在接收到光线路径后计算该采样点的光强度。计算结 果在经过像素操作后放入临时的采样信号缓存区。重复这个过程直到所有像素 区域都操作完成,采样信号缓存区中的数据作为输入被传给f i l t e r 模块。在f i l t e r 中进行还原和重采样后,颜色信息被存入到帧缓存中。f i l m 模块根据帧缓存中 的数据进行一系列的操作,并将最终结果保存为图像缓存,p i x e lr e n d e r 负责将 该缓存中的数据显示到外部设备。 可以看到,几乎所有的模块都是相互独立的。它们之间的相互合作完全是 通过数据流来实现的。每个模块在运行时不需要考虑其他模块的运行情况。只 要符合接口设计的要求,替换任意的模块都不影响整条流水线的操作。 2 光线跟踪模块的渲染流水线 如图2 9 中可以看到,采样射线在进入光线跟踪模块后可能会根据跟

温馨提示

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

评论

0/150

提交评论