3D Gaussian Splatting:显式高斯场表示

A. 本篇主题

本篇围绕 3D Gaussian Splatting(3DGS) 的基础表示与渲染机制。核心目标是阐明:3DGS 如何用一组离散的显式高斯分布完全替代 NeRF 的隐式 MLP 连续场表示;这些高斯如何投影到 2D 图像平面;以及基于投影的 splatting 渲染流程为何比 NeRF 的体渲染高效得多。本篇是笔记 04(训练优化)的基础,并为笔记 05-06(4D 扩展)提供表示框架。

B. 本篇在整条路线中的位置

笔记 02 的结尾指出:NeRF 改进路线的所有方法仍在”连续函数”范式内。从 Plenoxels 的体素化、TensoRF 的低秩分解到 Instant-NGP 的哈希编码,每一步都在加速或压缩表示,但没有从根本上改变”场景由连续函数定义”的设定。

3DGS 的核心洞察是:完全放弃 MLP,用离散的显式高斯分布替代连续场。高斯分布相比体素/哈希有更好的数学性质:协方差参数化天然支持 anisotropic anisotropy(各向异性),投影后仍是高斯分布,使得 GPU-friendly 的 tile-based splatting 成为可能。

本篇的结尾将指出 3DGS 处理动态场景的固有局限:每个高斯的时间属性是固定的,无法自然地表达随时间变化的场景。这为笔记 05(K-Planes 等时空分解方法)和笔记 06(4DGS)做了铺垫。

C. 数学建模

C.1 符号定义

