三维高斯溅射(3DGS)完全教程
第一章:三维重建是什么,为什么重要
1.1 从一张照片说起
人眼如何感知深度
照片丢失了什么
1.2 三维重建的定义与目标
问题的形式化定义
输入与输出
评价指标的直觉解释
PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)
SSIM(Structural Similarity Index,结构相似性指数)
LPIPS(Learned Perceptual Image Patch Similarity,学习感知图像相似性)
三个指标的直觉对比小结
1.3 主流技术路线全景
路线一:MVS 传统多视图立体几何
路线二:NeRF 神经辐射场(隐式表达)
路线三:3DGS 三维高斯溅射(显式表达)
三种路线横向对比
1.4 3DGS 能做什么,不能做什么
3DGS 擅长的场景
3DGS 的局限
能力边界总结
1.5 学习路线与本教程结构
整体章节安排
各章依赖关系说明
推荐学习节奏
前置知识要求
本章小结
推荐阅读
第二章:视觉基础——相机、投影与点云
2.1 针孔相机模型
基本原理
相似三角形推导
从物理坐标到像素坐标
内参矩阵
\(K\)
2.2 相机外参与世界坐标系
四个坐标系
旋转矩阵
\(R\)
与平移向量
\(t\)
完整变换链
2.3 齐次坐标与投影矩阵
为什么引入齐次坐标
齐次坐标下的投影
完整的
\(3 \times 4\)
投影矩阵
2.4 畸变模型
为什么存在畸变
径向畸变
切向畸变
完整畸变模型
去畸变流程
2.5 点云是什么
SfM 的直觉
稀疏点云 vs 密集点云
2.6 COLMAP 实战
什么是 COLMAP
安装
自动重建流程
输出文件结构
如何检查重建质量
本章小结
第三章:高斯函数与概率基础
3.1 一维高斯函数
3.1.1 定义与公式
3.1.2 三个关键性质
3.1.3 图形直觉
3.1.4 指数衰减的几何含义
3.1.5 思考题
3.2 多维高斯分布
3.2.1 从一维到多维的推广
3.2.2 协方差矩阵的结构
3.2.3 等高线是椭圆的几何推导
3.2.4 特征值分解与椭球主轴
3.2.5 相关性的可视化直觉
3.2.6 思考题
3.3 协方差矩阵的分解
3.3.1 从特征值分解到 RS 分解
3.3.2 几何解释:先缩放,后旋转
3.3.3 自由度分析
3.3.4 3DGS 的实际存储方式:四元数 + 尺度向量
3.3.5 协方差矩阵的梯度计算
3.3.6 思考题
3.4 为什么选高斯作为场景基元
3.4.1 可微性:处处光滑
3.4.2 解析投影闭合解:2D 高斯的精确推导
3.4.3 GPU 并行友好
3.4.4 物理直觉:局部支撑的连续基
3.4.5 思考题
3.5 高斯混合与叠加
3.5.1 高斯混合模型(GMM)基础
3.5.2 GMM 的万能近似能力
3.5.3 3DGS 即 GMM:场景密度场的高斯混合表示
3.5.4 Alpha 合成:高斯叠加的渲染公式
3.5.5 GMM 与 3DGS 的类比对比
3.5.6 自适应密度控制:3DGS 的独特优势
3.5.7 思考题
本章小结
推荐阅读
第四章:球谐函数与外观建模
4.1 颜色与观察方向的关系
朗伯体与非朗伯体
为什么需要方向相关颜色
4.2 球谐函数是什么
球面上的正交基函数
类比傅里叶级数
阶数
\(l\)
与频率的对应
4.3 球谐函数的数学定义
实数形式
\(Y_l^m(\theta, \phi)\)
前 4 阶系数数量
总计 16 个基函数
4.4 用球谐函数表示颜色
RGB 各通道独立展开
已知方向如何计算颜色——线性组合
系数作为可学习参数
4.5 阶数选择的工程折衷
0 阶——常色(无方向依赖)
3 阶——质量与开销的平衡
更高阶的边际收益
本章小结
推荐阅读
第五章:体渲染与 Alpha 合成
5.1 体渲染方程直觉推导
5.1.1 光线在介质中的传播
5.1.2 消光系数与透射率
5.1.3 辐射传输方程
5.2 离散近似与 Alpha 合成
5.2.1 将连续积分离散化
5.2.2 前向 Alpha 合成公式
5.2.3 前向合成的递推形式
5.3 NeRF 的体渲染实现
5.3.1 网络结构与输入输出
5.3.2 层次采样策略
5.3.3 渲染速度瓶颈
5.4 3DGS 的渲染公式推导
5.4.1 三维高斯的定义
5.4.2 三维高斯投影到屏幕
5.4.3 每像素贡献与深度排序
5.4.4 Tile-Based 光栅化
5.5 可微渲染意义
5.5.1 可微渲染的基本框架
5.5.2 梯度如何驱动高斯参数更新
5.5.3 自适应密度控制
5.5.4 可微渲染的全局梯度流
本章小结
第六章:3DGS 核心算法详解
6.1 整体架构一览
6.2 高斯基元的完整参数定义
6.3 三维高斯投影到二维
仿射近似(Affine Approximation)
二维协方差计算
二维高斯椭圆的渲染
6.4 Tile-based 光栅化
预处理阶段
前向渲染阶段
反向传播
6.5 自适应密度控制(ADC)
位置梯度统计
三种操作
6.6 损失函数设计
L1 损失
D-SSIM 损失
6.7 训练超参数解读
本章小结
推荐阅读
第七章:从原始论文到开源代码
7.1 原版3DGS论文精读(Kerbl et al. 2023)
核心贡献总结
与NeRF的5个关键差异
实验结果解读
引用数与学术影响力
7.2 代码仓库结构导览
gaussian-splatting 仓库文件树
scene/、gaussian_renderer/、utils/ 各目录职责
CUDA扩展(diff-gaussian-rasterization)的作用
7.3 train.py 主循环解读
总体流程概览
阶段一:初始化
阶段二:前向渲染
阶段三:Loss计算
阶段四:反向传播
阶段五:参数更新
阶段六:自适应密度控制(ADC)
关键函数调用关系
7.4 render.py 与评估
render() 函数
metrics.py 中 PSNR/SSIM/LPIPS 计算
如何解读评估结果
7.5 常见报错排查
问题一:CUDA Out of Memory(显存不足)
问题二:COLMAP失败(特征不足)
问题三:渲染黑屏
问题四:训练不收敛
问题五:Windows/Linux 差异
第八章:数据准备与训练实战
8.1 硬件与环境配置
GPU 显存需求
CUDA 与依赖版本
8.2 公开数据集下载与使用
Tanks and Temples
Mip-NeRF 360 数据集
数据集对比
8.3 用自己的视频训练
拍摄技巧
视频抽帧
COLMAP 自动重建流程
8.4 训练参数精调
不同场景的推荐配置
快速实验策略
关键超参数影响
8.5 可视化与结果分析
SIBR Viewer 实时查看
Python 轨迹渲染
训练指标监控
8.6 导出与部署
PLY 文件格式
WebGL / 浏览器端部署
移动端适配
gsplat 库的 Python API
本章小结
推荐阅读
第九章:主流改进方向与前沿论文(截至 2026 年中)
9.1 高效表示与压缩
代表工作
9.2 几何与表面重建
代表工作
9.3 动态场景与视频
代表工作
9.4 大场景与城市级重建
代表工作
9.5 文本/图像驱动生成
代表工作
9.6 语义理解与场景分析
代表工作
9.7 光照分解与重光照
代表工作
9.8 人体与Avatar建模
代表工作
9.9 自动驾驶仿真
代表工作
9.10 SLAM 与实时建图
代表工作
9.11 阅读前沿论文的方法论
检索工具
15分钟快速判断论文价值
跟踪2025-2026新进展的工作流
本章小结
推荐阅读
第十章:成为贡献者——如何迭代改进系统
10.1 建立可复现的实验基线
可复现性是一切的前提
10.2 定位性能瓶颈
CUDA Profiling
内存带宽 vs 计算瓶颈
10.3 修改高斯基元的正确姿势
添加新属性
修改梯度流
10.4 替代库:gsplat 与 nerfstudio
gsplat:高性能 3DGS 后端
nerfstudio:模块化训练框架
Gaussian Opacity Fields(GOF)
3DGUT:通用非结构化相机
10.5 消融实验设计
控制变量原则
指标选取
统计显著性
10.6 开源与投稿建议
顶会截止日期(2024-2026年参考)
代码整洁度标准
README 写法
社区协作
10.7 推荐学习资源汇总
论文阅读路径(建议顺序)
精选课程
活跃研究组(关注他们的论文)
中文社区
全书总结
本章小结
推荐阅读
三维高斯溅射(3DGS)完全教程
索引
在 GitHub 上编辑
索引