GaRe:面向非约束户外照片集的可重光照 3D 高斯溅射工艺简要解析
论文网址:https://arxiv.org/pdf/2507.20512
摘要
该文档的摘要(Abstract)主要介绍了一种基于3D高斯 splatting 的户外场景重新照明框架 GaRe。该框架利用内在图像分解原理,从非约束的户外照片集中精确整合阳光、天空辐射和间接照明。
与以往将每张图像的全局照明压缩为单个潜在向量的方法不同,GaRe 能够同时实现多样化的明暗处理和动态阴影效果的生成。这得益于三项关键创新:
- 一是基于残差的太阳可见性提取途径,可准确分离直接阳光效果;
- 二是带有结构一致性损失的区域监督框架,用于物理可解释且连贯的照明分解;
- 三是基于光线追踪的真实阴影模拟技术。
大量实验表明,该框架合成的新视图与最先进的重新照明解决方案相比具有竞争力的保真度,并且能产生更自然、更多样化的照明和阴影效果。
引言
计算机视觉与图形学交叉领域的一项基础任务,应用范围涵盖虚拟现实/增强现实(VR/AR)到电影视觉特效等多个领域。就是现实感重新照明
传统的基于物理的渲染(PBR)方法借助光线/路径追踪算法模拟光传输,能够实现精确的全局照明和阴影计算,但这类方法依赖详细的几何信息,在非约束户外场景中部署面临巨大挑战。与之不同,体积表示方法采用基于学习的范式,将重新照明任务重构为从捕获图像到辐射场的场景照明映射,虽灵活性更高,但计算开销大,不太适合实时应用。
近年来,3D高斯 splatting(3DGS)引入了基于显式高斯的场景表示,搭建了具有照片真实感的实时渲染,后续在重新照明方面的研究也取得了令人鼓舞的成果。然而,这些方法重要侧重于将每张图像的照明编码为单个潜在向量,仅能进行全局外观调整,限制了对户外多样化光照效果(如阳光、天空阴影及其他繁琐光照交互)的探索。而内在图像分解虽为克服这一局限献出了潜在方案,能从户外图像中分离反射率和多样化照明元素,允许独立编辑和重新组合,同时保持一致的光照和真实阴影,但无法灵活改变场景的拍摄时间或调整天气条件,否则会导致照明和阴影预测不准确。
为此,本文提出了GaRe,一种基于高斯 splatting 的户外实时重新照明框架,能够同时实现多样化的明暗处理和阴影效果生成。该框架受内在图像分解的启发,将来自非约束照片集的阳光、天空辐射和间接照明明确整合到体积高斯中。具体而言,通过对全局照明图像与仅环境光渲染图像之间的残差进行二进制聚类,提取太阳可见性图,以分离阳光效果;采用区域监督框架,联合优化每个高斯的照明特征和每张图像的明暗嵌入,将全局照明分解为物理可解释的明暗成分,并引入结构一致性损失,确保重新照明的连贯性;利用基于点的光线追踪进行可见性查询,实现真实的阴影模拟,并将光线追踪阴影烘焙到高斯局部可见性特征中,搭建单次渲染过程中照明成分和阴影的实时渲染。如图1所示,该重新照明方法能产生更自然、更多样化的照明和阴影效果。
本文的主要贡献包括:
- 提出一种新的可见性提取手段,通过对全局照明图像与仅环境光渲染图像之间的残差进行二进制聚类,精确分离直接阳光效果;
- 引入带有结构一致性损失的区域监督框架,用于物理可解释且连贯的照明分解;
- 将光线追踪整合到高斯表示中,并设计阴影烘焙过程,达成具有单次渲染效率的实时重新照明。
框架概述
Figure 2 展示了GaRe框架中照明分解的整体流程,核心是将全局照明精确分解为反射率(reflectance)和多个独立的明暗成分(shading components),并通过特定机制确保分解的物理可解释性和全局一致性。
- 具体来说,框架为每个3D高斯分配了与明暗相关的特征(f r e f , f s u n , f s k y , f i n d f^{ref}, f^{sun}, f^{sky}, f^{ind}fref,fsun,fsky,find),这些特征与每张图像的嵌入向量(ε s u n , ε s k y , ε i n d \varepsilon ^{sun}, \varepsilon ^{sky}, \varepsilon ^{ind}εsun,εsky,εind)联合解码,以估计对应的空间明暗颜色和反射率颜色(c s u n , c s k y , c i n d , c r e f c^{sun}, c^{sky}, c^{ind}, c^{ref}csun,csky,cind,cref)。
- 为增强物理可解释性,框架采用区域监督损失项(L 1 ∗ L_{1}^{*}L1∗),依据可见性掩码(V ^ , M s k y , M i n d \hat{V}, M_{sky}, M_{ind}V^,Msky,Mind)分割照明区域,优化渲染出的太阳、天空和间接明暗成分(S ^ s u n , S ^ s k y , S ^ i n d \hat{S}^{sun}, \hat{S}^{sky}, \hat{S}^{ind}S^sun,S^sky,S^ind)。同时,引入新的结构一致性损失(L s c ∗ L_{sc}^{*}Lsc∗),确保重新照明过程中照明的全局一致性和物理合理性。
这一分解流程使得各照明成分可独立操控或协同作用,为后续灵活的重新照明效果奠定了基础。
最终渲染图像 I I I 的公式
现在我们来推导GaRe框架中最终渲染图像 I I I 的公式。
首先,我们得明确户外场景的光照来源。大家想想,户外的光主要来自哪里呢?没错,有直接的阳光,有天空的漫反射,还有物体之间互相反射形成的间接光。这些光照在物体上,再结合物体自身的材质,就形成了我们看到的图像。
物体自身的材质属性是相对稳定的,不会因为光照变化而改变,大家把这种属性称为反射率,用 R R R来表示。它就像物体的“底色”,决定了物体对光的反射能力。
有限的,只有被阳光直接照到的地方才会受到它的影响。我们用就是接下来看光照成分。阳光是很强的直射光,它的照射范围S s u n S_{sun}Ssun表示阳光产生的明暗效果,再用一个太阳可见性 v v v来标记哪些区域能被阳光照到, v v v在被照射区域为1,未被照射区域为0,所以阳光对图像的贡献就是v ⋅ S s u n v \cdot S_{sun}v⋅Ssun。
天空的漫反射光比较柔和,能均匀地照亮整个场景,大家用S s k y S_{sky}Ssky来表示它产生的明暗效果。
还有物体之间的间接反射光,比如阳光照在地面上,地面又把光反射到墙壁上,这种光我们用S i n d S_{ind}Sind 表示。
最后,物体的反射率 R R R会与这些光照成分相互作用,共同形成我们看到的图像。所以,把这些部分组合起来,就得到了最终渲染图像(I)的公式:I = R ⋅ ( v ⋅ S s u n + S s k y + S i n d ) (1) I = R \cdot (v \cdot S_{sun} + S_{sky} + S_{ind})\tag{1}I=R⋅(v⋅Ssun+Ssky+Sind)(1)
这个公式既体现了不同光照成分的作用,又考虑了物体自身的材质,能很好地还原户外场景的视觉效果。
太阳可见性图V ^ \hat{\mathcal{V}}V^ 的公式
大家再来一步步推导GaRe框架中用于计算精细太阳可见性图的公式(4)。该公式是基于残差的可见性提取方法的核心,目的是精确区分场景中被阳光直接照射的区域和阴影区域。
太阳可见性图V ^ \hat{\mathcal{V}}V^是一个二进制掩码,其中:
- 像素值为1,表示该区域能被阳光直接照射;
- 像素值为0,表示该区域处于阴影中(阳光被遮挡)。
准确提取这个掩码,是后续分离“太阳明暗”(阳光直射效果)的基础。
首先,我们需要训练一个“仅环境光”的高斯模型。什么是“仅环境光”?就是排除阳光直射的影响,只保留天空漫反射、物体间接反射等柔和光照的效果。
对于每个高斯(场景中的一个3D采样点),它的环境色c k a m b c_{k}^{amb}ckamb(ambient,环境的) 由以下公式计算:
c k a m b = Φ a m b ( f k a m b , E i a m b ) (2) c_{k}^{amb} = \Phi_{amb}(f_{k}^{amb}, \mathcal{E}_{i}^{amb})\tag{2}ckamb=Φamb(fkamb,Eiamb)(2)
其中,Φ a m b \Phi_{amb}Φamb是一个轻量级MLP,f k a m b f_{k}^{amb}fkamb是高斯的局部特征,E i a m b \mathcal{E}_{i}^{amb}Eiamb是单张图像的环境光照嵌入(记录该图像的环境光特征)。
为了让“仅环境光”模型渲染的图像尽可能真实,大家用掩码L1损失来优化:
L a m b = ∥ ( I ^ a m b − I ) ⋅ ( 1 − V ^ c ) ∥ 1 (3) \mathcal{L}_{amb} = \left\| \left(\hat{\mathcal{I}}_{amb} - \mathcal{I}\right) \cdot \left(1 - \hat{\mathcal{V}}_c\right) \right\|_1\tag{3}Lamb=(I^amb−I)⋅(1−V^c)1(3)
- I ^ a m b \hat{\mathcal{I}}_{amb}I^amb:用“仅环境光”模型渲染的图像(不含阳光);
- I \mathcal{I}I:囊括全局照明(阳光+环境光)的真实图像;
- V ^ c \hat{\mathcal{V}}_cV^c:预处理得到的“粗略可见性图”(标记阳光可能照射的区域);
- ( 1 − V ^ c ) \left(1 - \hat{\mathcal{V}}_c\right)(1−V^c):掩码,只关注“非阳光区”(环境光主导的区域),确保环境光渲染在这些区域与真实图像一致。
当“仅环境光”模型训练好后,我们计算真实图像与仅环境光渲染图像的差值,得到残差图:
I ^ r e s = ∣ I − I ^ a m b ∣ \hat{\mathcal{I}}_{res} = \left| \mathcal{I} - \hat{\mathcal{I}}_{amb} \right|I^res=