符号维度含义
3D 个高斯的均值(中心位置)
SPD 个高斯的协方差矩阵(对称正定)
标量 个高斯的不透明度(
3D 个高斯的颜色(RGB 或 SH 系数)
3D 高斯 个高斯分布
旋转矩阵视角旋转(从世界坐标系到相机坐标系)
平移向量视角平移
雅可比矩阵透视投影的雅可比矩阵
标量3D 高斯函数值
标量2D 投影高斯函数值

C.2 3D 高斯的定义

场景表示为 个 3D 高斯分布的集合:

每个高斯的概率密度函数:

协方差矩阵的参数化(保证 SPD 约束):

为保证协方差矩阵对称正定(SPD),使用缩放因子和旋转矩阵的参数化:

其中:

  • 是缩放矩阵(
  • 是旋转矩阵(使用四元数 参数化)

最终可学习的参数为:(四元数归一化),以及

C.3 颜色建模:球谐函数

视角相关外观(View-Dependent Appearance)

与 NeRF 类似,高斯颜色随观察方向变化。使用球谐函数(Spherical Harmonics, SH)表示:

  • 是球谐函数基
  • 是第 个高斯的球谐系数(共 个)
  • 论文用 (4 阶,共 16 个系数)

物理直觉:低阶球谐函数()对应漫反射和高光反射的视角相关颜色。更高的阶数用于更复杂的材质。

D. 详细推导

D.1 3D 高斯到 2D 的投影推导

目标:将 3D 高斯 投影到 2D 图像平面得到 2D 高斯

步骤 1:坐标变换到视角坐标系

世界坐标系到相机坐标系的变换:

其中 是旋转矩阵, 是平移向量。

步骤 2:透视投影的雅可比矩阵

透视投影函数

其中 是焦距, 是相机坐标系下的坐标。

一阶近似(足够小的高斯):投影的均值和协方差可通过雅可比线性传播:

其中 是透视投影在 处的雅可比:

当使用归一化设备坐标()时:

步骤 3:2D 高斯函数

投影后的 2D 高斯密度函数:

注意:投影后仍是高斯分布,这是 3DGS 能够高效渲染的数学基础。

D.2 Splatting 的 alpha 合成推导

目标:将所有投影高斯合成到像素颜色

单高斯的贡献

给定像素 ,第 个高斯在像素处的贡献为其密度归一化的颜色加权:

注意:这里 是 3D 高斯的不透明度, 是 2D 投影高斯在像素处的值,它们共同决定该高斯在像素处的不透明度贡献。

排序(Sorting)

为实现正确的遮挡关系,按深度(沿相机主轴)排序高斯:

其中 是相机主方向。

Alpha 合成(从近到远)

像素颜色的最终计算:

其中 是在当前高斯之前的高斯集合(更靠近相机)。

等价的紧凑形式

其中 是累积透射比,含义与 NeRF 体渲染中的 相同——光线在到达第 个高斯之前未被拦截的概率。

D.3 与 NeRF 体渲染方程的对应关系

3DGS 的 splatting 方程与 NeRF 的体渲染方程有完全相同的形式:

NeRF 体渲染3DGS Splatting
采样点 在光线上投影高斯 在像素上

关键区别:

  • NeRF 用积分(沿光线连续采样),3DGS 用求和(有限高斯集合)
  • NeRF 的 来自体积密度 和区间长度 ,3DGS 的 来自 3D 不透明度 和 2D 投影高斯值
  • 3DGS 的高斯集合是显式且有限的,使得 GPU 并行化成为可能

E. 算法与渲染流程

E.1 渲染算法(Tile-Based Splatting)

为高效渲染,3DGS 使用基于 tile 的光栅化:

输入:高斯集合 {G_i},相机参数 (R, t, f),图像分辨率 (W, H)
输出:渲染图像 I

1.  for each Gaussian G_i do
2.      // 投影到 2D
3.      μ_i' ← Project(μ_i, R, t, f)
4.      Σ_i' ← J · R · Σ_i · R^T · J^T
5.      // 计算 2D 不透明度
6.      α_i'(u) ← α_i · G_i'(u) for all u in image
7.  end for

8.  // 按 tile 分组排序
9.  for each 16×16 tile do
10.     Gaussians_in_tile ← FilterGaussians(G, tile)
11.     Sorted ← Sort(Gaussians_in_tile, by depth)
12.     for each pixel in tile do
13.         Ĉ ← AlphaBlend(Sorted, pixel)
14.         I[u, v] ← Ĉ
15.     end for
16. end for
17. return I

Tile-based 策略:将图像划分为 16×16 的 tiles,每个 tile 仅处理与之相交的高斯,避免了排序全部高斯的开销。

可见性排序:每个 tile 独立排序(深度排序),并行处理多个 tiles。

E.2 渲染的数学形式(批量版本)

对整个图像批量计算:

其中:

  • 是输出图像
  • 是第 个高斯在图像平面每个像素处的投影值( 排列成图像大小的矩阵)
  • 是累积透射比

利用 GPU 的并行能力,这个求和可以高效地向量化计算。

F. 关键直觉

  1. 高斯投影后仍是高斯——这是整个方法的基础:3D 高斯 经仿射变换(旋转+投影)后仍保持高斯形式,使得 2D splatting 可精确计算而非近似。

  2. 不透明度与投影高斯值的乘积等价于 NeRF 的 alpha 合成 中的 起着 NeRF 中区间长度 相似的作用,都是”该采样点占据像素面积的比例”。

  3. 显式有限集合使得 GPU 并行化成为可能:与 MLP 逐点查询不同,3DGS 的高斯集合是有限且显式的,投影+排序+splatting 可完全在 GPU 上批量执行。

  4. 协方差参数化支持各向异性:通过 ,高斯可以是椭球形的(不是球形),这使得 3DGS 能精确表示不同尺度和朝向的场景元素。

  5. 排序建立遮挡关系:按深度排序后,alpha 合成自动实现正确的遮挡——前面的高斯先合成, 确保后面的高斯不受前面不透明高斯影响。

G. 局限性

  1. 高斯数量随场景复杂度线性增长:复杂场景需要数十万到数百万个高斯,内存和渲染压力增大。

  2. 无法表示薄结构或空洞:高斯是平滑的密度场,难以精确表示尖锐表面或带有空洞的复杂拓扑。

  3. 初始化敏感:随机初始化的效果差,通常依赖 SfM(运动恢复结构)点云初始化。

  4. 时间属性固定:每个高斯的参数(位置、协方差)在训练后固定,无法自然表达动态场景的时间演变。

  5. 训练时的 densification 需要启发式规则:何时分裂、如何分裂高斯需要手工设计规则,缺乏理论指导。

H. 与前后篇的衔接

本篇承接:笔记 02 的 Instant-NGP/TensoRF 等方法,它们已经暗示了”显式化”的方向,但仍在连续函数框架内。3DGS 完成了这个范式转变——从”离散化的连续场”到”完全显式的高斯集合”。

本篇引出:3DGS 的核心局限之一是无法处理动态场景——每个高斯的参数是静态的,没有时间维。这驱动了笔记 05 的 K-Planes/HexPlane 等时空分解方法,以及笔记 06 的 4DGS。

笔记 04 将深入 3DGS 的训练优化机制,包括初始化、densification、split、clone、prune 等操作的数学原理。


本篇必须记住的结论

  1. 3DGS 用有限显式高斯集合替代 NeRF 的 MLP 隐式连续场:场景表示为 ,共 个高斯。

  2. 投影公式,投影后仍是高斯分布。

  3. 2D 不透明度贡献,其中 是 2D 投影高斯在像素处的密度值。

  4. Splatting 渲染方程,其中 是累积透射比。

  5. 与 NeRF 体渲染的等价性:两者形式完全一致,但 3DGS 用有限高斯集合替代了连续积分,使 GPU 并行化成为可能。


参考文献

  1. Kerbl et al. “3D Gaussian Scattering for Real-Time Rendering of Radiance Fields” ACM TOG 2023
  2. Zwicker et al. “EWA Splatting” IEEE TVCG 2002(投影理论基础)
  3. Yellamanchilli et al. “Analysis of GPU-Based Interactive Splatting”(工程实现参考)