基于屏幕空间的Light Probe技术文献综述

 2022-11-09 11:11
{title}{title}

文献综述:

一、研究背景

全局光照(Global Illumination,简称GI)通常指的是三维计算机图形学中用于对三维场景添加真实光照的一系列理论以及算法。这种算法不仅考虑了来自光源的光线(即直接光照),而且还考虑到来自同一光源的光在场景中其他表面反射后的情况(即间接光照)。理论上,反射、折射和阴影等都是GI中的重要因素,因为当这些因素通过全局光照算法进行模拟之后,场景中对象的渲染将不仅仅由直接光照影响,对象之间也会因为光的反射和折射等而互相影响渲染结果。其中,间接漫反射是很重要的一种模拟。

使用全局光照算法渲染的图像往往比直接使用光照算法的图像更加逼真。但是,这样的图像在计算上也更加昂贵,需要消耗更多的资源,从而导致生成的速度也要慢得多。一个常用的方法是计算场景中的全局光照并存储与几何相关的信息。存储的数据可以被用来从场景的不同角度生成图像,而不需要通过多次的昂贵的光照计算来完成图像的渲染。Radiosity、Ray Tracing、Beam Tracing或者基于图像的光照都是GI算法的例子,这些算法中可能会一起使用,产生的结果不快,但是会很准确[4]。

全局光照分为实时全局光照和离线全局光照,它们的区别主要在于能否处理动态对象的照明,而我们的方法就是在实时全局光照中进行研究的。我们的目标主要是能够在尽可能减少资源消耗的情况下,通过改善和设计,得出能够准确、快速渲染出真实物理光照场景的全局光照算法。

二、研究现状

GI作为一系列模拟光的互动和反弹等复杂行为的算法,想要精确地仿真全局光照是非常具有挑战性的,同时还需要付出较高的代价。所以目前流行的一些算法,并不是直接执行实时运算,而是会先进行一定程度的预先处理计算。

例如Unreal Engine 4就支持对间接光的预先处理,UE4中的Lightmass[1]可以创建光照贴图,该光照贴图具有像区域阴影和间接漫反射这样的复杂光照交互,能够预计算一部分静态和固定的光照效果。虽然Lightmass预计算处理可以提前生成间接光照的光照贴图,但这仅仅只是对于静态对象来说,而对于动态对象也需要一种接收间接光照的方法,这也是实时渲染技术和离线渲染技术的一个很重要的差别——即对动态对象的实时光照计算问题。这个问题UE4通过Indirect Lighting Cache[2]解决,它在构建光照时使用Lightmass生成的样本来计算动态对象在运行时的间接光照。其工作原理从高层次的角度来看就是:首先Lightmass把光照样本放置到场景中的各个位置,并在光照构建过程中计算它们的间接光照;当要渲染一个动态对象时,Indirect Lighting Cache会检测对象是否已经有了可用光照,若没有任何光照可用,Indirect Lighting Cache会插值预计算的光照样本来形成可用光照。

UE4的处理属于当前比较先进的全局光照处理技术。目前较为先进的游戏全局光照技术主要有如下几个:Fast Filtering of Reflection Probes[16] 、Real-Tiem Global Illumination using Precomputed Light Field Probes[17] 、lightmap(Unity Engine,Unreal Engine)、irradiance volume(Call of Duty,Far Cry 3)、light propagation volume(Unreal Engine,Just Cause)、voxel cone tracing等等。其中irradiance volume[5][6]的全局光照技术就能够很好地处理动态对象的光照问题。

