光线追踪的应用及发展趋势_第1页
光线追踪的应用及发展趋势_第2页
光线追踪的应用及发展趋势_第3页
光线追踪的应用及发展趋势_第4页
光线追踪的应用及发展趋势_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、课程论文课程论文题目:光线追踪的应用及未来发展学院:人民武装学院专业:计算机科学与技术班级:物联人151学号:1500860346学生姓名:谭朝艳指导教师:宁阳2016年6月3日贵州大学课程论文目录摘要II第一章绪论11.1 光线追踪的定义11.2 光线追踪的原理11.2.1 自然现象11.2.2 光线追踪的原理11.3 光线追踪的特点31.3.1 光线追踪的优点31.3.2 光线追踪的缺点3第二章光线追踪的应用42.1 光线追踪在图形渲染中的应用42.2 光线追踪在物理学中的应用42.3 光线追踪在实际应用42.4 实时跟踪4第三章光线追踪的未来发展趋势63.1 光线追踪VS光栅化63.2

2、显卡何时才能实时光线追踪73.3 光线追踪的未来发展II贵州大学课程论文光线追踪的应用及未来发展摘要光线跟踪是一种真实地显示物体的方法,该方法由Appe在1968年提出。光线跟踪方法沿着到达视点的光线的反方向跟踪,经过屏幕上每一个象素,找出与视线相交的物体表面点P0,并继续跟踪,找出影响P0点光强的所有光源,从而算出P0点上精确的光线强度,在材质编辑中经常用来表现镜面效果。光线跟踪或称光迹追踪是计算机图形学的核心算法之一。在算法中,光线从光源被抛射出来,当他们经过物体表面的时候,对他们应用种种符合物理光学定律的变换。最终,光线进入虚拟的摄像机底片中,图片被生成出来。关键字:光线跟踪(Raytr

3、acing),真实感贵州大学课程论文第一章绪论1.1 光线追踪的定义光线跟踪(Raytracing),又称为光迹追踪或光线追迹,来自于几何光学的一项通用技术,它通过跟踪与光学表面发生交互作用的光线从而得到光线经过路径的模型。它用于光学系统设计,如照相机镜头、显微镜、望远镜以及双目镜等。这个术语也用于表示三维计算机图形学中的特殊渲染算法,跟踪从眼睛发出的光线而不是光源发出的光线,通过这样一项技术生成编排好的场景的数学模型显现出来。这样得到的结果类似于光线投射与扫描线渲染方法的结果,但是这种方法有更好的光学效果,例如对于反射与折射有更准确的模拟效果,并且效率非常高,所以当追求这样高质量结果时候经常

4、使用这种方法。1.2 光线追踪的原理1.2.1 自然现象在自然界中,光源发出的光线向前传播,最后到达一个妨碍它继续传播的物体表面,我们可以将“光线”看作在同样的路径传输的光子流,在完全真空中,这条光线将是一条直线。但是在现实中,在光路上会受到三个因素的影响:吸收、反射与折射。物体表面可能在一个或者多个方向反射全部或者部分光线,它也可能吸收部分光线,使得反射或者折射的光线强度减弱。如果物体表面是透明的或者半透明的,那么它就会将一部分光线按照不同的方向折射到物体内部,同时吸收部分或者全部光谱或者改变光线的颜色。吸收、反射以及折射的光线都来自于入射光线,而不会超出入射光线的强度。例如,一个物体表面不

5、可能反射66%的输入光线,然彳爰再折射50%的输入光线,因为这二者相加将会达到116%。这样,反射或者折射的光线可以到达其它的物体表面,同样,吸收、反射、折射的光线重新根据入射光线进行计算。其中一部分光线通过这样的途径传播到我们的眼睛,我们就能够看到最终的渲染图像及场景。1.2.2 光线追踪的原理精美的CG效果图,与真实世界毫无区别的电影视觉效果,相信大家对这些并不陌生。而大家在游戏中对水面之类的场景并不陌生,不过它所生成的画面效果,好像永远都不那么真实。即使人们尽再大的努力,它的画面始终还是动画,和人贵州大学课程论文们心目中的“电影级别的画质”总是差那么一点。这是因为,我们目前的游戏,无一例

