




已阅读5页,还剩80页未读, 继续免费阅读
(计算机应用技术专业论文)光线追踪在空间目标与地球场景渲染中的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独创性声明 ? f r il l ii ii r ll lir illiii 17 7 910 9 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含任何 其他人已发表或撰写过的材料,也不包含为获得其它教育机构的别种学位或证书 而大量使用过的材料。与我一同工作的人对本研究所做的任何贡献已在论文中作 了明确的说明并表示谢意。 签名:幽支竭嗍丝:么f 关于论文使用授权的说明 本人完全了解培养单位有关保留、使用学位论文的规定,即:培养单位有权 保留送交论文的复印件,允许论文被查阅和借阅;培养单位可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 1 1 日期: 丝2 1 :笸:f illllliililllllli| 摘要 摘要 随着航天技术的发展和计算机图形学的进步,人们对空间任务仿真可视化的 效果需求越来越高。光线追踪是一种基于几何光学原理生成真实感图形的通用技 术,它采用一种统一的模型来模拟光源和环境入射光在物体表面产生的漫反射、 镜面反射和散射、介质中产生的透射、折射和衰减等光学现象,实现场景消隐、 阴影生成、水面波动、大气效果等复杂特效的渲染。将光线追踪算法引入到空间 场景的渲染中,不仅可以较真实的展现可见光波段的空间科学任务,而且可以应 用到不具备光谱特性的科学数据的可视化中。 本文研究了如何将场景信息进行组织以形成适合于光线追踪算法加速的数 据形式,同时解决了如何将3 d s 格式模型转化为本系统的基本图元。 为了生成更为真实的图像,本文引入了m e r s e n n et w i s t e r 随机扰动来对漫反 射光线进行追踪,同时使用比耳定律来模拟光线在半透明物体中的衰减以及根据 m o n t ec a r l o 理论来生成软阴影,形成了非常逼真的渲染效果。 在大气效果绘制方面,对n i s h i t a 单散射模型的建立过程进行了详细介绍, 并指出了o q q e i l 大气散射绘制的不足,将其改造为光线追踪模式融入到本文所 建立的渲染系统中。 最后,本文采用模块化的方式基于分层组织的思想设计了一个通用、可扩展 的光线追踪系统,为以后空间任务的可视化提供了一个基础框架。 关键字:光线追踪,3 d s 模型,k d 树,光照模型,m o n t ec a r l o ,大气效果 a b s t r a e t r e s e a r c ha n di m p l e m e n t a t i o no f r a yt r a c i n gi nr e n d e r i n gs p a c e t a r g e ta n de a r t hs c e n e x i ew e n m i n g ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db ym e n gx i n ,p e n gx i a o d o n g a b s t r a c t w i t ht h ed e v e l o p m e n to fs p a c et e c h n o l o g ya n da d v a n c e si nc o m p u t e rg r a p h i c s , t h ee x p e c t e de f f e c t so ft h es p a c em i s s i o ns i m u l a t i o na n dv i s u a l i z a t i o nh a v eb e e n g r o w i n g r a yt r a c i n gi sag e n e r i ct e c h n o l o g yb a s e do ng e o m e t r i c a lo p t i c st og e n e r a t e r e a l i s t i ci m a g e s ,w h i c hu s e sau n i f o r mm o d e lt os i m u l a t eo p t i c a lp h e n o m e n as u c ha s d i f f u s er e f l e c t i o n ,s p e c u l a rr e f l e c t i o na n ds c a t t e r i n ga ts u r f a c ea n dt r a n s m i s s i o n , r e f r a c t i o na n da t t e n u a t i o na tm e d i u m ,t oa c h i e v ec o m p l e xs p e c i a le f f e c t sr e n d e r i n g s u c ha ss c e n eb l a n k i n g ,s h a d o wg e n e r a t i o n ,w a t e rf l u c t u a t i o n sa n da t m o s p h e r i ce f f e c t s t h er a yt r a c i n ga l g o r i t h mi si n t r o d u c e dt or e n d e rt h es p a c es c e n e ,n o to n l yc a n f a c t u a l l ys h o wt h es p a c es c i e n c em i s s i o n s 、析t l lv i s i b l el i g h t b u ta l s oc a nb ea p p l i e dt o v i s u a l i z es c i e n t i f i cd a t aw i t hn os p e c t r a lc h a r a c t e r i s t i c s t h i sa r t i c l es t u d i e sh o wt oo r g a n i z es c e n ed a t at of o r mas p e c i a ld a t af o r m a tf o r a c c e l e r a t i n gr a yt r a c i n ga l g o r i t h m ,a n dd i s c u s s e sh o wt oc h a n g e3 d sf o r m a tm o d e l i n t ob a s i ce l e m e n ts u p p o r t e db yt h es y s t e m i no r d e rt og e n e r a t em o r er e a l i s t i ci m a g e s ,t h i sp a p e ri n t r o d u c e st h em e r s e n n e t w i s t e rr a n d o mp e r t u r b a t i o nt ot r a c kt h ed i f f u s el i g h t ,a n du s eb e e r sl a wt os i m u l a t e t h e l i g h ta t t e n u a t i o ni nt h es e m i - t r a n s p a r e n to b j e c t s a n dg e n e r a t es o f t s h a d o w s a c c o r d i n gt om o n t ec a r l ot h e o r y f i n a l l y , i tf o r m e dv e r yr e a l i s t i cr e n d e r i n ge f f e c t s i nt e r m so fd r a w i n ga t m o s p h e r i ce f f e c t s ,t h i sp a p e rd e s c r i b e st h ep r o c e s so f n i s h i t as i n g l es c a t t e r i n gm o d e li nd e t a i l ,p o i n t so u tt h el a c ko fd r a w i n ga t m o s p h e r i c s c a t t e r i n gb yo t n e i l ,a n dt r a n s f o r m si ti n t or a yt r a c i n gm o d ef o rt h i sr e n d e r i n gs y s t e m f i n a l l y ,t h i sa r t i c l ed e s i g n sag e n e r i c ,d i s t e n s i b l er a yt r a c i n gs y s t e mw i t hm o d u l a r a p p r o a c hb a s e do ni d e a so fh i e r a r c h i c a lo r g a n i z a t i o na n dp r o v i d e sa b a s i sf r a m e w o r k f o rf u t u r ev i s u a l i z a t i o ns p a c em i s s i o n s i v a b s t r a c t k e y w o r d s :r a yt r a c i n g ,3 d sm o d e l s ,k dt r e e ,i l l u m i n a t i o nm o d e l ,m o n t e c a r l o ,a t m o s p h e r i ce f f e c t s v 光线追踪在空间目标与地球场景渲染中的研究与实现 目录 摘要 a b s t i 认c t 。i v 目录。v i 图索引i x 表索引。x 第一章绪论1 1 1研究背景及意义1 1 2国内外研究现状2 1 3本文主要研究内容与结构3 第二章光线追踪概述5 2 1光线追踪基本原理5 2 2光线追踪过程6 2 3本章小结。8 第三章场景组织与管理9 3 1空间目标的绘制9 3 1 13 d s 文件格式介绍9 3 1 23 d s 文件的读取1 1 3 1 33 d s 文件的解析。1 4 3 2 基于规则格网的场景组织1 6 3 2 1规则格网的生成。1 6 3 2 2生成过程中的相关算法1 8 v l 目录 3 2 3格网搜索算法2 0 3 2 4相交测试改进2 5 3 3基于k d 树的场景组织2 6 3 3 1k d 树的生成。2 6 3 3 2k d 树的搜索2 9 3 4本章小结。3 0 第四章光照计算。3 1 4 1光照模型3 1 4 1 1光照模型原理3 1 4 1 2相交点光照计算3 2 4 2相关效果处理。3 6 4 2 1 漫反射光线的追踪3 6 4 2 2折射光线的追踪3 8 4 2 - 3软阴影的生成3 9 4 3本章小结4 0 第五章大气效果绘制4 1 5 1大气绘制基础。4 1 5 1 1大气特性介绍4 l 5 1 2n i s h i t a 单散射模型4 3 5 2基于查找表的大气绘制4 7 5 - 3大气绘制的光线追踪改造4 9 5 4本章小结。5 0 第六章软件设计与实现5 1 6 1 功能模块划分5 1 6 2系统设计与流程5 2 6 3软件实现与效果分析s 4 v i i 6 3 6 5 6 5 7 2后续工作展望。6 5 参考文献6 7 在读期间发表的学术论文7 0 致谢7 1 v i i i 图索引 图2 1 光线追踪过程示意图6 图3 1 场景平移示意图一18 图3 2 相交测试改进示意图2 5 图4 1l a m b e r t 漫反射模型3 3 图4 2p h o n g 光照模型3 4 图4 3 漫反射光线生成示意图3 7 图4 4 面光源采样示意图4 0 图5 1 瑞利散射强度分布4 2 图5 2h g 相位函数随g 值变化图4 3 图5 3 光线穿越大气光强计算图4 6 图5 4 光线与地球相交光强计算图4 7 图6 1 系统结构图一5 2 图6 2 系统流程图5 4 图6 3d 3 d 渲染效果5 6 图6 4 规则采样阴影效果一5 6 图6 5 随机采样阴影效果一5 7 图6 6 反射、折射效果图。5 8 图6 7d 3 d 管线渲染效果图一5 9 图6 8 光线追踪卫星效果图一5 9 图6 9 远看大气渲染效果图6 0 图6 1 0 近看大气渲染效果图6 0 图6 1l 远看卫星渲染效果图6 1 图6 1 2 近看卫星渲染效果图6 1 i x 表索弓 表索引 表3 13 d s 模型文件中主要块i d 及含义1 0 表3 23 d s 文件结构表。l0 表6 2 无大气效果不同场景组织方式渲染效率。6 2 表6 3 有大气效果不同场景组织方式渲染效率6 2 表6 4 有大气效果不同大小格网渲染效率6 2 x 第一章绪论 第一章绪论 1 1 研究背景及意义 光线追踪是一种基于几何光学原理生成真实感图形的通用技术,它采用一种 统一的模型来模拟光源和环境入射光在物体表面产生的漫反射、镜面反射和散射、 介质中产生的透射、折射和衰减等光学现象,实现场景消隐、阴影生成、水面波 动、大气效果等复杂特效的渲染。从计算机图形学的角度分析,光线追踪是利用 计算机来合成真实感图形的一个强有力的工具。在建立全局光照模型之前,人们 只能模拟单一的光学现象,自然无法再现复杂的明暗观感。而光线追踪在全局光 照模型的基础上,综合考虑各种环境因素,运用反向跟踪光线的思想去描绘光线 在场景中传播的全过程,故可以真实地反映明暗分布、光照衰减、光线扭曲等现 象,从而能够产生具有逼真视觉效果的图形。此外,用光线追踪的方法也可以可 视化表达可见光范围外的其他电磁波所探测的整个场景,此时需要设计一个转换 函数,用不同颜色米表达各个位置的能量状况,从而使观察者能一目了然的认识 整个场景。 科学计算可视化用形象的图形方式表示数据域中抽象的数据所反映的内容, 使研究人员能更快、更直观地进行分析。近年来,各行各业特别是航空航天事业 的迅猛发展,尤其是对航天器运行有重要影响的空间环境的研究越来越深入,所 需处理的地面、空间数据量日益庞大,而三维可视化作为显示、分析空间环境数 据,挖掘内部信息的重要辅助手段具有直观、快捷、交互性、实时性强等优点, 因此如何运用三维可视化方法更有效地分析和解决问题,已经成为研究的热点。 三维可视化可以大大加快数据的处理速度,使目前每日、每时都在产生的庞大数 据得到有效利用;可以在人与数据、人与人之间实现图像通信,从而使人们能够 观察到在具体的科学实验中发生了什么现象,成为发现和理解科学实验过程中各 种现象的有力工具;同时,还可以实现对实验过程的引导和控制,通过交互手段改 变科学实验所依据的条件,并观察其影响。总之,三维可视化将极大地提高数据处 理速度和质量,从而使科学研究工作的面貌发生根本性的变化。 l 光线追踪在窄问日标与地球场景渲染中的研究与实现 如前文所述,光线追踪算法除了可以模拟逼真的光照效果以外,还可以应用 到不具备光谱特性的科学数据的可视化巾去,即通过从像素发出跟踪光线穿越三 维数据域和几何模型来形成可视图,并且要对每条光线所通过的数据区域的物理 量数据进行积分,以此作为最终像素颜色的依据。通过设置不同的相机位置和颜 色转换函数,可以让研究人员能够直观地看到数据场的概貌,清晰地观察和分析 数据场的局部细节,了解数据域中的内容,提高对数据场的认知率。 同时,光线追踪是一个通用算法,无论什么场景,都能用它渲染出非常逼真 的图形,这是传统的光栅化扫描所无法比拟的。因此,如果能利用光线追踪的方 法实现对空间目标及地球场景的绘制,在增强直观、逼真效果的同时提高运算效 率,必将有广阔的应用前景。 1 2 国内外研究现状 在真实感图形学对光线跟踪算法的研究中,早在1 9 6 8 年a p p e l 研究隐藏面 消除的光线投射算法时,首次给出了光线追踪算法的描述。1 9 7 9 年k a y 和 g r e e n b e r g 的研究考虑了光的折射。直到1 9 8 0 年w h i t t e d 提出第一个整体光照模 型,并给出一般性光线追踪算法的范例,综合考虑了光的反射、折射、透射和阴 影等,光线追踪才真正显示出其强大的威力。从此之后,光线追踪算法得到了广 泛的研究,成为当今图形学的一个研究热点。 随着近些年对光线追踪算法的研究,无论是真实感还是渲染效率都取得了很 好的发展。在场景加速方面,文献【1 6 】简要介绍了规则格网、自适应格网、八叉 树及k d 树等场景组织的基本原理;文献 1 0 ,2 0 分别介绍了规则格网和k d 树 对场景组织的实现方法,起到了很好的加速作用。在光线与场景元素求交方面, 文献 1 4 ,1 5 提出了一种基于重心坐标的光线与三角面片求交的计算方法,极大 的提高了求交测试效率。这些方面的改进使得光线追踪方法的应用也有了长足的 发展,渗透到各个领域之中。比如在电影特效的处理中,光线追踪技术一直发挥 着非常重要的作用,当前采用光线追踪技术渲染的电影阿凡达在各地的热映, 更是掀起了3 d 电影制作的热潮。 在空间科学领域,光线追踪技术的应用却并不多。空间场景渲染的一个重要 2 交互作用有关,如云、雾、霭、彩虹、晕轮、闪电、极光等。当前在这方面有一 些研究,如文献【4 1 】基于大气的后向散射模拟了峨嵋宝光这一自然奇观;文献 4 2 】 基于大气的折射和伞反射模拟了海市蜃楼自然奇景。但是,这些现象的模拟实现 都是在对物理现象的建模基础上采用光线投射或者光栅化的方式进行绘制的。它 们或者没有考虑其它的场景或者是先对自然现象模拟然后与采用光栅化处理的 其它场景进行简单的融合,基于这种方式渲染,人气的散射或折射效果并不会体 现在整个场景上,因此会使场景的真实感效果极大的降低。所以本文将光线追踪 算法引入到整个空间场景的渲染之中,构建一个可扩展的光线追踪系统,在真实 的展现空间场景的同时,便于以后其它自然现象模拟效果的添加。 1 3 本文主要研究内容与结构 本文在充分调研光线追踪方法当前的国内现状的基础上,针对空间目标和地 球场景的特点,主要对以下内容进行了研究: 1 ) 适合光线追踪法的场景建立与组织研究 为了加快光线在场景中的传递,本文研究了如何将场景信息进行组织以形 成适合于光线追踪算法加速的数据形式,同时由于在航天仿真可视化中,很多空 间目标及地表场景都是基于模型的方式给出的,因此本文解决了如何将3 d s 格 式模型转化为本系统的基本图元。 2 ) 真实感图形生成技术研究 在光线追踪过程中,由视点直接发出的光线称为初级光线,而这些初级光 线所产生的反射、折射及阴影测试光线统称为二级光线。这些二级光线的处理方 式对最终的渲染效果有至关重要的作用,本文对这些二级光线的追踪技术进行了 研究。 3 ) 大气效果绘制研究 影响空间目标的空间环境包括磁场、电离层、太阳风及大气等一系列因素, 但是在航天器成像仿真可视化中,大气对成像效果的影响是最显著的,因此本文 光线追踪和窄问目标与地球场景渲染中的研究j 实现 以大气效果的绘制为例进行了研究。在分析了当前大气散射效果绘制的基础上, 探讨了如何在本光线追踪系统中实现大气渲染效果。 4 ) 光线追踪系统实现 由于当前本文对窄间环境的研究以大气渲染为主,为了便于以后对其它相 关效果比如云、磁场等的添加,本文基于模块化理论采用分层设计的思想实现了 一个可扩展的光线追踪系统,能比较方便的集成其它渲染效果。 本文的主要结构如下: 第章:概述了本文的研究背景、意义以及本文的主要工作和组织结构。 第二章:简要介绍了光线追踪法的基本原理,通过伪代码的形式示意了光线 追踪的具体过程。 第三章:针对当前应用最广的3 d s 模型格式,给出了导入和解析的方法;基 于规则格网和k d 树两种场景组织方式对本文场景进行管理,同时提出了在具体 实现规则格网过程中对相交测试的改进方法。 第四章:阐述了相交点光照计算过程,同时提出了光线追踪过程中二级光线 处理方式及软阴影的生成方法,使得图像的真实感有很大的提高。 第五章:介绍了n i s h i t a 单散射模型,对o ,n e i l 基于查找表的实现方法进 行光线追踪改造,实现了大气效果的绘制。 第六章:给出整个光线追踪系统的设计方法和数据流程,并阐述了提高系统 性能的四个技术,同时展示和分析了本文的一些渲染效果。 第七章:总结了本文的工作,并对进一步研究的方向做了阐述。 4 第二章光线追踪概述 第二章光线追踪概述 光线追踪法最先由a p p e l 提出时,是按从观察者到景物的方向追踪光线到达 一个不可见的非透明物体表面时终止,因此仅仅用作可见面处理算法。1 9 8 0 年, w h i t t e d 提出了一种整体光照模型,发展了光线追踪算法,极大提高了渲染的真 实感。本章对光线追踪方法的基本原理和追踪过程进行介绍。 2 1 光线追踪基本原理 光线追踪算法是建立在数学、物理等基础学科上的一种多功能的技术,它可 用同模型来模拟光源和环境入射光在表面产生的镜面反射和折射、实现场景消 隐及生成阴影等,同时也可作为体绘制的技术基础。在标准的光线追踪算法中, 有两个隐含的假设: 1 ) 光线是一根没有大小的直线,即光线定义为数学意义上的直线; 2 ) 景物表面是完全光滑的,即光线在景物表面的反射遵循镜面反射和规则 透射规律。 显然,这样的图形是超现实的。同时由w h i t t e d 光照模型可知,景物上每一 可见点处的光亮度由以下三部分组成:a ) 由光源直接照射引起的光亮度;b ) 来 自环境中其它景物的入射光在表面产生的反射光亮度;c ) 米自环境中其它景物 的入射光在表面产生的规则透射光亮度。 由于从光源发出的无穷多条光线中,只有少数光线经由场景中的景物表面之 间的反射和透射后到达观察者的眼中。为了减少无用计算,标准光线追踪算法采 用逆向追踪技术来完成整个绘制过程,即光线追踪是光照物理过程的近似逆过程, 它仅追踪景物间的镜面反射光线和规则透射光线,因而它仅模拟了理想表面的光 能传播。 光线追踪法是从视点出发,通过图像平面上每一象素中心向场景中发出一条 光线,若光线与场景中的景物无交,则光线将射出画面,追踪结束。否则,光线 在离视点最近的景物表面交点处的走向有以下三种可能: 光线追踪在空间目标与地球场景渲染中的研究与实现 1 ) 当前交点所在的景物表面为理想漫射面,可采样漫反射光线方向追踪。 2 ) 当前所在的景物表面为理想镜面,光线沿其镜面反射方向继续追踪。 3 ) 当前交点所在表面为规则透射面,光线沿其规则透射方向继续追踪。 显然,这是一个递归追踪过程。虽然光线在景物间的反射和折射可以无限制 的进行下去,但在实际计算时不可能做无休止的光线追踪,因而需要给出光线追 踪的终止条件。一般说来,光线追踪的终止条件有以下三利: 1 ) 光线射出画面,即光线与场景中的景物没有交点。 2 ) 追踪光线对显示象素光亮度的贡献小于某一预先给定的阂值。 3 ) 当前追踪深度己经超过用户设定的最大追踪深度。 2 2 光线追踪过程 光线追踪方法是基于几何光学原理,通过模拟光的传播路径来确定反射、折 射和阴影等。由于每个像素都单独计算,所以能很好地表现场景细节。在光线追 踪系统中,物体空间中一点被取作视点,一个与视点位置适当的平面矩形区域被 取作投影屏幕。为了简化计算,常把视点取在z 轴上,并取x o y 平面作为投影 屏幕。投影屏幕用两组互相垂直的平行线分成若干个小方格,每个小方格对应于 显示器屏幕的一个像素,常取小方格中心为取样点。如图2 1 所示,图形生成是 通过对每个像素分别计算颜色亮度来进行的。 图2 1 光线追踪过程示意图 第一步,从视点出发,引一条视线穿过取样点,向物体空间延伸,通过计算 6 第二章光线追踪概述 求得与它相交的物体。视线可能与多个物体相交,存在多个相交点,此时必须比 较各点与视点之间的距离,求得离视点最近的相交点即在视线方向上相对于视点 的可见点。 第二步,计算该可见点处的法向量,通过查找表面数据表,获得表面的颜色 属性、反射率、透明性、粗糙程度等。 第三步,通过光照模型公式计算可见点处的光强。在计算之前,要先判断可 见点是否处于阴影中,即确定光源对该点的光强是否有直接贡献。判断的方法是 从该点向光源引射线,看射线是否与某个不透明的物体相交。 第四步,计算二级光线并进行类似追踪。如果当前相交物体比较光滑,如玻 璃窗、磨光或电镀的金属表面等,那么其它物体可以通过可见点反射或折射到视 点,因此必须对其反射光线或折射光线进行跟踪。所以光线跟踪是一个递归过程, 每个像素的颜色和光强是综合各级递归计算的结果来获得的。 结合图2 1 ,光线跟踪基本原理用算法描述如。i - : r a y t r a c i n g ( s t a r t p o i n t ,v i e w d i r e c t i o n ,w e i g h t ,c o l o r ) * s t a r t p o i n t :在第一次调用表示视点,以后各次递归调用表示可见点; v i e w d i r e c t i o n :视线方向,与光传播方向相反;w e i g h t :前点光强计算结果的贡 献比例值,当它小于阀值m i n w e i g h t 时,将被认为对最终计算结果影响很小,可 忽略不记;c o l o r :颜色返回值卡 i f ( w e i g h t 一基木块( p r i m a r yc h u n k ) ,位于文件的开始一 f l d e f i n ep r i m a r y0 x 4 d 4 d 3 d s 文件标识 # d e f i n ev e r s l 0 n0 x 0 0 0 2 3 d s 文件的版本号 一主块( m a i nc h u n k s ) # d e f i n e e d i t 3 d s0 x 3 d 3 d 实际模型开始标识 # d e f i n em e s hv e r t i c e s0 x 4 11 0 网格顶点 # d e f i n ev e r t e xf l a g s0 x 411 1 顶点状态 # d e f i n em e s hf a c e s0 x 4 1 2 0 网格三角面 # d e f i n em e s hm a t e r0 x 413 0 网格材质 ( 2 ) 定义一个c 3 d s l o a d e r 类,用于处理模型导入。在该类中,定义了以下儿 个结构体: 1 、s t v e r t 记录模型中当前顶点的位置; 2 、s t m a t e f i a h 己录了当前材质名称,材质颜色,是否包含纹理以及纹理文件 名:2 3 、s t f a c e i 己录三角面片的三个顶点在顶点列表中的索引及该三角面片的材质 i d ,即在材质列表中的索引; 4 、s t t e x 记录了对应顶点的纹理信息; 5 、s t m e s h 结构体定义了模型中每个m e s h 部分的名称,顶点数目及列表,面 片信息等,具体如下所示: s t r u c ts t m e s h 模型中某个相对独立的部分 c h a r s z m e s h n a m e 2 5 6 ;m e s h 名称 光线追踪各窄问目标与地球场景渲染中的研究与实现 i n t i n u m v e r t s ; 顶点数目 s t v e r t 宰p v e r t s ; 顶点列表 i n t i n u m f a c e s ; 面片数目 s t f a c e 木p f a c e s ; 面片列表 b o o l b t e x t c o o r d s ; 是否有纹理 s t t e x 木p t e x s ; 纹理坐标列表 ) 每个3 d s 文件可能包括几个m e s h 模块,因此,该类的主要功能就是将3 d s 文 件中的内容读入到几个对应的m e s h 模块中。在该类中,主要成员函数如下: v o i dr e a d c h u n k ( s t c h u n k 宰p c h u n k ) ;读取某块内容 v o i ds k i p c h u n k ( s t c h u n k 宰p c h u n k ) ; 跳过无用块 v o i dr e a d m e s h t e x c o o r d s ( s t c h u n k 木c h u n k ) ;读取模块中的纹理坐标信息 v o i dr e a d m e s h v e r t i c e s ( s t c h u n k 木c h u n k ) ;读取m e s h 模块中的顶点信息 v o i dr e a d m e s h f a c e s ( s t c h u n k 枣c h u n k ) ;读取m e s h 模块中的面片信息 v o i dr e a d m e s h m a t e r i a l s ( s t c h u n k * c h u n k ) ;读取m e s h 模块中的材质信息 定义递归函数,p a r s e c h u n k 0 ,从3 d s 文件的主块开始读取文件,根据块的 i d ,采用条件判断语句转入到相应块的处理函数位置。比如某块是无用块,则转 入至l j s k i p c h u n k 函数进行处理,以过滤掉无用的块信息,将对应文件索引指定到 下一个块的起始位置。这样,当循环读取完整个文件时,模型信息就全部保存到 s t m e s h 结构体中。该函数的主要程序代码如下: v o i dp a r s e c h u n k ( s t c h u n k 宰c h u n k ) ;循环读取块i d ,并转入相应块处理函数 w h i l e ( c h u n k - b y t e s r e a d l e n g t h ) s t c h u n kt e m p c h u n k = 0 ) ; r e a d c h u n k ( & t e m p c h u n k ) ; s w i t c h ( t e m p c h u n k i d ) 1 2 第三章场景组织与管理 c a s ee d i t 3 d s :0 x 3 d 3 d 主块,实际模型开始标志 p a r s e c h u n k ( & t e m p c h u n k ) ; b r e a k ; c a s em a t e r i a l :0 x a f f f 材质信息 s t m a t e r i a ln e w m a t e r i a l ; m _ p m a t e r i a l s p u s h _ b a c k ( n e w m a t e r i a l ) ; mi n u m m a t e r i a l s + + ; p a r s e c h u n k ( & t e m p c h u n k ) ; b r e a k ; c a s em a tt e x f l n m :0 x a 3 0 0 纹理文件名 g e t t e x f i l e n a m e ( & t e m p c h u n k ) ;获取纹理文件名 b r e a k ; c a s en a m e do b j e c t :0 x 4 0 0 0 对象信息 s t m e s hn e w m e s h ; mp m e s h s p u s h _ b a c k ( n e w m e s h ) ; mi n u m m e s h s + + ; g e t m e s h o b j e c t n a m e ( & t e m p c h u n k ) ; b r e a k ; c a s em e s h ,e r t i c e s :o x 4110 r e a d m e s h v e r t i c e s ( & t e m p c h u n k ) ; b r e a k ; c a s em e s h ,n c e s :0 x 412 0 r e a d m e s h f a c e s ( & t e m p c h u n k ) ; b r e a k ; c a s em e s h t e x v e r t :0 x 414 0 r e a d m e s h t e x c o o r d s ( & t e m p c h u n k ) ; b r e a k ; c a s em e s hm a t e r :0 x 413 0 1 3 光线追踪在窄问目标j 地球场景渲染中的研究与实现 r e a d m e s h m a t e r i a l s ( & t e m p c h u n k ) ; b r e a k ; d e f a u l t : s k i p c h u n k ( & t e m p c h u n k ) ; ) c h u n k 一 b y t e s r e a d + = t e m p c h u n k 1 e n g t h ; 3 1 33 d s 文件的解析 通过前文的处理,已经将3 d s 模型数据按其组织方式读入到了内存中。为 了加速光线追踪法对场景的处理,本文采取场景管理模式来管理整个场景。因此, 必须将所读取的模型数据重新组织成本文所支持的数据格式。本文定义了两种图 元格式:球体和三角面片。 由于s t m e s h 中已经保存了从模型中读出的所有图元信息,因此,对于每一 个模型,依次循环访问每一个m e s h 类型的子对象,然后去访问每个子对象的顶 点、纹理坐标等信息,并把它们加入到对应的图元结构体中。 本文用c 3 d s p a r s e r 类进行处理,它将读取的文件解析成程序所组织的三角 面片格式,对面片的材质进行读取设置或人为指定设置。 该类对外的函数接口为: b o o lo r g a n i z e 3 d s d a t a ( c 3 d s l o a d e r 木p 3 d s l o a d e r , 模型装载指针 i n t * p n u m p r i m i t i v e , 记录图元数目 p r i m i t i v e 料p p p r i m i t i v e s ,保存图元信息 v e c t o r 3v e c p o s , 设置图元的中心点位置 r e a lr s i z e ) ; 设置图元的放缩比例 通过接口函数可以获取模型数据指针及解析后图元的数据和保存地址。由于 本文没有应用o p e n g l 或者d i r e c t x 等图形渲染a p i ,因此必须自己处理模型的缩 放和平移问题,通过该接口函数就可以获取当前模型平移后的中心点位置及缩放 1 4 第三章场景组织与管理 比例。 通过下面函数循环对每个m e s h 对象的所有面片进行处理: v o i do r g a n i z e m e s h v e r t i c e s ( c 3 d s l o a d e r :s t m e s h 半p m e s h , c 3 d s l o a d e r :s t m a t e r i a l 木p m a t ) ; 该函数依次访问s t m e s h 结构体中的三角面片,从面片指针中去获取对应的顶点 和材质信息,并将对应信息填充至对应图元结构体中。 为了真实处理模型的信息,需要解决如下问题: a ) 由于需要处理模型缩放,因此必须获取模型的当前大小,然后将x 轴向 作为缩放基准乘以放缩比例因子,对于其它两个方向的缩放,则依据它们两个方 向的模型包围盒人小与x 轴向的包围盒尺寸的比例再乘以放缩因子形成这两个 方向上的最终放缩比例。对于循环获取的每一个顶点数据的三个分量分别乘以对 应的放缩因子以形成最终的顶点位置,这样就不会造成模型的形变。 b ) 在追踪过程中,需要知道场景的范围,因此必须计算模型的大小。本文采 用轴向包围盒,即记录包围盒的左卜角点和右上角点进行描述。对于模型中的每 个顶点均与当前包围盒的两个记录点进行比较,如果小于左下角点,i 贝0 将左下角 点更新为当前点,同理,如果大于右上角点则将右上角点更新为当前点。 c ) 处理纹理图片的导入。一般模型都会采用纹理贴图来提高真实感,因此 提供纹理图片导入功能是必不可少的。当前,图片格式纷繁多样,本文选取了t g a 、 j p g 、p n g 、b m p 及g i f 这些常见格式的图片类型进行处理。根据传入的图片名称, 截取其后缀名,然后依据该后缀名所表达的类型转入相应图片导入模块进行处理。 对于j p g 、p n g 、b m p 及g i 潞式图片,本文采用c + + 所提供的c l m a g e 类来读取,而 t g a 类型的纹理图片,由于其数据格式很简单,则直接读取解析。 d ) 处理材质信息。在3 d s 模型中,一张图片可能被许多三角面片作为纹理, 因此,在本文中先将该模型所涉及的所有纹理图片导入,当某个三角面片有纹理 时,通过纹理名称去已经导入的图片库中搜索,如果匹配就记录相应的纹理指针。 由于在模型解析时能对每个三角面片进行操作,因此,对于光线追踪所需要的漫 反射、镜面反射因子,可针对单个m e s h 模块甚至单个面片进行设定。 通过对模型的解析,将表示空间目标的3 d s 模型数据转化成了本文所支持 光线追踪红
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于多类遗传变异的猪基因组选择方法研究
- 儿童脓毒症急性肾损伤风险预测模型建立与验证
- 汉字阅读训练课件
- 农民合作社生产经营协调管理协议
- 综合素质评价研究性学习情况
- 秋天的果实丰收记事作文(14篇)
- 环保意识从我做起议论文(11篇)
- 2025至2030中国本地化测试服务行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国服务台工具行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国智能楼宇管理系统行业发展趋势分析与未来投资战略咨询研究报告
- 2024年上海市普通高中学业水平等级性考试化学试卷(含答案)
- 企业法务概论智慧树知到期末考试答案章节答案2024年温州大学
- 日本概况-四季流转中的日本文化史智慧树知到期末考试答案2024年
- 【中国地理】中国的气候
- 我国地方政府在公私合作(PPP)项目中的风险管理研究的综述报告
- 第1课 多姿与多彩(生活色彩)课件-2023-2024学年高中美术人教版(2019)选择性必修1《绘画》
- 海拔高度与气压、空气密度、重力加速度对照表
- 考评员职业道德课件
- 新时代这十年的变化
- 一例心脏瓣膜病患者的病例讨论
- 变电运行风险辨识库
评论
0/150
提交评论