当前位置: 首页 > news >正文

【论文阅读笔记】TransparentGS:当高斯溅射学会“看穿”玻璃,如何攻克透明物体重建难题?

文章目录

  • TransparentGS: Fast Inverse Rendering of Transparent Objects with Gaussians
    • Info
    • Abstract
    • Introduction
    • Method
      • 预备知识
        • 3D GS的概念不再赘述
        • 渲染方程
      • 透明高斯
      • Gaussian Light Field Probes
      • 多阶段重建
    • 实验
      • 结果和评估
    • 消融实验
    • 应用
      • 讨论和限制
    • 结论


TransparentGS: Fast Inverse Rendering of Transparent Objects with Gaussians

Info

会议 【TOG 2025】

作者 南京大学、南开大学、浙江大学

Project地址 https://letianhuang.github.io/transparentgs/

Abstract

本文聚焦于使用 3D GS 实现反射和折射场景的新视角合成,提出了一种名为 TransparentGS 的方法。它是一个基于3D-GS、用于快速重建透明物体的逆向渲染管线。主要贡献包含三个方面:

  • 设计了一种高效的透明物体表示方法:我们设计了“透明高斯基元”(transparent Gaussian primitives),它通过一种“延迟折射”(deferred refraction)策略,实现了对高光折射的模拟。
  • 统一环境光与邻近内容的编码:我们利用“高斯光场探针”(Gaussian light field probes, GaussProbe),在一个统一的框架内,同时对环境光和邻近物体内容进行编码。
  • 提出了一种减少视差误差的算法:我们提出了一种名为“基于深度的迭代式探针查询”(depth-based iterative probes query, IterQuery)的算法,以减少我们这种基于探针框架中的视差(parallax)错误。

图 1 TransparentGS是一种基于3D-GS的新型逆向渲染流水线,专门设计用于在各种光照和观察条件下重构透明物体。它能够在1小时内提供高质量的重构结果,实现实时的新视图合成,并方便地对具有挑战性的透明物体场景进行重新渲染。与最先进的方法相比,它在近处内容(间接光)的情况下,实现了高逼真度的折射(蓝框)和反射(绿框),从而为由多个物体组合而成的场景中的复杂次级光线效果铺平了道路。

Introduction

从不同视角的多张二维图像重建三维场景并合成新视角一直是计算机图形学和视觉中的一项长期任务。随着深度学习的出现,神经辐射场(NeRF)及其变体在解决这一任务中引领了趋势,它们通过使用隐式场的体积渲染实现了照片级真实感的视觉质量。最近,随着对实时渲染需求的不断增加,三维高斯溅射(3D-GS)提供了一种更高效的显式表示,能够通过将辐射场建模为三维高斯原语来实现实时渲染。

然而,直到现在,在任意光照条件下重建透明物体并实现实时新视角合成仍然具有挑战性。这一挑战源于透明物体在不同视点下频繁出现的变化,主要由于光线穿过材料时反射和折射的复杂相互作用。因此,NeRF中的具有方向编码的多层感知机(MLP)和3D-GS中的球面谐波函数(SH)在准确建模镜面反射和折射方面都面临困难。

目前,针对透明物体的最有效重构方法是基于隐式神经表示的 [Bemana et al. 2022; Gao et al. 2023; Li et al. 2020; Sun et al. 2024]。然而,这些方法以训练过程中的显著计算开销而闻名,并且如表1所述,它们也不支持实时渲染。基于3D-GS的方法在3D重构和新视角合成方面提供了高效率 [Wu et al. 2024b],但现有方法各自存在局限性。特别是这些方法 [Jiang et al. 2024; Ye et al. 2024] 原本是为反射场景设计的,无法轻易应用于透明物体。当透明物体周围有附近物体时,困难程度进一步加大。由于基于光栅化的公式,3D-GS受到理想针孔相机的限制,缺乏对折射和相互反射等次级光线效应的支持 [Huang et al. 2024; Moenne-Loccoz et al. 2024]。