6、外都在使用光栅化算法。而在这些电影中,则采用的是光线追踪算法。在3DSMaxMayaSoftimageXSI等软件中,也都无一例外地采用了这一算法。光线追踪技术是由几何光学通用技术衍生而来。它通过追踪光线与物体表面发生的交互作用,得到光线经过路径的模型。简单地说,3D技术里的光线追踪算法,就是先假设屏幕内的世界是真实的,显示器是个透明的玻璃,只要找到屏幕内能透过人眼的光线,加以追踪就能构建出完整的3D画面。说到光线追踪,就不得不提光栅化。光栅化是指把景物模型的数学描述及其色彩信息转换至计算机屏幕上像素的过程。使用光栅化,我们可以将几何图形转化成屏幕上的像素。Direct3D使用扫描线的渲染来产

7、生像素。当顶点处理结束之后,所有的图元将被转化到屏幕空间,在屏幕空间的单位就是像素。点,线,三角形通过一组光栅规则被转化成像素。光栅规则定义了一套统一的法则来产生像素。光栅得到的像素一般会携带深度值,一个RGBAdiffuse颜色,一个RGBspecular颜色,一个雾化系数和一组或者多组纹理坐标。这些值都会被传给流水线的下一个阶段像素的处理,然后注入到渲染目标。由于实时3D渲染程序要求对用户的即时操作做出迅速反应,因此通常要求每秒至少20帧以上的渲染速率,这也使得高效率的“光栅化”渲染技术成为当今最受青睐的3D即时成像技术。但是光栅化的缺点也很明显,那就是无法计算真实的光线,导致很多地方失真

8、。光线追踪算法分为两种:正向追踪算法和反向追踪算法。其中,正向追踪算法是大自然的光线追踪方式,即由光源发出的光经环境景物间的多次反射、透射后投射到景物表面,最终进入人眼。反向追踪算法正好相反,它是从观察者的角度出发,只追踪那些观察者所能看见的表面投射光。就目前而言,所有3D制作软件的光线追踪算法都是采用反向追踪法,原因是这种算法能够最大程度地节省计算机的系统资源,而且不会导致渲染质量的下降。在现实世界中射到物体表面上通常有三种情况:折射,反射,吸收。光线在经过反射到不同的地方,被选择性吸收,从而光谱发生改变,再多次反射与折射,最终进入我们自己的眼睛。而光线追踪技术要做的就是模拟这一过程。贵州大

9、学课程论文1.3 光线追踪的特点1.3.1 光线追踪的优点光线跟踪的流行来源于它比其它渲染方法如扫描线渲染或者光线投射更加能够现实地模拟光线,象反射和阴影这样一些对于其它的算法来说都很难实现的效果,却是光线跟踪算法的一种自然结果。光线跟踪易于实现并且视觉效果很好,所以它通常是图形编程中首次尝试的领域。1.3.2 光线追踪的缺点光线跟踪的一个最大的缺点就是性能,扫描线算法以及其它算法利用了数据的一致性从而在像素之间共享计算,但是光线跟踪通常是将每条光线当作独立的光线,每次都要重新计算。但是,这种独立的做法也有一些其它的优点,例如可以使用更多的光线以抗混叠现象,并且在需要的时候可以提高图像质量。尽

10、管它正确地处理了相互反射的现象以及折射等光学效果,但是传统的光线跟踪并不一定是真实效果图像,只有在非常紧似或者完全实现渲染方程的时候才能实现真正的真实效果图像。由于渲染方程描述了每个光束的物理效果,所以实现渲染方程可以得到真正的真实效果,但是,考虑到所需要的计算资源,这通常是无法实现的。于是,所有可以实现的渲染模型都必须是渲染方程的近似,而光线跟踪就不一定是最为可行的方法。包括光子映射在内的一些方法,都是依据光线跟踪实现一部分算法,但是可以得到更好的效果。贵州大学课程论文第二章光线追踪的应用2.1 光线追踪在图形渲染中的应用将光线追踪算法应用于图形渲染最初是由ArthurAppel于1968年

