交互式,光线追踪,全局光照
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交互式全局光照使用快速光线追踪
摘要:
光栅化硬件为渲染动态场景提供了交互式的帧速率,但缺乏有效的全局光照模拟所需的光线追踪的能力。现有的以光线追踪为基础的方法能产生高渲染品质,但对于交互式光线跟踪过于缓慢。我们提出了一种新的并行全局照明算法,该算法是基于准蒙特卡洛积分的高效随机采样技术,它具有完美的尺度,最小的预处理和通信开销等优点,并受益于快速平行的光线跟踪所拍摄的光线相干组。因此,允许随意更改场景,同时可以模拟包括面光源,间接照明,镜面效果和在交互的帧速率下焦散线的阴影的全局光照。停止互动可以迅速地提供高品质的渲染。
1.介绍
全局光照有着广泛的应用。它有助于获得虚拟物体的真实感图像,例如电影生产、设计过程、汽车和飞机公司的设计以及建筑学等方面。对于交互变化的快速响应保证了设计过程的效率,此外更快的渲染技术降低了生产成本。
随着快速和廉价的光栅化硬件的发展,交互式3D 图形已成为一个主流特征。虽然通过例如多纹理、顶点程序或像素着色器可以大幅度提高真实性,但由于缺乏光线跟踪功能使得全局光照的很难达到预期效果。通常,更复杂的光照效果需要用已经存在的光照跟踪算法的预先计算,而这些算法开销非常大并且速度非常慢。很明显,这种方法仅适用于静态光照中的静态场景,因此不能适用于在高动态环境下的交互式应用的需求。
快速和有效的光线追踪的研究彻底改变了的全局光照运行的环境。即使在商用硬件上,光线跟踪在动态设置上实现了交互式的帧速率。此外,新技术允许高效、可伸缩地在计算机集群上分配计算机资源。
我们可以想象到全局光照算法将同样得益于这些发展。然而,这种快速的、分布式的光线跟踪的实现施加限制后与大多数现有的全局光照算法不兼容。
在第二部分我们将讨论快速光线追踪系统并重点讨论这些系统对全局光照算法的限制。然后在第三部分我们将讨论在这些约束下以前的工作。在第四部分找到解决问题的方法,在第五部分我们推导出在第四部分找到的方法的结果和优势以及在我们系统中的局限性。
2.快速光线追踪的限制
光线跟踪算法是计算机图形学中最古老和最基本的技术。由于跟踪一条光线开销较大,再加上需要跟踪数百万条光线,因此计算单个图像需要数分钟到数小时的时间。通过利用固有的并行性光线追踪,Muuss 和Parker等人已经成功地在超级计算机系统的共享内存上交互的执行大量的并行处理。
Wald等人表示,交互式光线跟踪同样可以在廉价的、商用的PC机上执行。他们的执行是为使用重新排序的计算、优化的交集和遍历算法,细致的布局和核心数据结构对齐方式的高级缓存的表现所设计的。这些技术为计算机提高了一个数量级以上的性能。
快速光线追踪在分布式内存环境下使用商用电脑和网络进行扩展而且效果较好。分布式计算是通过一个基于平铺的负载平衡的客户端/服务器模型来实现,通过动态重新排序的计算来隐藏网络的延迟。即使在数千万的三角形的场景中使用分布式的光线跟踪交互渲染的效果依然较好。扩展系统控制动态的环境需要考虑到实际的使用者作为交互式应用的介入。
下一步要做的明显是使用快速光线追踪引擎加快那些现有的非常依赖光线追踪的全局光照算法。然而,事实证明这并不像最初看起来那么简单,这些算法大多与如此快速的光线追踪系统的限制相抵触。
2.1性能约束
即使使用快速光线跟踪程序,全局光照系统局限于相当小的每帧光线的预算。在目标分辨率高达640 ×480 像素时,每个帧包含大约300000 像素。假设有一个16个处理器的Pc 网络和每秒500,000条
光线的处理器性能,这每秒一帧的全局光照估计仍然需要每个像素27条光线。请注意我们正在计算特别的光线和不完整的光路径。在实际中,甚至只有更少的光线可以找到,由于像阴影计算等其他的过程需求。
鉴于这种极低的采样率,我们只能关注全局光照的主要贡献,比如来自点或面光源、反射和折射,直接焦散线的直接和多反弹的间接照明。我们目前不注重开销更大效果,例如光滑物体的反射或高阶焦散线。
一种基于纯蒙特卡洛技术的方法在这样低的采样率下容易受到噪声的影响。在动态环境中,这种噪音变得更具有干扰性。这种时间假象,应当小心避免。
一种合适的算法必须发送连续的光线组以实现最佳性能,因为光线跟踪引擎的加速主要取决于有效的缓存。还有其他的开销,如双向反射分布函数的评价,样本的选择,甚至随机数的生成,都有可以成为新的瓶颈。
2.2并行与分布式计算的约束
基于价格和可用性的考虑,我们把目标网络定在廉价但又快速的标准网络组成的PC机上。与共享内存的系统相比,这种低成本的设备的通信参数相差了几个数量级;它们带宽较低且延迟程度很高。因此,所需的算法必须保持其带宽要求低,并且必须设法隐藏延迟。
虽然经典的光线跟踪并行化琐细,但是那些不自动保存的全局光照算法也一样,即使他们是基于光线跟踪的。因此所有全局光照计算也必须分解成独立的工作在多个客户机上并行运行。此外,负载平衡要求作业数目是明显大于处理器的数量,以便于动态地安排作业。
此外,该算法必须尽量避免同步跨越慢速网络,例如更新共享的数据结构,这将导致往返过程延误的开销。在这方面许多现有的全局光照算法是有很大问题的,因为他们高度依赖全局数据结构,如光子图。
理想情况下,与客户端的沟通基于管道模型,所有的非现场数据是输入工作描述的一部分,然后通过管道将结果送回到接收机。这种模式允许一个简单而有效地隐藏通信延迟。
2.3.交互约束
许多现有的算法必须在第一个结构可用之前先执行冗长的预计算。这种摊销策略不适合交互式的应用程序,用户应该获得即时反馈。自从几分之一秒内就能完成一个整体框架后,预处理必须限于每帧最多几毫秒的时间来完成。此外,它可以被摊销到仅几帧,因为它可能在动态环境的交互变化中被淘汰。但是,在静态的情况下,累积可用于提高全局光照解决方案的质量。
3.之前的工作
使用基于快速光线跟踪的交互式全局光照明技术必须同时处理前面章节里的所有约束。然而,大多数现有的全局光照技术仅仅考虑了其中的一些约束且与其它的技术相冲突。
用于近似求解辐射方程全局解的日益复杂的算法被提出了,这些算法都基于有限元方法。在漫反射的环境中,辐射度方法最先允许使用光栅化硬件进行走查交互,但它需要大量的预处理,因而它仅适用于静态场景。由大量增加的场景更新而产生的交互改变迫使全局数据结构的操作代价趋于高昂且很难被并行执行。虽然光栅化硬件支持基于有限元方法的交互式显示,但光亮和镜面效果只能被近似处理,或必须由单独的光线跟踪实现。
即时辐射支持方案不经过有限元离散化就可以实现交互式辐射。场景中的光源由拟随机行走产生的点光源来近似,光栅化硬件也用此光源进行阴影计算。虽然对环境的任意交互更改是可能的但一帧所需要的大量渲染计算把交互限制在了简单的场景中。Udeshi 和Hansen改进了此方法,并且在一个超级电脑上通过光线跟踪算法实现了之前没有的反射和折射效果。该电脑拥有多个图形管线且共享内存。的虽然他们获得了可以实现交互的帧速率,但他们的主要缺点是扩展性较差,即使在共享的内存系统中,并且缺少像焦散这样的全局照明效果,图像的质量也受限制。
路径跟踪算法虽然可以正确地处理光泽和镜面效果,但是由于场景对视点具有依赖性,因此需要对每一帧进行重新计算。经典的有限元方离散法被不那么令人讨厌的噪声取代,但随着时间的推移处理也变得比较困难。通常可以采用增加采样率的方法把噪声降至可接受水平,这将导致帧速率远离实现交互所需要帧速率。
为了有效地渲染上述基于路径跟踪方法很难实现的焦散效果,我们引入光子映射方法。这个利用直接