【惟学无际】是UWA在2017年推出的全新研究型专栏,将为大家推荐极具实际价值的学术论文,并梳理其中的研究背景、实现原理和执行方法等。内容专注于游戏、VR和AR相关的计算机图形学领域。正所谓问渠哪得清如许,为有源头活水来 ,希望大家在研发的过程中不仅知其然,还能知其所以然。
目前,在游戏引擎中用于照亮物体的光源非常丰富。其中,比较常用的有:平行方向光、点光源、聚光灯以及体积光等,但它们都是对真实光源的近似,并不能很好地模拟真实世界中的复杂光照情况。为了增加光照效果的真实感,我们常用的一种光照计算方法是基于图像的光照计算(Image-based Lighting)。例如:天空盒(Sky Box)作为环境光贴图,或者是用Reflection Probe作为反射贴图等。而在最近比较流行的基于物理的渲染管线(Physically-based Rendering)中,IBL成为了必不可少的一部分。
今天我们介绍的一篇论文是Paul Debevec在1998年Siggraph会议上发表的一篇文章。这篇论文主要解决的问题是:如何利用HDR(High Dynamic Range)图以及全局光照明技术,将虚拟的物体融合到真实照片中。它实现的效果类似于今天我们常说的AR(Augmented Reality)技术。在渲染虚拟物体的时候,文章作者采用的方法是用HDR图作为环境光贴图来计算光照结果。该方法是最早使用IBL进行光照计算的方法之一。我们先来看看他的渲染结果,如下图所示。
其中,左图是真实拍摄的图片,右边是将虚拟物体合成到真实拍摄图片的结果。可以看到,虚拟物体中的金属材质对周围环境的反射以及高光,都能和真实物体形成一致的光照结果。
论文将场景中的物体分成三类分别进行处理。下图是这篇论文的算法框架图。
这三类分别是:远处的场景、近处的局部场景、以及虚拟场景。在渲染远处场景的时候,论文作者用真实拍摄的图片以及简单的几何来渲染,其光照信息全部来自拍摄的图像。在渲染近处局部场景的时候,由于需要模拟真实场景对虚拟场景的影响,所以论文作者还对物体的材质进行了近似估计。最后,在渲染虚拟物体的时候,利用环境光照的入射光来计算光照。其算法过程示意图如下图所示。
首先,论文作者对真实场景进行拍摄。然后,利用反射探针对场景中的环境光进行获取。在获取环境光贴图时,作者采用的是HDR的表示方式。接着,利用获取的环境光照贴图对远处场景进行建模。最后,用全局光照软件渲染虚拟物体以及与虚拟物体有光照影响的近处局部物体,并融合到拍摄的真实图像中。接下来我们将对论文的算法进行详细介绍。
一、用真实的环境光照亮物体
文章作者采用了HDR图作为环境光照贴图。为了说明用HDR图比普通的LDR图更能表现实际光照环境,论文作者分别采用HDR和LDR环境贴图进行渲染,并对两者结果进行了比较,结果如下图所示。
第一排是用HDR图片渲染的结果,第二排是用LDR渲染结果。其中,右边三列结果中,LDR的渲染结果在计算时,作者将光照强度增大了6倍,从而使得LDR的入射光的强度能够与HDR的一致。但是从渲染结果中可以看到,采用HDR环境光图渲染的结果能够表现出更多的细节,而LDR的渲染结果显得比较平坦。因此,作者在其接下来的实验中全部采用了HDR图片作为环境光照入射光。
二、无限远场景
文章作者提出了一种基于光照的建模方法(Light Based Model)来对远处的物体进行建模。这种方法其实类似于我们今天常用的天空盒。它的做法是将HDR光照图映射到一个方盒上,作为远处的背景,如下图所示。
这张图不仅用于显示无限远处的场景,并且用于对虚拟物体渲染的入射光。
三、近处局部场景
为了模拟近处局部真实场景与虚拟场景之间的光照交互,不仅需要对近处局部场景进行几何建模,而且需要获取其材质信息。虽然可以采用材质获取工具对真实场景材质进行测量,但是文章作者采用了迭代的方法来对其进行估计。该方法的过程如下:
1. 首先对局部真实场景的几何进行建模,然后对其材质进行估计,如:diffuse,diffuse加specular,或者是任意的BRDF模型,甚至是随空间变化的;
2. 对估计的材质模型选择初始参数;
3. 用全局光照算法对局部场景进行渲染;
4. 采用不同的视角,比较渲染结果和真实拍摄结果;
5. 如果渲染结果与真实拍摄结果不一致,则调整模型参数,并返回第3步继续迭代。
四、近处的虚拟场景
在渲染近处的虚拟场景时,需要将拍摄的多张环境光贴图合成一张完整的贴图作为入射环境光。因为,当采用Light Probe采集环境光照时,处于Probe球背面的场景无法被采集到。同时,正对着相机方向的场景由于球面边缘反射的拉伸,采样率低,容易出现瑕疵。因此,论文作者在多个不同的角度对Probe球进行拍摄,然后将多张拍摄的结果进行合成,最后形成一张完整的贴图。下图展示了论文作者采集的三张环境光贴图以及对虚拟场景的渲染结果。
在上方的图片中,上图是利用Light Probe拍摄的三张贴图,下图是用合成的环境光贴图渲染的虚拟场景。在渲染时,论文作者采用了全局光照渲染引擎Radiance进行全局光照渲染。与我们目前在游戏引擎中采用的实时算法不同的是,Radiance并不是实时计算完成的。由于当时的硬件条件限制,支持离线渲染。
五、融合结果
论文作者将远处场景、近处场景、以及虚拟场景进行融合,得出最终结果,如下图所示。
其中,图(a)是真实拍摄的结果。图(b)显示了用Light Probe拍摄环境光贴图的设置。图(c)至图(f)显示了采用迭代对局部场景(地板)进行估计的过程。为了表现出虚拟物体和地面之间的阴影遮挡以及多次反射,论文作者用一张纯diffuse的纸板对地面进行几何近似,并通过第三节中的迭代算法对地面的材质参数进行估计。图(g)显示了将虚拟物体融合到真实场景的结果。
六、总结
这篇论文提出了一种利用真实拍摄光照贴图对虚拟物体进行渲染并融合的算法。该算法可以很好地将虚拟物体融合到真实拍摄的场景中。其主要原因是,渲染虚拟物体的环境光照贴图是从真实拍摄的HDR图片中获取,所以虚拟物体的渲染结果的光照能够与真实拍摄场景一致。其次是论文作者在渲染时,对与虚拟物体有相互影响的真实场景进行几何和材质的估计。然后,根据估计结果进行全局光照的渲染。最终能够捕获真实场景与虚拟物体之间相互反射以及阴影遮挡的效果。
七、论文信息
作者信息:
Paul Debevec,南加州大学兼职研究员,GoogleVR项目主要成员,著名计算机视觉、图形学学者。他的研究成果包括,利用Light Stage获取BSDF,如人脸的反射模型,以及将高动态图用于基于图像的建模与渲染。他的研究成果被用于许多著名电影渲染,包括黑客帝国、蜘蛛侠2、金刚、超人归来、蜘蛛侠3、以及阿凡达等。