11、提出,那时还叫raycasting。1979年TurnerWhitted带来了新的研究突破:递归光线追踪算法RecursiveRayTracingAlgorithm。1984年,Carpenter等人发表了一篇分布式光线追踪的论文DistributedRayTracing,影响甚广。发展到今天,大多数的照片级渲染系统都是基于光线追踪算法的。基本的光线追踪算法并不难,相信大部分计算机图形学的同学都写过的,难的是如何优化提高效率。2.2 光线追踪在物理学中的应用在物理学中,光线追迹可以用来计算光束在介质中传播的情况。在介质中传播时,光束可能会被介质吸收,改变传播方向或者射出介质表面等。我们通过计算

12、理想化的窄光束(光线)通过介质中的情形来解决这种复杂的情况。2.3 光线追踪在实际应用在实际应用中,可以将各种电磁波或者微小粒子看成理想化的窄波束(即光线),基于这种假设,人们利用光线追迹来计算光线在介质中传播的情况。光线追迹方法首先计算一条光线在被介质吸收,或者改变方向前,光线在介质中传播的距离,方向以及到达的新位置,然后从这个新的位置产生出一条新的光线,使用同样的处理方法,最终计算出一个完整的光线在介质中传播的路径。2.4 实时跟踪人们已经进行了许多努力,改进如计算机与视频游戏这些交互式三维图形应用程序中的实时光线跟踪速度。OpenRT项目包含一个高度优化的光线跟踪软件内核,并且提供了一套

13、类似于OpenGL的API用于替代交互式三维图形处理中基于rasterization的实现方法。一些光线跟踪硬件,如斯坦福大学开发的实验性的光线处理单元,都是设计成加速光线跟踪处理中那些需要大量计算的操作。计算机图形学中的光线跟踪的名称与原理源自于二十世纪最初十年就已经开始出贵州大学课程论文现的光学镜头设计中的古老技术。几何光线跟踪用于描述光线通过镜头系统或者光学仪器时的传输特性,并建立系统的成像属性模型。这用于建造前优化光学仪器的设计,例如减少色像差或者其它的光学像差。光线跟踪也用于计算光学系统中的光程差,光程差用于计算光学波前,而光学波前用于计算系统的衍射作用,例如点扩展函数、调制传递函数

14、以及Strehlratio。光线跟踪不仅用于摄影领域的镜头设计,也可以用于微波设计甚至是无线电系统这样的较长波长应用,也可以用于紫外线或者X射线光学这样的较短波长领域。计算机图形学与光学设计领域所用的光线跟踪的基本原理都是类似的,但是光学设计所用的技术通常更加严格,并且能够更加正确地反映光线行为。尤其是光的色散、衍射效应以及光学镀膜的特性在光学镜头设计中都是非常重要的,但是在计算机图形学领域就没有那么重要了。在计算机出现以前,光线跟踪需要使用三角以及对数表手工计算,许多传统摄影镜头的光学公式都是许多人共同完成优化的,每个人只能处理其中一小部分的计算工作。这些计算可以在如来自于LambdaRes

15、earch的OSLO或者TracePro、Code-V或者Zemax这些光学设计软件上完成。一个简单的光线跟踪版本是光线传递矩阵分析,它通常用于激光光学谐振腔的设计。贵州大学课程论文第三章光线追踪的未来发展趋势实时渲染视频级别的计算机三维图形是计算图形领域的终极目标,与现在普遍使用的光栅化渲染技术相比,光线追踪普遍被视为视觉技术的未来方向,可带来近乎真实的真正电影级图形和光影物理效果,光线追踪算法是达到这个目标的圣杯,经过几十年的努力,终于要接近这个理想了。3.1 光线追踪VS光栅化光线追踪VS光栅化画质谁更精美?由于光线追踪算法和现实世界中的物理规则几乎一样,所以在构建精美的3D场景的时候,