它是一种离散描述空间中光照信息的方案,它将三维空间合理划分为了一个又一个的小区块,然后以一定的间距放置了许多用于记录光照信息(主要就是irradiance、radiance等等)的小球体,通过这些记录的光照信息,我们能够快速计算模拟出真实的光照效果。其中十分重要的一步就是光照信息的记录存储,由于我们所需要的光照信息往往都是一个复杂的积分过程,直接计算的效率将会十分低下,如果对所有含有光照信息的cubemap直接进行存储,那将会消耗巨大的空间资源,整个全局光照算法的速度也会大幅度减慢,此时就要采用Spherical Harmonic[12][13]来压缩光照信息进行存储。Spherical Harmonic经过预处理并存储相应信息之后,可以产生高质量的渲染以及阴影效果。Spherical Harmonic需要使用新的光照方程来代替通常的光照方程,并将该方程中的相关信息使用Spherical Harmonic基函数投影到频度空间,并用系数进行表示和存储。然后在渲染过程中结合Spherical Harmonic变换的特性以及存储系数来对原始的光照方程进行还原并对场景进行着色。其基本过程为:连续的光照方程 -gt; 离散的光照方程 -gt; 分解后的光照方程 -gt; 球谐变换得到球谐系数 -gt; 利用球谐系数还原光照方程。所以将光照信息投影转化为Spherical Harmonic系数来存储,不仅能够节省空间,而且也十分的高效。因为SH的投影速度要远远高于直接计算光照信息的积分过程。我们只需要其系数即可对一个空间上的函数进行投影和还原。Spherical Harmonic对光照信息的存储已经应用于市面上的许多引擎,例如在UE4的最新版本中,其Indirect Lighting Cache已经被新的技术所取代——Volumetric Lightmaps[3],其对光照信息的存储也是使用三阶的Spherical Harmonic来完成的。由此可见Spherical Harmonic是目前较为高效的光照信息存储方式。另外,场景的空间划分也是一个值得探讨的问题,如果只是简单地对场景进行规格化的划分,当场景十分巨大且发杂的时候,由于划分层次的增多,资源的消耗将会变得十分巨大。这时候就需要一个好的自适应方案来对适当的空间块进行进一步的空间划分。空间划分的自适应方案有许多,比如brute force method[5]先进行规格化划分,之后根据每个块中的信息来确定哪些块是多余的,然后进行删除;或者利用Harmonic Mean of Scene Depth[5]来判断场景中哪些区域有着较多的对象物体,对这些区域进行进一步地划分。但是目前还没有一个完美的方法来解决这个问题,依然有待研究。

综上可以看出,目前主流的全局光照技术大多都是通过预计算处理静态场景的光照信息,然后利用这些光照信息来处理动态对象或者新增添的静态对象的着色问题。这样就可以实时地渲染出真实的光照场景。但是预计算处理目前来说依然不是十分的完美,其效率依然有待提升。而这里就可以引出一个问题:预计算处理是不是提高全局光照效率的最佳方法?是否存在某种方法可以取代预计算处理过程?所以本次课题的研究目的主要是实现一种基于屏幕空间的Light probe方法,利用GBuffer, Radiance Buffer等一些中间结果来计算对light probe的贡献,从而能够支持多次反射。最终拟得到一种更加完善的用于计算实时全局光照的方法。

参考文献:

[1] Lightmass Global Illumination,Unreal Engine 4, https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/Lightmass/index.html

[2] Indirect Lighting Cache,Unreal Engine 4, https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/IndirectLightingCache/index.html

[3] Volumetric Lightmaps,Unreal Engine 4,

https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/VolumetricLightmaps/index.html

[4]Global Illumination,wikipedia, https://en.wikipedia.org/wiki/Global_illumination

[5]Irradiance Volume for Games,Natalya Tatarchuk, 3D Application Research Group ATI Research, Inc.

[6] The Irradiance Volume,Greger, G., Shirley, P., Hubbard, P., and Greenberg, D., IEEE Computer Graphics amp; Applications, 18(2):32-43, 1998.

[7] Radiosityand Realistic Image Synthesis,Cohen M., Wallace, Academic Press Professional, Cambridge, 1993.

[8] Analytic Methods for Simulated Light Transport,Arvo, J., PhD thesis, Yale University, December 1995.

[9] “Diffuse Cube Mapping”, Brennan, C., Direct3D ShaderX: Vertex and Pixel Shader Tips and Tricks, Wolfgang Engel, ed., Wordware Publishing, 2002, pp. 287-289.

[10] Rendering Synthetic Objects into Real Scenes: Bridging Traditional and Image-Based Graphics with Global Illumination and High Dynamic Range Photography, Debevec, P.E., SIGGRAPH 1998.

[11] An Efficient Representation for Irradiance Environment Maps, Ramamoorthi, R., and Hanrahan, P., SIGGRAPH 2001, 497-500.

[12] Spherical Harmonic Lighting: The Gritty Details, Green, R., http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html2003.

[13] Spherical Harmonic Gradients for Mid-Range Illumination, Tomas Annen, T. , Kautz, J., Durand, F., and Seidel, H.-P., Proceedings of Eurographics Symposium on Rendering, June 2004

[14] Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequency Lighting Environments, Sloan, P.-P., Kautz, J., Snyder, J., SIGGRAPH 2002.

[15] Physically Based Rendering, Pharr, M., Humphreys, G., Morgan Kaufmann, San Francisco, 2004.

[16]Fast Filtering of Reflection Probes,Josiah Manson and Peter-Pike Sloan,Activision.

[17]Real-Tiem Global Illumination using Precomputed Light Field Probes,Morgan McGuire,Mike Mara,Derek Nowrouzezahrai,David Luebke.

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。