1. 3D高斯泼溅技术的前置知识
这项技术是将三维空间的点,表示成一个个的三维高斯分布,并且利用其可连续微分的特性,加上改进过的渲染算法,完成快速的渲染和场景重建。提到3DGS,首先需要了解他的背景知识,如神经辐射场理论,高斯分布等。
1.1 神经辐射场理论(Radiance field Theory)
辐射场是指描述光在三维空间中的行为和分布的一种表现形式,简单来说,就是描述光线的空间分布和强度。
从技术上来说,辐射场是一个数学函数,定义在三维空间中,用来描述特定方向上光线的强度:
其中:
:三维空间中的点,表示光线的起始位置
:单位球面上的方向向量,表示光线的传播方向
描述在点x处沿方向d的辐射强度(通常和颜色有关)
辐射场的表示方式分为两种,一种是隐式表示,另一种是显式表示。
1.1.1 隐式表示
神经辐射场的隐式表示是指使用神经网络作为函数近似器,来表示三维场景中的辐射场和几何信息。这种方法无需显示存储场景中的点云、体素或网格,而是使用一个连续的函数隐式地描述三维空间。
其最具有代表性的技术是NeRF。
隐式表示的优点是:
1. 存储效率高。在存储时不直接存储三维数据,仅存储函数的参数(如神经网络参数),而且对于高分辨率或复杂细节的存储需求相对较低。
2. 连续性强。函数自然连续,可以平滑表示复杂的几何和光照变化,无需额外插值。
3. 灵活性强。支持动态场景、动态光照和任意视角合成,并且容易扩展到超分辨率和复杂的光物理效果。
4. 表示能力强。可建模复杂场景细节和高维特性(如颜色、材质、密度)。
同样的,它的缺点是:
1. 渲染效率低。需要实时查询神经网络,推理速度受硬件的性能影响较大,而且不能用于实时应用。
2. 优化复杂。需要进行大规模的训练和优化,依赖深度学习框架和资源。训练时间长,并且结果非常依赖于网络设计和超参数调节。
3. 难以直观编辑。表示方式抽象,不如显式表示直观,难以直接修改特定的几何和纹理。
4. 工具链不成熟。需要搭建专用框架。
1.1.2 显式表示
显式表示是指直接存储或者显式表示,场景中的三维辐射信息,而不是依赖连续函数进行隐式建模。表示的形式通常是离散的,具体实现形式包括:
体素,将三维空间划分为离散的体素(体积像素)网络,每个体素存储颜色、密度或其他属性。这种表示的优点是非常直观,支持传统的计算机图形学渲染技术。缺点是储存需求很大,特别是高分辨率网格;同时连续性较差,离散的网格导致边缘不够光滑。
点云,直接使用点的集合表示三维空间中的几何和辐射信息,每个点存储位置、颜色、法向量等属性。优点是存储效率高,在稀疏场景的表示上优势很大,易于采样和扩展。缺点是渲染时需要插值算法来确保连续性,同时对场景细节表示很有限。
三角网格(Triangle Meshes),使用三角形网格表示三维几何表面,并在表面上附加颜色和纹理。优点,可以高效地表示表面几何和纹理,并且在图形学中广泛应用,具有非常成熟的算法支持。缺点,主要用于表面建模,难以表示体积属性。
3DGS采用了显式表示的方式。
综上可以看出,显示表示的优点是:
1. 非常直观,可以直接观察编辑
2. 在固定分辨率渲染中,渲染速度快
3. 成熟度高,依赖于传统的计算机图形学,工具链和算法非常完善。
缺点是:
1. 存储需求高:对于高分辨率的场景,存储的需要的代价很高。
2. 不连续: 离散化的表示,会导致细节建模和连续性上的不足。
3. 扩展性有限: 难以动态适配新视角或复杂场景变化。
1.1.3 显式表示与隐式表示对比
特性 | 显式表示 | 隐式表示 |
存储形式 |
离散存储 | 函数表示 |
连续性 | 依赖插值算法,可能出现离散化伪影 | 天然连续 |
存储需求 | 较高,受分辨率限制 | 较低,只需要存储模型参数 |
渲染速度 | 快,适合实时渲染 | 较慢,需要每次查询神经网络 |
扩展性 | 难以适应复杂或动态场景 | 容易扩展到动态场景 |
应用场景 | 传统渲染、游戏、实时应用 | 视角合成、场 |
1.2 三维高斯分布
在论文中,作者提到,其工作证明了3D高斯是一个很好的选择,因为它们是可微分的体积表示,为了理解为什么要采用3D高斯,我们需要了解3D高斯的概念和其数学含义。
1.2.1 一维高斯分布
一维高斯分布听起来有点陌生,实际上,它就是我们经常接触的正态分布。其公式为:
其中 :为均值,决定分布曲线的中心位置。