在本文中,我们提出了TransparentGS,一个新颖的逆向渲染框架,该框架基于3D-GS,能够高效地管理在各种光照和视角条件下的透明物体,同时支持与邻近内容的折射和相互反射。在此框架中,透明物体由透明高斯原语建模,这些原语明确编码了3D高斯中的几何和材料属性。这些新原语便于集成到专门的物理基础延迟渲染流水线中,从而实现网格和高斯的整合,以处理次级光线效果。为了处理场景中的环境光和邻近内容,我们引入了高斯光场探针(GaussProbe),通过在透明物体周围放置稀疏的缓存集来捕捉每个透明物体的局部光场。这些探针可以基于最佳投影策略快速烘焙和更新 [Huang et al. 2024]。为了解决探针固有的视差问题并增强折射/相互反射的细节,我们设计了一种基于深度的迭代探针查询算法(IterQuery),该算法在经过几次迭代后能实现可信的结果。与之前的工作相比,我们的新框架具有几个优势,如表1所列。特别地,我们在一小时内实现了透明物体的快速逆向渲染及次级光线效果,能够实时合成透明场景的新视图以及复杂的次级光线效果,如图1所示。

 表 1 透明物体重构方法在训练时间(A)、渲染时间(B)以及支持环境光(C)、邻近内容(间接光)(D)、高频折射细节(E)、准确的反射-折射解耦(F)、彩色折射(G)和重新渲染(例如,重新照明或材料编辑 [Khan et al. 2006])(H)方面的比较。

与之前的工作相比,我们的新框架有几个优点,如表1所示。特别是,我们在一小时内实现了首个快速反向渲染,能够处理透明物体的次级光线效应,从而实现透明场景和复杂次级光线效应的实时新视角合成,如图1所示。总之,本工作的贡献如下:

  • 我们设计了一种高效的透明物体表示,透明高斯原语,使得通过延迟折射策略实现镜面折射成为可能。
  • 我们利用高斯光场探针(GaussProbe)在统一框架内编码环境光和附近内容。
  • 我们提出了一种基于深度的迭代探针查询算法(IterQuery),以减轻我们基于探针的框架中的视差误差。

Method

在本节中,我们介绍了我们的方法TransparentGS,旨在快速逆渲染透明物体。如图2所示,我们的TransparentGS由两部分组成。第一部分是透明物体的表示,透明高斯原语,包含遵循3D高斯点云(3D-GS)[Kerbl et al. 2023]的形状属性。为了增强折射的表示能力,我们通过额外属性扩展了原语,包括法线和双向散射分布函数(BSDF)[Bartell et al. 1981]的参数。为了利用原语渲染详细的高光折射,我们采用了一种延迟折射方法。第二部分是我们提出的高斯光场探针(GaussProbe),它不仅表示类似于环境贴图的环境光,还表示来自附近内容的间接光。为了消除视差问题,我们开发了一种基于深度的迭代探针查询(IterQuery)算法,专门用于高斯光场探针。

预备知识

我们透明高斯流水线的概述。每个三维场景首先通过SAM2 [Ravi et al. 2024] 结合GroundingDINO [Liu et al. 2024] 被分离为透明物体和不透明环境。对于透明物体,我们提出了透明高斯原语,它明确编码了三维高斯中的几何和材料属性。这些属性被光栅化为后续延迟着色的贴图。对于不透明环境,我们使用原始的3D-GS进行恢复,并将其烘焙到围绕透明物体的高斯探针中。然后,通过我们的迭代查询算法对高斯探针进行查询,以计算反射和折射。

3D GS的概念不再赘述
渲染方程

L = ∫ Ω L i n ( x , ω i n ) f ( x , ω , ω i n ) ∣ ω i n ⋅ n ∣ d ω i n . (3) L = \int_{\Omega} L_{in} (\mathbf{x}, \omega_{in}) f (\mathbf{x}, \omega, \omega_{in}) |\omega_{in} \cdot \mathbf{n}| d\omega_{in}. \tag 3 L=ΩLin(x,ωin)f(x,ω,ωin)ωinndωin.(3)

