您好, 访客   登录/注册

基于光线追踪的实时渲染技术分析

来源:用户上传      作者:

  摘要:本文探讨分析了光栅化渲染技术,以及光线追踪渲染技术,研究了实时光线追踪的实现基础。
  关键词:光线追踪;实时渲染;技术分析
  中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2019)04-0042-02
  经历了多年发展,直到本世纪初,以影视CG为典型代表的离线渲染(非实时渲染)技术终于能达到真假难辨的程度,而一脉相承的实时渲染在应用上距离这一目标无疑还有所欠缺。实时光线追踪,可能就是这欠缺中的关键一环。将当前的实时渲染技术与离线渲染技术相比较,二者在模型细节、纹理效果、材质表现和基本光影等方面所呈现出的视觉效果的差异已经不再明显。得益于硬件性能的不断提高,越来越多的曾经只能用于离线渲染的技术和方法也已经应用于实时渲染以获得更加逼真的显示效果。
  1 光栅化渲染技术
  到实际渲染中理解光栅化的过程:虚拟场景中的每一个模型都是由构成它的许多三角面组成的,若要将模型中的一个三角面显示在屏幕上,首先在先判定三角面的三个顶点在视场中的位置并将其坐标变换对应到屏幕坐标,然后将三个顶点涵盖的区域(像素)进行填充。由此可见,光栅化方法能够将复杂的场景内容拆分成为一个个由若干像素组成的相对独立的计算单元。通过这种方式可以充分利用GPU的多线程渲染流水线,即通过在GPU上并行完成大量的简单计算实现快速渲染的目的。
  光栅化技术的这种拆分计算导致这以种方法处理一些全局效果时遇到很大的困难。影响场景的全局效果主要是场景中光影的交互效果,比如全局光照、阴影、反射、折射等。因为这些效果都不是由单一对象构成的,比如阴影就属于光源和遮挡物体作用在被遮挡物体上形成的,被光栅化拆分到不同计算单元中的这些元素或物体部分就很难再去實现交互影响的计算。前人为了克服其短板用其他手段模拟阴影等效果,取得了很多成果却也导致渲染复杂度的攀升。光栅化的渲染方法应用至今,为了渲染出更真实的画面,其复杂程度早已今非昔比,相当多的渲染技术甚至需要脱离常人认知层次专业级的数学功底才能理解,但其在实现以假乱真的视觉效果上还是差强人意[1]。
  2 光线追踪渲染技术
  光栅化渲染方式的最大弊端就是不能模拟现实中光线的传播规律,导致在模拟光影效果方面的严重不足。正是为了克服光栅化渲染方式的这一缺憾,以真实光线传播规律为基础的光线追踪渲染方法被越来越多的使用起来[2]。
  2.1 反向光线追踪
  最典型的光线追踪渲染应用方式,并不是采用沿着光线传播的方向从光源开始模拟,而是根据光线直线传播的可回溯性特质,从观察者角度“穿透”屏幕发射“光线”。当发射的“光线”触碰到场景中的第一个物体,那么这个物体被“光线”碰触到的点就是未被遮挡的,而后“光线”遵从光学传播原理经过一系列的反射、折射若能到达一处光源,那么这条光线碰触的部分就是被此光源“照亮”的,否则就属于阴影的一部分。而后渲染器就能以此为根据为这束“光线”在屏幕上的对应位置(通常以像素点为单位)着色。这种反向追踪的方法避免了去计算那些在正向光线追踪(从光源追踪光线)时,最终不会到达观察者(即不需要显示在屏幕上)的光线,节省了大量不必要的计算内容。
  2.2 蒙特卡洛光线追踪
  典型的反向光线追踪方法,虽然利用了物理原理构建了理论方案,但相对于现实中的复杂情况,这一模拟方案就显得有些简单粗暴了。它主要存在两个方面问题:(1)仅能处理镜面反射、规则投射和遮挡阴影,忽略了漫反射;(2)由于模拟的光能传递属于理想表面之间的,所有基于这个方法的物体表面属性其实是单一的。
  为了改善上述问题,在反向光线追踪的基础之上,引入物体表面的漫反射属性,从概率理论出发去决定到达物体表面的光线是要进行反射、折射还是漫反射。同时为了应对引入表面属性造成的光线采样增多问题,进一步利用概率理论进行简化,用少量相对重要的光线采样来模拟积分结果。这种改进方法的具体方案有很多种形式,他们统称为蒙特卡洛光线追踪。相对于典型的反向光线追踪,蒙特卡洛光线追踪引入了更复杂的漫反射材质,这导致了需要跟踪的光线数量大幅增加,于是通过采样算法去减少需要跟踪的光线数量。现在,具有相对成熟的采样模型的蒙特卡洛光线追踪算法已经具备相当高的运行效率,一度使得光线追踪走出专业图形工作站甚至可以在家用级别的硬件上使用。
  2.3 双向光线追踪
  利用反向光线追踪可以较好地表现出反射和折射的效果,还能得到真实度很高的阴影。但是经过大量的理论分析及实践,人们知道采用这种方式还不能足以体现现实世界中绝大多数的光影效果。物体间的多重漫反射、颜色渗透、焦和柔和阴影等现象都不能在仅使用反向光线追踪方式的渲染结果中得到。另外,鉴于反向光线跟踪离散式的对待不同像素对应采样光线的跟踪计算,导致必然会有一定量的重复计算。为了提升画面效果而增加采样光线数量时,其中大幅增加的重复计算也让反向光线跟踪失去了原本简洁高效的优势。
  真正符合现实实际的正向光线追踪又被重新纳入考虑范畴。光线由光源发出,在场景中的每一次光能转化都被记录,而后只要收集这些信息就可以知道任意点上面的亮度。只要进行足够次数的光能转化计算和相应的颜色处理,就能以极高的拟真性表现出焦散、颜色渗透、柔和阴影等真实光影现象。若能在正向光线跟踪的基础上,使用反向光线跟踪的采样思想,就能一定程度的规避正向追踪庞大计算量造成的实际应用困境。这种综合运用正、反向光线追踪的技术方案,统称双向光线追踪。
  2.4 光子图
  在每一次渲染中都同时进行一次细致的正、反向光线追踪理论上能获得最接近真实的光影效果,但这是不切实际的,至少以目前计算机的运算处理能力还远远不能满足设想。于是有人提出,在场景中物体和灯光不变的情况下,可以用单次正向光线跟踪的计算结果根据观察视角的变化进行多次的、动态的反向光线跟踪渲染。这样,不仅使渲染画面具备了正向光线跟踪光影表现更真实可信的有点,还能剔除单纯反向跟踪难以避免的重复采样,极大提升了渲染效率。存储下来的这次正向光线跟踪结果,通常称之为光子图。   3 实时光线追踪的实现基础
  光栅化是早期受限于硬件局限的妥协之策,不论是从基础原理上脱离物理现实的缺憾,还是后人为了在光栅化基础上模拟实现其他光影效果使光栅技术整体呈现臃肿的现状,都导致光栅化并不适用于对虚拟场景逼真效果的要求进一步提升的未来。想要大幅缩减光线追踪的时间成本还应该主要从算法优化和硬件水平提升两个方面着手[3]。
  3.1 算法方面
  光线追踪计算中判定空间中光线与物体碰撞的计算部分(求交计算)是耗时最多的计算部分。如果不采取加速措施,求交计算将占整个光线追踪耗时的95%以上。因此,大部分算法优化都是针对求交计算试图减少其总开销,而具体实现思路又分以下三种方向。
  (1)通过快速排除与求交计算无关的物体,可以大幅减少单次光线追踪涉及的求交测试数量,有效提升单次求交运算的效率。典型方法有空间剖分技术、层次盒包围技术和方向技术。(2)通过减少单次光线的碰撞计算数量,可以大幅减少求交计算总数,有效控制计算总量。主要思路是光线经过物体反射后会丧失能量,在与光线吸收能力强的表面或多次碰撞后,光线能量降低对场景照明的贡献很少,此时就不在继续对这条光线的求交计算。这个思路需要综合考虑物体材质和光线衰减,所以若能有合适的材质设定配合效率的提升会更为直接。(3)通过概率算法基于更少的采样获取足够的渲染数据,或者用光束、光锥这类模拟实体代替光线进行计算,直接减少所需求交测试的数量。
  3.2 硬件方面
  GPU作为图像处理器,最初被设计时就是用来做实时图像渲染(光栅化)的加速的。在GPU出现之前,即便是相对容易的光栅化渲染,仍然会让当时的中央处理器CPU感到力不从心,究其原因就是任务繁杂的CPU从架构上就不适应光栅化渲染这种大批量拆分的独立计算。由于基础架构与任务内容的亲和,基于GPU的硬件加速效果十分明显。
  GPU从有限固化功能发展到可编程架构,灵活性大幅增加。同时,在浮点运算和并行计算方面具备先天优势的GPU展现了超脱于单纯光栅化三维渲染需求的能力。利用GPU进行光线追踪渲染的技术已经基本成熟。主流的离线渲染工具都先后推出了基于GPU实现光线追踪加速的最新版本。若能进一步在硬件层面上针对光线跟踪计算定制相关架构和功能,应该就能实现利用GPU实现实时光线追踪的硬件加速。2018年,NVIDIA公司已经公布了能够使用他们生产的产品级显卡在虚拟现实场景中实现实时光线追踪效果。通过官方公布的事例可以看到,开启了光线追踪之后,画面的光影效果更加逼真、丰富,减少了场景中物体在光影上的孤立,增加了场景的协调感,明显增加了整个场景的真实度。
  4 前景展望
  当前已有具备实时光线追踪渲染能力的产品级硬件问世。以反向光线追踪为主的渲染方法还有很大提升空间。这些都意味着即便这套产品是横空出世级别的新事物,还不代表实时光线追踪技术就已经发展成熟。
  光线渲染算量与显示分辨率的大小直接相关,当前迅速增加的显示器分辨率也会导致同样显示内容的渲染工作量的激增,这是实时化光线追踪渲染的新挑战。另外,在高性能PC端实现的实时化如何进一步优化,能够在越来越多的硬件平台上应用也是需要时间去发展。短期内,是硬件性能制约了相对完善的理论研究成果应用。即将到来的情况有可能是在基于光线追踪渲染设计的硬件出现后,相关理论研究突破瓶颈迎来的又一次发展期,实时光线跟踪渲染终于迎来了普及应用的曙光,由虚拟场景渲染获得的图像的拟真程度必然会因此获得明显提升。实时光线追踪的引入会极大的提升实时渲染画面的真实性,在影视和文化产业中必将带来巨大变革。
  参考文献
  [1] 张聪品,岳冬利.基于物理的分布并行光线追踪算法[J].计算机应用,2014(6):1591-1594.
  [2] 王芳,秦磊华.基于BRDF和GPU并行计算的全局光照实时渲染[J].圖学学报,2016(5):583-591.
  [3] 李敏,解鸿文,徐中外,邢宇航.基于光线跟踪和BRDF模型的红外高光反射仿真[J].激光与红外,2018(1):68-72.
转载注明来源:https://www.xzbu.com/8/view-14941197.htm