10 — 二维高斯泼溅¶
示例文件:
examples/10_gaussian2d.py
3D Gaussian Splatting(3DGS)席卷了神经渲染领域。但它的核心思想 出奇地简单:撒一堆彩色的椭圆斑点,alpha 混合到一起,和目标图比较, 然后反向传播。
这个例子把 3DGS 蒸馏到二维本质。没有相机投影,没有球谐函数, 没有分块光栅化。就是 N 个可学习的二维高斯——每个有位置、尺度、 旋转、颜色、不透明度——通过可微分 alpha 合成渲染,用普通的 PyTorch autograd 优化。
看着高斯们在画布上游走、缩放、旋转、变色,最终重新组装出目标图像。 这就是那个能以 100+ fps 渲染照片级真实场景的算法。
新朋友¶
| 新东西 | 它做什么 | 为什么重要 |
|---|---|---|
高斯的 nn.Parameter |
位置、对数尺度、旋转、原始颜色、原始不透明度 | 每个高斯属性都可学习——autograd 搞定剩下的 |
| 逆协方差 | 从尺度 + 旋转得到 $\Sigma^{-1}$ | 让每个高斯有自己的椭圆形状的数学 |
| Alpha 合成 | $C = \sum_i \alpha_i T_i c_i$,其中 $T_i = \prod_{j |