16、就有了得天独厚的优势。在画面质量上,光栅化在光线追踪算法面前几乎没有还手之力。光栅化技术要实现媲美光线追踪算法一样的真实场景反射、折射效果,对开发者而言简直是噩梦。在当今大部分游戏中,实现环境光反射效果都使用了EnvironmentMap坏境贴图)技术。这种技术可以比较好地欺骗玩家的眼睛,特别是实现远处细小物体的反射效果,但当我们靠近3D物体仔细观察的时候,环境贴图就会露出马脚。环境贴图效果实际上只能对一张静态图片进行处理,在你仔细观察的时候,就会发现环境贴图里面的景物不过是开发者之前预设的障眼法,无法根据实时状况发生变化。在大部分赛车游戏中为了实现近距离车身的反光而不穿帮,大多使用了动态立方

17、贴图(DynamicCubeMap)技术。立方贴图技术允许开发者将场景视点和玩家观察角度保持一致,然后再重新渲染画面,把渲染结果保存下来供渲染使用。立方贴图虽然看上去不容易穿帮,但仔细观察你就会发现问题。自然界中的光线总是会存在不断的相互反射。你千万别以为我们在吹毛求疵,事实上要实现图中如此逼真的反射效果已经需要巨大的运算量,通过立方贴图实现的反射,往往需要重复渲染多次。而在渲染过程中,立方贴图也不像传统3D画面那样重新计算视点和坐标。为了获得理想的运行速度,日常游戏中大多只在近处使用立方贴图,为了避免大幅降低显卡填充率,在使用立方贴图的时候很多游戏开发者还故意使用了低分辨率渲染。至于游戏中的

18、其他反射,由于显卡性能限制,大多只是用简单的环境贴图实现。如果用光线追踪来实现各种反射效果会怎么样?根据我们上面介绍的光线追踪特性,这个技术可以用算法控制整个3D场景中的所有反射效果。在光线追踪计算中,所贵州大学课程论文有的反射效果都能被计算在内,就连漫反射和多次反射都不会漏掉。3.2 显卡何时才能实时光线追踪光线追踪有着如此明显的优势,而且在实现方法上和现在的光栅化算法也没任何“不共戴天”之仇,那为什么我们至今仍然没有看到任何显卡能提供实时光线追踪渲染呢?答案首先是光线追踪惊人的运算量,即便光线追踪是并行度相当高的运算,在多内核时代计算机并行性能和内核数量几乎呈线性增长关系,但要实现每秒30

19、帧的实时光线追踪计算,依然有很远的路要走。根据Intel和Daniel的说法,要用光线追踪渲染出达到现代游戏的画面质量,同时跑出可流畅运行的帧数,每秒需要计算大概10亿束光线。这个数字包括每帧每像素需要大概30束不同的光线,分别用来计算着色、光照跟其它各种特效,按照这个公式,在1024X768这样的入门级分辨率下,一共有786432个像素,乘以每像素30束光线以及每秒60帧,我们就需要每秒能运算141.5亿束光线的硬件,而Intel双路4内核处理器每秒也不过只能处理830万束光线。虽然光线追踪算法有着极高的并行度,但光线追踪中主光线仅仅是为了判别多边形是否可见而存在,和传统光栅化的Z-Buff

20、er计算方式一样,对画质不会有任何贡献。更要命的是,光线追踪的辅助光线每一条都没有任何相关性,这意味着包括各种缓存技术在内的“投机取巧”方式都没有用武之地,计算光线追踪辅助光线的所有的计算都将直接读取内存一这对于内存延迟和带宽来说都是惊人的考验。在过去的几年间,显卡显存延迟的降低小得可怜。根据某显卡厂商的统计预期,在2004年显卡内存延迟大约在40ns左右,到了2014年显卡延迟也不过减少到了23ns一在10年间节省出来的17ns显然无法满足光线追踪技术的需要。而在这10年里,显卡的晶体管数量会从2.2亿只增加到22.37亿只。既然传统的显卡架构和发展趋势,完全无法满足光线追踪算法的需求,那推倒重来会怎么样?2003年德国SaarLand大学就拿出了业

温馨提示

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

评论

0/150

提交评论