双向散射分布函数,𝐿 是阴影结果,𝐿in 是入射辐射,n 是表面法线,𝜔 和 𝜔 i n 𝜔_{in} 𝜔in 分别是出射方向和入射方向。𝑓 表示表面点 x 的双向散射分布函数(BSDF),可以进一步细分为双向反射分布函数(BRDF)和双向透射分布函数(BTDF)

透明高斯

在3D-GS中,球面谐波 [Kerbl et al. 2023] 难以准确捕捉镜面反射和折射中外观的高频变化,这导致了过拟合,从而在新视角中造成退化,或者结果高度模糊。为了解决这个问题,我们提出了一种新的表示,透明高斯原语,它涉及基于物理的渲染流水线,而不是直接计算球面谐波。参数化。如图2所示,我们将表面几何体参数化为法线n,将表面材料参数化为粗糙度𝜌和金属度𝑚。对于透明物体,考虑表面的传输和折射是至关重要的。因此,我们利用两个额外的材料参数:透明度𝑡和折射率(IOR) 𝜂。透明度𝑡用于在不透明材料和透明材料之间进行插值。此外,为了保持高运行性能,我们保留了原始3D-GS [Kerbl et al. 2023] 的形状参数用于𝛼混合和光栅化。

不透明度属性在三维生成系统(3D-GS)中发挥着关键作用,即使对于不透明物体,因为三维生成系统依赖于体积𝛼混合。对于透明物体,仅仅使用较低的不透明度来表示透明性将无法准确表现其表面,这反过来又使得计算折射和反射变得困难。因此,我们引入了一个额外的参数𝑡,以便于在计算机图形学中的应用,例如材料编辑。

表面反射和折射。在本文中,我们通过两个分离的BSDF明确表示表面反射和折射:
f = ( 1 − t ) f r + t f t f = (1 - t)f_r + tf_t f=(1t)fr+tft
其中 𝑓 𝑟 𝑓_𝑟 fr 表示双向反射分布函数(BRDF), 𝑓 𝑡 𝑓_𝑡 ft 表示双向透射分布函数(BTDF)。对于不透明材料,当 𝑡 = 0 时,我们遵循 Cook-Torrance 模型 [1981]。而对于金属或透明物体的反射成分,当 𝜌 = 0 𝜌 = 0 𝜌=0 时,我们将其视为完美镜面反射:
f r = F δ ( ω − ω r ) ∣ ω i n ⋅ n ∣ , with ω r = 2 ( ω i n ⋅ n ) n − ω i n f_r = F \frac{\delta(\omega - \omega_r)}{|\omega_{in} \cdot \mathbf{n}|}, \quad \text{with} \quad \omega_r = 2(\omega_{in} \cdot \mathbf{n})\mathbf{n} - \omega_{in} fr=Fωinnδ(ωωr),withωr=2(ωinn)nωin
其中 𝜔 𝑟 𝜔_𝑟 𝜔r 表示分析反射方向,𝛿 表示 Dirac Delta函数,而 Fresnel 项 𝐹 可以使用 Schlick 近似 [Schlick 1994] 进行近似。同样,对于透明物体的透射成分,当 𝜌 = 0 时,我们仅考虑完美的镜面折射

f t = ( 1 − F ) δ ( ω − ω t ) ∣ ω i n ⋅ n ∣ (6) f_t = (1 - F) \frac{\delta(\omega - \omega_t)}{|\omega_{in} \cdot \mathbf{n}|} \tag 6 ft=(1F)ωinnδ(ωωt)(6)

其中 𝜔 𝑡 𝜔_𝑡 𝜔t 指的是折射方向。如图 2 所示,解析的折射方向是根据斯涅尔定律获得的。

