课程论文课程论文题目:光线追踪的应用及未来发展学院:人民武装学院专业:计算机科学与技术班级:物联人151学号: 1500860346学生姓名:谭朝艳指导教师:宁阳2016 年6 月3 日目录摘要 (II)第一章绪论 (1)1.1 光线追踪的定义 (1)1.2 光线追踪的原理 (1)1.2.1 自然现象 (1)1.2.2 光线追踪的原理 (1)1.3 光线追踪的特点 (3)1.3.1 光线追踪的优点 (3)1.3.2 光线追踪的缺点 (3)第二章光线追踪的应用 (4)2.1 光线追踪在图形渲染中的应用 (4)2.2 光线追踪在物理学中的应用 (4)2.3 光线追踪在实际应用 (4)2.4 实时跟踪 (4)第三章光线追踪的未来发展趋势 (6)3.1 光线追踪VS光栅化 (6)3.2 显卡何时才能实时光线追踪 (7)3.3 光线追踪的未来发展 (8)光线追踪的应用及未来发展摘要光线跟踪是一种真实地显示物体的方法,该方法由Appe在1968年提出。
光线跟踪方法沿着到达视点的光线的反方向跟踪,经过屏幕上每一个象素,找出与视线相交的物体表面点P0,并继续跟踪,找出影响P0点光强的所有光源,从而算出P0点上精确的光线强度,在材质编辑中经常用来表现镜面效果。
光线跟踪或称光迹追踪是计算机图形学的核心算法之一。
在算法中,光线从光源被抛射出来,当他们经过物体表面的时候,对他们应用种种符合物理光学定律的变换。
最终,光线进入虚拟的摄像机底片中,图片被生成出来。
关键字:光线跟踪(Ray tracing),真实感第一章绪论1.1 光线追踪的定义光线跟踪(Ray tracing),又称为光迹追踪或光线追迹,来自于几何光学的一项通用技术,它通过跟踪与光学表面发生交互作用的光线从而得到光线经过路径的模型。
它用于光学系统设计,如照相机镜头、显微镜、望远镜以及双目镜等。
这个术语也用于表示三维计算机图形学中的特殊渲染算法,跟踪从眼睛发出的光线而不是光源发出的光线,通过这样一项技术生成编排好的场景的数学模型显现出来。
这样得到的结果类似于光线投射与扫描线渲染方法的结果,但是这种方法有更好的光学效果,例如对于反射与折射有更准确的模拟效果,并且效率非常高,所以当追求这样高质量结果时候经常使用这种方法。
1.2 光线追踪的原理1.2.1 自然现象在自然界中,光源发出的光线向前传播,最后到达一个妨碍它继续传播的物体表面,我们可以将“光线”看作在同样的路径传输的光子流,在完全真空中,这条光线将是一条直线。
但是在现实中,在光路上会受到三个因素的影响:吸收、反射与折射。
物体表面可能在一个或者多个方向反射全部或者部分光线,它也可能吸收部分光线,使得反射或者折射的光线强度减弱。
如果物体表面是透明的或者半透明的,那么它就会将一部分光线按照不同的方向折射到物体内部,同时吸收部分或者全部光谱或者改变光线的颜色。
吸收、反射以及折射的光线都来自于入射光线,而不会超出入射光线的强度。
例如,一个物体表面不可能反射66% 的输入光线,然後再折射50% 的输入光线,因为这二者相加将会达到 116%。
这样,反射或者折射的光线可以到达其它的物体表面,同样,吸收、反射、折射的光线重新根据入射光线进行计算。
其中一部分光线通过这样的途径传播到我们的眼睛,我们就能够看到最终的渲染图像及场景。
1.2.2 光线追踪的原理精美的CG效果图,与真实世界毫无区别的电影视觉效果,相信大家对这些并不陌生。
而大家在游戏中对水面之类的场景并不陌生,不过它所生成的画面效果,好像永远都不那么真实。
即使人们尽再大的努力,它的画面始终还是动画,和人们心目中的“电影级别的画质”总是差那么一点。
这是因为,我们目前的游戏,无一例外都在使用光栅化算法。
而在这些电影中,则采用的是光线追踪算法。
在3DSMax、Maya、SoftimageXSI等软件中,也都无一例外地采用了这一算法。
光线追踪技术是由几何光学通用技术衍生而来。
它通过追踪光线与物体表面发生的交互作用,得到光线经过路径的模型。
简单地说,3D技术里的光线追踪算法,就是先假设屏幕内的世界是真实的,显示器是个透明的玻璃,只要找到屏幕内能透过人眼的光线,加以追踪就能构建出完整的3D画面。
说到光线追踪,就不得不提光栅化。
光栅化是指把景物模型的数学描述及其色彩信息转换至计算机屏幕上像素的过程。
使用光栅化,我们可以将几何图形转化成屏幕上的像素。
Direct3D使用扫描线的渲染来产生像素。
当顶点处理结束之后,所有的图元将被转化到屏幕空间,在屏幕空间的单位就是像素。
点,线,三角形通过一组光栅规则被转化成像素。
光栅规则定义了一套统一的法则来产生像素。
光栅得到的像素一般会携带深度值,一个RGB Adiffuse颜色,一个RGB specular 颜色,一个雾化系数和一组或者多组纹理坐标。
这些值都会被传给流水线的下一个阶段像素的处理,然后注入到渲染目标。
由于实时3D渲染程序要求对用户的即时操作做出迅速反应,因此通常要求每秒至少20帧以上的渲染速率,这也使得高效率的“光栅化”渲染技术成为当今最受青睐的3D即时成像技术。
但是光栅化的缺点也很明显,那就是无法计算真实的光线,导致很多地方失真。
光线追踪算法分为两种:正向追踪算法和反向追踪算法。
其中,正向追踪算法是大自然的光线追踪方式,即由光源发出的光经环境景物间的多次反射、透射后投射到景物表面,最终进入人眼。
反向追踪算法正好相反,它是从观察者的角度出发,只追踪那些观察者所能看见的表面投射光。
就目前而言,所有3D制作软件的光线追踪算法都是采用反向追踪法,原因是这种算法能够最大程度地节省计算机的系统资源,而且不会导致渲染质量的下降。
在现实世界中射到物体表面上通常有三种情况:折射,反射,吸收。
光线在经过反射到不同的地方,被选择性吸收,从而光谱发生改变,再多次反射与折射,最终进入我们自己的眼睛。
而光线追踪技术要做的就是模拟这一过程。
1.3 光线追踪的特点1.3.1 光线追踪的优点光线跟踪的流行来源于它比其它渲染方法如扫描线渲染或者光线投射更加能够现实地模拟光线,象反射和阴影这样一些对于其它的算法来说都很难实现的效果,却是光线跟踪算法的一种自然结果。
光线跟踪易于实现并且视觉效果很好,所以它通常是图形编程中首次尝试的领域。
1.3.2 光线追踪的缺点光线跟踪的一个最大的缺点就是性能,扫描线算法以及其它算法利用了数据的一致性从而在像素之间共享计算,但是光线跟踪通常是将每条光线当作独立的光线,每次都要重新计算。
但是,这种独立的做法也有一些其它的优点,例如可以使用更多的光线以抗混叠现象,并且在需要的时候可以提高图像质量。
尽管它正确地处理了相互反射的现象以及折射等光学效果,但是传统的光线跟踪并不一定是真实效果图像,只有在非常紧似或者完全实现渲染方程的时候才能实现真正的真实效果图像。
由于渲染方程描述了每个光束的物理效果,所以实现渲染方程可以得到真正的真实效果,但是,考虑到所需要的计算资源,这通常是无法实现的。
于是,所有可以实现的渲染模型都必须是渲染方程的近似,而光线跟踪就不一定是最为可行的方法。
包括光子映射在内的一些方法,都是依据光线跟踪实现一部分算法,但是可以得到更好的效果。
第二章光线追踪的应用2.1 光线追踪在图形渲染中的应用将光线追踪算法应用于图形渲染最初是由Arthur Appel于1968年提出,那时还叫ray casting。
1979年Turner Whitted带来了新的研究突破:递归光线追踪算法《Recursive RayTracing Algorithm》。
1984年,Carpenter等人发表了一篇分布式光线追踪的论文《Distributed RayTracing》,影响甚广。
发展到今天,大多数的照片级渲染系统都是基于光线追踪算法的。
基本的光线追踪算法并不难,相信大部分计算机图形学的同学都写过的,难的是如何优化提高效率。
2.2 光线追踪在物理学中的应用在物理学中,光线追迹可以用来计算光束在介质中传播的情况。
在介质中传播时,光束可能会被介质吸收,改变传播方向或者射出介质表面等。
我们通过计算理想化的窄光束(光线)通过介质中的情形来解决这种复杂的情况。
2.3 光线追踪在实际应用在实际应用中,可以将各种电磁波或者微小粒子看成理想化的窄波束(即光线),基于这种假设,人们利用光线追迹来计算光线在介质中传播的情况。
光线追迹方法首先计算一条光线在被介质吸收,或者改变方向前,光线在介质中传播的距离,方向以及到达的新位置,然后从这个新的位置产生出一条新的光线,使用同样的处理方法,最终计算出一个完整的光线在介质中传播的路径。
2.4 实时跟踪人们已经进行了许多努力,改进如计算机与视频游戏这些交互式三维图形应用程序中的实时光线跟踪速度。
OpenRT 项目包含一个高度优化的光线跟踪软件内核,并且提供了一套类似于OpenGL 的 API 用于替代交互式三维图形处理中基于rasterization 的实现方法。
一些光线跟踪硬件,如斯坦福大学开发的实验性的光线处理单元,都是设计成加速光线跟踪处理中那些需要大量计算的操作。
计算机图形学中的光线跟踪的名称与原理源自于二十世纪最初十年就已经开始出现的光学镜头设计中的古老技术。
几何光线跟踪用于描述光线通过镜头系统或者光学仪器时的传输特性,并建立系统的成像属性模型。
这用于建造前优化光学仪器的设计,例如减少色像差或者其它的光学像差。
光线跟踪也用于计算光学系统中的光程差,光程差用于计算光学波前,而光学波前用于计算系统的衍射作用,例如点扩展函数、调制传递函数以及 Strehl ratio。
光线跟踪不仅用于摄影领域的镜头设计,也可以用于微波设计甚至是无线电系统这样的较长波长应用,也可以用于紫外线或者X射线光学这样的较短波长领域。
计算机图形学与光学设计领域所用的光线跟踪的基本原理都是类似的,但是光学设计所用的技术通常更加严格,并且能够更加正确地反映光线行为。
尤其是光的色散、衍射效应以及光学镀膜的特性在光学镜头设计中都是非常重要的,但是在计算机图形学领域就没有那么重要了。
在计算机出现以前,光线跟踪需要使用三角以及对数表手工计算,许多传统摄影镜头的光学公式都是许多人共同完成优化的,每个人只能处理其中一小部分的计算工作。
这些计算可以在如来自于 Lambda Research 的 OSLO 或者 TracePro、Code-V 或者Zemax 这些光学设计软件上完成。
一个简单的光线跟踪版本是光线传递矩阵分析,它通常用于激光光学谐振腔的设计。
第三章光线追踪的未来发展趋势实时渲染视频级别的计算机三维图形是计算图形领域的终极目标,与现在普遍使用的光栅化渲染技术相比,光线追踪普遍被视为视觉技术的未来方向,可带来近乎真实的真正电影级图形和光影物理效果,光线追踪算法是达到这个目标的圣杯,经过几十年的努力,终于要接近这个理想了。