延迟折射 使用3D-GS进行反向渲染的一个关键方面是着色方案。通常,着色策略可以分为两种类型:前向着色和延迟着色。“前向”指的是首先进行着色,然后进行𝛼混合,而“延迟”则相反。先前的研究强调了操作顺序对镜面反射的影响。受到一些关于延迟反射的研究启发 [Wu et al. 2024a; Ye et al. 2024],我们探讨了在处理镜面折射时采用延迟着色的可能性。具体而言,我们使用公式(3)和公式(6)推导透射颜色:

L t = ∫ Ω L i n ( x , ω i n ) ( 1 – F ) δ ( ω – ω t ) d ω i n = ( 1 – F ) L i n ( x , ω t ) . (7) L_t = \int_{\Omega} L_{in} (\mathbf{x}, \omega_{in}) (1 – F) \delta (\omega – \omega_t) d\omega_{in} = (1 – F) L_{in} (\mathbf{x}, \omega_t). \tag 7 Lt=ΩLin(x,ωin)(1–F)δ(ωωt)dωin=(1–F)Lin(x,ωt).(7)

由于𝛼混合是一种线性的操作,而方程(7)相对于法线n并不是线性的,因此操作顺序对折射有显著影响。前向折射对高斯的阴影结果进行了平均。与前向折射相比,延迟阴影在捕捉具有镜面折射的透明物体方面更为擅长,因为它对光照进行了单次采样,如图3所示。在我们的延迟折射策略中(见图2),我们采用了一种基于点的𝛼混合方法,类似于方程(2),以聚合所有由基元携带的反射和折射相关属性。例如,带有α加权的法线的计算公式为:

N = ∑ i = 1 N T i α i n i (8) \mathcal{N}=\sum_{i=1}^{N} T_{i}\alpha_{i}\mathbf{n}_{i} \tag 8 N=i=1NTiαini(8)

此外,与基于环境光的反射相比,我们还需要整合光线的入射点以进行折射和反射。然而,仅仅整合原始图形的中心𝝁会忽略它们的各向异性,从而导致误差。我们采用了一种更精确的策略来计算入射点。考虑到原点 o c a m o_{cam} o

http://www.xdnf.cn/news/1065799.html

相关文章:

  • 【破局痛点,赋能未来】领码 SPARK:铸就企业业务永续进化的智慧引擎—— 深度剖析持续演进之道,引领数字化新范式
  • 针对数据仓库方向的大数据算法工程师面试经验总结
  • 计算机网络通信技术与协议(九)————交换机技术
  • 前端手写题(一)
  • leetcode51.N皇后:回溯算法与冲突检测的核心逻辑
  • Linux——6.检测磁盘空间、处理数据文件
  • 【分布式技术】Bearer Token以及MAC Token深入理解
  • Python商务数据分析——Python 入门基础知识学习笔记
  • Node.js特训专栏-实战进阶:6. MVC架构在Express中的应用
  • C++智能指针编程实例
  • 目标检测neck算法之MPCA和FSA的源码实现
  • UE5 游戏模板 —— ThirdPersonGame
  • 深度解析云计算网络架构:VLAN+OVS+Bonding构建高可靠虚拟化平台
  • 给同一个wordpress网站绑定多个域名的实现方法
  • 人工智能、机器人最容易取哪些体力劳动和脑力劳动
  • 《计算机网络:自顶向下方法(第8版)》Chapter 8 课后题
  • 从零开始手写redis(16)实现渐进式 rehash map
  • (码云gitee)IDEA新项目自动创建gitee仓库并直接提交
  • 【Datawhale组队学习202506】YOLO-Master task03 IOU总结
  • 【51单片机】串口通信
  • 在windows上使用file命令
  • 2140、解决智力问题
  • 核心概念解析:AI、数据挖掘、机器学习与深度学习的关系
  • P99延迟:系统性能优化的关键指标
  • 管理综合知识点
  • Kafka与Zookeeper在linux上的下载记录
  • 【PyTorch项目实战】CycleGAN:无需成对训练样本,支持跨领域图像风格迁移
  • git 如何忽略某个文件夹文件
  • dijkstra(迪杰斯特拉)算法详解
  • React 核心原理与Fiber架构