<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Neural Rendering on Snow</title>
        <link>https://SymphonyW.github.io/tags/neural-rendering/</link>
        <description>Recent content in Neural Rendering on Snow</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <copyright>Snow</copyright>
        <lastBuildDate>Tue, 14 Jul 2026 21:43:00 +0800</lastBuildDate><atom:link href="https://SymphonyW.github.io/tags/neural-rendering/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>3D Gaussian Splatting Principles:Rebuilding the World with Millions of Gaussians and Its Cost</title>
        <link>https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/</link>
        <pubDate>Tue, 14 Jul 2026 21:43:00 +0800</pubDate>
        
        <guid>https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/</guid>
        <description>&lt;img src="https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/bg.png" alt="Featured image of post 3D Gaussian Splatting Principles:Rebuilding the World with Millions of Gaussians and Its Cost" /&gt;&lt;h1 id=&#34;3dgs-原理详解用百万颗高斯重建世界及其背后的代价&#34;&gt;3DGS 原理详解：用百万颗高斯重建世界，及其背后的代价
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;2023 年 SIGGRAPH 最佳论文 &lt;strong&gt;&amp;ldquo;3D Gaussian Splatting for Real-Time Radiance Field Rendering&amp;rdquo;&lt;/strong&gt; 把&amp;quot;神经辐射场&amp;quot;从「一帧几秒」拉到了「实时 100 FPS」，从此新视角合成（Novel View Synthesis）这条赛道被彻底改写。本文从零讲清楚 3DGS 是怎么工作的、为什么这么快，以及它天生的几道&amp;quot;硬伤&amp;quot;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;目录&#34;&gt;目录
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e4%b8%80%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81-3dgs&#34; &gt;一、为什么需要 3DGS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e4%ba%8c%e6%95%b4%e4%bd%93%e6%b5%81%e7%a8%8b%e4%b8%80%e8%a7%88&#34; &gt;二、整体流程一览&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e4%b8%89%e8%a1%a8%e7%a4%ba%e4%b8%80%e4%b8%aa%e9%ab%98%e6%96%af%e9%95%bf%e4%bb%80%e4%b9%88%e6%a0%b7&#34; &gt;三、表示：一个高斯长什么样&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e5%9b%9b%e6%b8%b2%e6%9f%93%e4%bb%8e-3d-%e6%a4%ad%e7%90%83%e5%88%b0%e5%83%8f%e7%b4%a0&#34; &gt;四、渲染：从 3D 椭球到像素&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e4%ba%94%e8%ae%ad%e7%bb%83%e8%87%aa%e9%80%82%e5%ba%94%e5%af%86%e5%ba%a6%e6%8e%a7%e5%88%b6%e6%98%af%e7%81%b5%e9%ad%82&#34; &gt;五、训练：自适应密度控制是灵魂&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e5%85%ad%e4%b8%8e-nerf-%e7%9a%84%e8%8c%83%e5%bc%8f%e5%af%b9%e5%86%b3&#34; &gt;六、与 NeRF 的范式对决&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e4%b8%833dgs-%e7%9a%84%e5%85%ad%e5%a4%a7%e7%bc%ba%e9%99%b7&#34; &gt;七、3DGS 的六大缺陷&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e5%85%ab%e6%80%bb%e7%bb%93&#34; &gt;八、总结&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一为什么需要-3dgs&#34;&gt;一、为什么需要 3DGS
&lt;/h2&gt;&lt;p&gt;新视角合成的目标是：&lt;strong&gt;给一组同一场景的多视角照片，训练出一个能从任意新视角渲染出照片级图像的模型&lt;/strong&gt;。它的应用横跨 VR/AR、影视特效、数字孪生、自动驾驶仿真、文物数字化等领域。&lt;/p&gt;
&lt;p&gt;这条路上有两个关键节点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;NeRF（2020 ECCV）&lt;/strong&gt;：用一个 MLP 把 &lt;code&gt;(位置, 方向)&lt;/code&gt; 映射到 &lt;code&gt;(颜色, 密度)&lt;/code&gt;，再通过体渲染方程积出像素颜色。质量惊艳，但&lt;strong&gt;每渲染一张图要几秒到几十秒&lt;/strong&gt;——实时化遥不可及。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3DGS（2023 SIGGRAPH）&lt;/strong&gt;：放弃隐式 MLP，改用一组&lt;strong&gt;显式 3D 高斯椭球&lt;/strong&gt;直接表示场景，搭配&lt;strong&gt;定制化可微光栅化器&lt;/strong&gt;，把渲染压到 &lt;strong&gt;100+ FPS&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;为什么 3DGS 这么关键？因为它证明了：&lt;strong&gt;高质量新视角合成不一定要走&amp;quot;体渲染积分&amp;quot;的老路，直接用一组显式基元做 α 混合就够了。&lt;/strong&gt; 这一思路转变让 3DGS 的生态在两年内爆发式生长。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二整体流程一览&#34;&gt;二、整体流程一览
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/3dgs-pipeline.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/3dgs-pipeline.svg&#34; alt=&#34;3DGS 整体流程：从一组照片到实时新视角渲染&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;3DGS 的完整生命周期可以拆成 5 步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;输入图像&lt;/strong&gt;：100~300 张多视角照片，相机姿态已知（通常由 COLMAP 估计）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SfM 初始化&lt;/strong&gt;：用运动恢复结构（SfM）得到稀疏点云，作为高斯椭球的初始位置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;构建 3D 高斯集合&lt;/strong&gt;：每个稀疏点扩展为一个完整的 3D 高斯（位置 + 协方差 + 颜色 + 不透明度）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练优化&lt;/strong&gt;：随机梯度下降，配合&lt;strong&gt;自适应密度控制&lt;/strong&gt;（克隆 / 分裂 / 剪枝）调整高斯数量。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实时渲染&lt;/strong&gt;：用专用光栅化器把所有高斯投影、排序、α 混合成像素。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;一个关键认知：训练完成后得到的只是一个 &lt;code&gt;.ply&lt;/code&gt; 文件，&lt;strong&gt;推理阶段不需要任何神经网络&lt;/strong&gt;，整个渲染就是 GPU 上的几何运算 + 颜色混合。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;三表示一个高斯长什么样&#34;&gt;三、表示：一个高斯长什么样
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/gaussian-anatomy.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/gaussian-anatomy.svg&#34; alt=&#34;单个 3D 高斯的解剖：5 类可优化属性&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;3DGS 不用体素、不用 MLP，而是把场景表示为&lt;strong&gt;百万级个 3D 高斯椭球&lt;/strong&gt;。每个高斯有 5 类可优化属性：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;属性&lt;/th&gt;
&lt;th&gt;含义&lt;/th&gt;
&lt;th&gt;参数量&lt;/th&gt;
&lt;th&gt;激活方式&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;位置 μ&lt;/td&gt;
&lt;td&gt;高斯椭球的中心&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;直接优化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;缩放 s&lt;/td&gt;
&lt;td&gt;椭球的半轴长度&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;指数激活（保证非负）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;旋转 q&lt;/td&gt;
&lt;td&gt;椭球的朝向（四元数）&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;归一化后使用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;不透明度 α&lt;/td&gt;
&lt;td&gt;渲染时的&amp;quot;权重&amp;quot;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Sigmoid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;颜色（SH 系数）&lt;/td&gt;
&lt;td&gt;视角相关颜色&lt;/td&gt;
&lt;td&gt;48（3 阶 SH）&lt;/td&gt;
&lt;td&gt;球谐求值&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;31-协方差的参数化技巧&#34;&gt;3.1 协方差的参数化技巧
&lt;/h3&gt;&lt;p&gt;直接学习一个 3×3 的协方差矩阵 Σ 有两个坑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;必须是&lt;strong&gt;半正定&lt;/strong&gt;的，否则不是合法的协方差；&lt;/li&gt;
&lt;li&gt;9 个参数冗余，优化困难。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;3DGS 的做法是把它&lt;strong&gt;分解为缩放 s 和旋转 R&lt;/strong&gt;：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Σ = R · diag(s) · diag(s)ᵀ · Rᵀ
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样只需要 7 个参数（3 个缩放 + 4 个四元数），且&lt;strong&gt;自动半正定&lt;/strong&gt;，对优化器友好。&lt;/p&gt;
&lt;h3 id=&#34;32-为什么用球谐sh而不是直接存-rgb&#34;&gt;3.2 为什么用球谐（SH）而不是直接存 RGB？
&lt;/h3&gt;&lt;p&gt;真实世界里，&lt;strong&gt;同一个点从不同角度看，颜色是不一样的&lt;/strong&gt;——金属的高光、玻璃的反射、毛发的次表面散射都是典型。直接存一个 RGB 就丢失了这种视角依赖。&lt;/p&gt;
&lt;p&gt;3DGS 借鉴 NeRF 的做法，用**球谐函数（Spherical Harmonics, SH）**来表达颜色——给定观察方向 d，通过 SH 基函数求值得到 RGB。原论文用 3 阶 SH（共 48 个系数），足以刻画大多数视角相关的着色效果。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;四渲染从-3d-椭球到像素&#34;&gt;四、渲染：从 3D 椭球到像素
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/rasterization-flow.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/rasterization-flow.svg&#34; alt=&#34;可微光栅化：3D 高斯如何变成像素&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;3DGS 真正的杀手锏是它的&lt;strong&gt;可微光栅化器&lt;/strong&gt;。它把传统图形学的高性能光栅化流水线，改造成了完全可微的版本。整个过程分 4 步：&lt;/p&gt;
&lt;h3 id=&#34;41-投影3d-高斯--2d-高斯&#34;&gt;4.1 投影：3D 高斯 → 2D 高斯
&lt;/h3&gt;&lt;p&gt;3D 高斯在世界坐标系下是一个椭球。渲染时，要把它&amp;quot;压&amp;quot;到屏幕空间。&lt;/p&gt;
&lt;p&gt;数学上，这个过程是通过&lt;strong&gt;投影雅可比矩阵 J&lt;/strong&gt;完成的：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Σ&amp;#39; = J · W · Σ · Wᵀ · Jᵀ
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;其中 W 是世界到相机的变换，J 是投影的局部线性化。Σ&amp;rsquo; 就是 2D 屏幕空间下的协方差矩阵——一个 2×2 的椭圆。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/splatting-concept.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/splatting-concept.svg&#34; alt=&#34;Splatting 是什么：3D 椭球&amp;amp;quot;压扁&amp;amp;quot;成 2D 色块&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这一步是 3DGS 与传统体渲染最大的不同：&lt;strong&gt;它不是采样射线，而是直接把所有高斯&amp;quot;喷&amp;quot;（splat）到屏幕上&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;42-划分-tile&#34;&gt;4.2 划分 Tile
&lt;/h3&gt;&lt;p&gt;屏幕被切成 16×16 的网格。每个 2D 高斯根据其覆盖范围，&lt;strong&gt;被分配到一个或多个 Tile&lt;/strong&gt;。同时做两件事剔除：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;视锥剔除&lt;/strong&gt;：完全在视锥外的高斯直接丢弃；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;远处裁剪&lt;/strong&gt;：太远的高斯直接剔除（避免无效贡献）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;43-深度排序&#34;&gt;4.3 深度排序
&lt;/h3&gt;&lt;p&gt;α 混合必须&lt;strong&gt;从前到后&lt;/strong&gt;进行（否则会有错误的遮挡）。3DGS 在每个 Tile 内对高斯按视点距离排序——这里用了一个 GPU 友好的&lt;strong&gt;单 pass 基数排序&lt;/strong&gt;，是速度的关键之一。&lt;/p&gt;
&lt;h3 id=&#34;44-alpha-混合&#34;&gt;4.4 Alpha 混合
&lt;/h3&gt;&lt;p&gt;每个像素的颜色由所有覆盖它的高斯按顺序累积：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C = Σᵢ  cᵢ · αᵢ · ∏ⱼ&amp;lt;ᵢ (1 − αⱼ)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cᵢ&lt;/code&gt;：第 i 个高斯在该视角下的颜色（由 SH 求值）；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;αᵢ&lt;/code&gt;：不透明度 × 该像素在 2D 高斯分布下的取值；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Tᵢ = ∏ⱼ&amp;lt;ᵢ (1 − αⱼ)&lt;/code&gt;：透射率，表示&amp;quot;剩余多少光&amp;quot;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;优化技巧&lt;/strong&gt;：当 &lt;code&gt;Tᵢ&lt;/code&gt; 趋近 0 时，说明后续高斯被完全遮挡，可以直接 &lt;code&gt;break&lt;/code&gt; 跳过——大幅节省渲染开销。&lt;/p&gt;
&lt;h3 id=&#34;45-为什么这套渲染管线这么快&#34;&gt;4.5 为什么这套渲染管线这么快？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;不走神经网络前向&lt;/strong&gt;，没有 MLP 计算；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tile 并行&lt;/strong&gt;：一个 GPU 线程块处理一个 Tile，并行度极高；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提前终止&lt;/strong&gt;：T→0 时跳过被遮挡高斯。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这就是为什么 3DGS 能在 1080p 下跑到 100+ FPS，而 NeRF 同尺寸场景只能跑几秒一张。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;五训练自适应密度控制是灵魂&#34;&gt;五、训练：自适应密度控制是灵魂
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/adaptive-control.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/adaptive-control.svg&#34; alt=&#34;自适应密度控制：3DGS 训练的灵魂&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;只靠 SGD 优化高斯属性是&lt;strong&gt;不够的&lt;/strong&gt;——SfM 给出的初始点云非常稀疏（几万个点），无法表达复杂场景。3DGS 的核心创新之一是&lt;strong&gt;自适应密度控制（Adaptive Density Control）&lt;/strong&gt;：每 100 次迭代触发一次密度调整，根据每个高斯的&amp;quot;位置梯度&amp;quot;和&amp;quot;大小&amp;quot;决定下一步动作。&lt;/p&gt;
&lt;h3 id=&#34;51-三种密度操作&#34;&gt;5.1 三种密度操作
&lt;/h3&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;操作&lt;/th&gt;
&lt;th&gt;触发条件&lt;/th&gt;
&lt;th&gt;物理含义&lt;/th&gt;
&lt;th&gt;具体动作&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;克隆 Clone&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;小高斯 + 位置梯度大&lt;/td&gt;
&lt;td&gt;欠重建区域，需要更多高斯&lt;/td&gt;
&lt;td&gt;复制一份并随机位移&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;分裂 Split&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;大高斯 + 位置梯度大&lt;/td&gt;
&lt;td&gt;一个高斯覆盖太大，需细分&lt;/td&gt;
&lt;td&gt;替换为 2 个更小的高斯&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;剪枝 Prune&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;α &amp;lt; ε / 过大 / SH 重置&lt;/td&gt;
&lt;td&gt;该高斯对渲染几乎没贡献&lt;/td&gt;
&lt;td&gt;直接删除&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;位置梯度大&lt;/strong&gt;意味着：这个高斯&amp;quot;想要&amp;quot;往某个方向移动，说明当前几何表示不到位。3DGS 用这个信号判断哪些区域需要更精细的几何。&lt;/p&gt;
&lt;h3 id=&#34;52-训练损失&#34;&gt;5.2 训练损失
&lt;/h3&gt;&lt;p&gt;3DGS 用一个简单的组合损失：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;L = (1 − λ) · L1 + λ · D-SSIM
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;L1&lt;/code&gt;：像素级绝对误差，保证整体颜色准确；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;D-SSIM&lt;/code&gt;：结构相似度的 1-SSIM 版本，保证结构和感知质量；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;λ = 0.2&lt;/code&gt; 在大多数场景下表现良好。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;53-训练流程&#34;&gt;5.3 训练流程
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;用 SfM 稀疏点云初始化每个高斯的位置；&lt;/li&gt;
&lt;li&gt;高斯大小、旋转、颜色初始值用启发式设定（如平均距离）；&lt;/li&gt;
&lt;li&gt;每 100 步触发一次密度控制；&lt;/li&gt;
&lt;li&gt;训练 30000 步左右收敛，单场景约 30~45 分钟。&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;这套机制的妙处在于：&lt;strong&gt;初始只有几万个高斯，最终能膨胀到几百万个&lt;/strong&gt;——数量自动匹配场景复杂度，比固定分辨率网格灵活得多。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;六与-nerf-的范式对决&#34;&gt;六、与 NeRF 的范式对决
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/3dgs-vs-nerf.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/3dgs-vs-nerf.svg&#34; alt=&#34;NeRF vs 3DGS：两种范式的对决&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;3DGS 与 NeRF 经常被放在一起对比，因为它们解决的是同一类问题。这里做一个全面的对照：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;NeRF&lt;/th&gt;
&lt;th&gt;3DGS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;表示方式&lt;/td&gt;
&lt;td&gt;隐式（MLP）&lt;/td&gt;
&lt;td&gt;显式（高斯集合）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;模型大小&lt;/td&gt;
&lt;td&gt;紧凑（MB 级）&lt;/td&gt;
&lt;td&gt;庞大（数百 MB ~ GB）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;渲染速度&lt;/td&gt;
&lt;td&gt;慢（秒级 / 张）&lt;/td&gt;
&lt;td&gt;快（100+ FPS）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;训练时间&lt;/td&gt;
&lt;td&gt;几小时&lt;/td&gt;
&lt;td&gt;30~45 分钟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;几何平滑性&lt;/td&gt;
&lt;td&gt;平滑，无悬浮&lt;/td&gt;
&lt;td&gt;容易产生悬浮物&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;可编辑性&lt;/td&gt;
&lt;td&gt;困难&lt;/td&gt;
&lt;td&gt;直接操作高斯即可&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;视角相关性&lt;/td&gt;
&lt;td&gt;强（依赖方向 d）&lt;/td&gt;
&lt;td&gt;强（依赖 SH）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;像素独立计算&lt;/td&gt;
&lt;td&gt;是（射线采样）&lt;/td&gt;
&lt;td&gt;否（Tile 共享排序）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;核心差异在渲染范式&lt;/strong&gt;：NeRF 走&amp;quot;逐像素射线采样 + 体渲染积分&amp;quot;，每个像素都要做几十~几百次 MLP 前向；3DGS 走&amp;quot;Tile + α 混合&amp;quot;，所有高斯一次性光栅化到屏幕。&lt;/p&gt;
&lt;p&gt;3DGS 之所以能赢下实时性，本质上是把&amp;quot;每像素都要重复做的昂贵计算&amp;quot;换成了&amp;quot;一次性光栅化的廉价操作&amp;quot;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;七3dgs-的六大缺陷&#34;&gt;七、3DGS 的六大缺陷
&lt;/h2&gt;&lt;p&gt;&lt;a href=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/limitations-overview.svg&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;img src=&#34;https://SymphonyW.github.io/p/3d-gaussian-splatting-principlesrebuilding-the-world-with-millions-of-gaussians-and-its-cost/limitations-overview.svg&#34; alt=&#34;3DGS 的六大缺陷全景&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;3DGS 并不完美。事实上，原论文本身就公开承认了这些局限，而过去两年大量后续工作都是围绕它们做&amp;quot;打补丁&amp;quot;。下面详细展开六大缺陷。&lt;/p&gt;
&lt;h3 id=&#34;71-存储爆炸&#34;&gt;7.1 存储爆炸
&lt;/h3&gt;&lt;p&gt;这是最显眼的问题。一个 3D 高斯需要存储：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;位置 3 + 缩放 3 + 旋转 4 + 不透明度 1 + SH(3 阶) 48 = &lt;strong&gt;59 个 float ≈ 236 字节&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个无边界场景通常有 &lt;strong&gt;百万级&lt;/strong&gt;高斯，单场景动辄 200~700 MB。这意味着：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;移动端 / Web 端难以部署&lt;/strong&gt;：浏览器加载一个 500MB 的 &lt;code&gt;.ply&lt;/code&gt; 不现实；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;存储成本飙升&lt;/strong&gt;：一个数字孪生项目要存数百个场景，就是几十~几百 GB；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;传输带宽吃紧&lt;/strong&gt;：流式渲染 4K 场景对网络要求极高。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;因此，压缩不是可选优化，而是 3DGS 从论文 demo 走向 Web、移动端和大规模资产库时必须解决的工程问题。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;代表后续工作&lt;/strong&gt;：LightGaussian（剪枝 + SH 蒸馏 + VQ 量化）、CompGS、SOG、EulerGS、3DGS 量化剪枝等，目标压缩比 10×~50×。&lt;/p&gt;
&lt;h3 id=&#34;72-训练不算快&#34;&gt;7.2 训练不算快
&lt;/h3&gt;&lt;p&gt;虽然 3DGS 训练比 NeRF 快很多，但 30~45 分钟 / 场景在工业场景仍偏慢。更严重的问题是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;显存占用大&lt;/strong&gt;：训练时百万高斯需要 24GB+ 显存；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;密度膨胀期显存飙升&lt;/strong&gt;：分裂操作会让高斯数量在某个阶段爆炸式增长；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;难以分钟级训练&lt;/strong&gt;：交互式应用（如实时重建）几乎不可行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;代表后续工作&lt;/strong&gt;：Mip-Splatting（抗锯齿）、AbsGrad（绝对梯度策略，加速收敛）、Warm-start 初始化等。&lt;/p&gt;
&lt;h3 id=&#34;73-无法泛化&#34;&gt;7.3 无法泛化
&lt;/h3&gt;&lt;p&gt;3DGS 必须&lt;strong&gt;每场景独立训练&lt;/strong&gt;，不能&amp;quot;喂一张新图就出模型&amp;quot;。少样本（few-shot）场景下，高斯密度控制很容易崩塌——没有足够的视角监督，高斯会胡乱增长。&lt;/p&gt;
&lt;p&gt;这与生俱来的限制让 3DGS 难以应用在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AR 实时建模（用户拍几张照就出模型）；&lt;/li&gt;
&lt;li&gt;机器人感知（环境快速重建）；&lt;/li&gt;
&lt;li&gt;大规模城市采集（场景太多，逐个训练不现实）。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;代表后续工作&lt;/strong&gt;：PixelSplat、MVSplat、Splatter Image、LRM-Gauss 等——这些工作用 transformer 前馈网络直接从图像预测高斯参数，1 秒推理出模型，但质量仍不及原始 3DGS。&lt;/p&gt;
&lt;h3 id=&#34;74-视觉伪影&#34;&gt;7.4 视觉伪影
&lt;/h3&gt;&lt;p&gt;3DGS 的渲染常见几类伪影：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;悬浮高斯（Floaters / &amp;ldquo;飞虫&amp;rdquo;）&lt;/strong&gt;：训练过程中没有被剪掉的离群高斯，会在视角移动时出现在场景中&amp;quot;飘&amp;quot;的小色块；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;弹出&amp;quot;伪影（Popping）&lt;/strong&gt;：视角切换时某些高斯突然出现/消失，因为密度控制在不同视角下表现不一致；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;缩放锯齿&lt;/strong&gt;：放大场景时，2D 高斯投影的离散性导致锯齿严重；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;远距离模糊&lt;/strong&gt;：远处高斯采样不足，渲染时模糊。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些问题大多源于一个根本原因：&lt;strong&gt;3DGS 用&amp;quot;离散点集 + 各向异性高斯&amp;quot;近似连续场景，在高频细节和反走样处理上天生不如体渲染&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代表后续工作&lt;/strong&gt;：Mip-Splatting（3D 平滑滤波 + 屏幕空间膨胀，是当前抗锯齿的事实标准）、3DGS 正则化、深度一致性损失等。&lt;/p&gt;
&lt;h3 id=&#34;75-动态场景弱&#34;&gt;7.5 动态场景弱
&lt;/h3&gt;&lt;p&gt;原版 3DGS 只支持&lt;strong&gt;静态场景&lt;/strong&gt;。一旦场景中有运动物体，或者要做长视频重建，问题就出现了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高斯没有时间维度，无法表达运动；&lt;/li&gt;
&lt;li&gt;直接逐帧训练会导致帧间不一致（&amp;ldquo;闪烁&amp;rdquo;）；&lt;/li&gt;
&lt;li&gt;长视频的存储和计算成本爆炸。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;代表后续工作&lt;/strong&gt;：4DGS、Deformable 3DGS（用形变场建模时间）、Dynamic 3D Gaussians、SC-GS（用控制网格驱动高斯运动）等。&lt;/p&gt;
&lt;h3 id=&#34;76-鲁棒性弱&#34;&gt;7.6 鲁棒性弱
&lt;/h3&gt;&lt;p&gt;3DGS 强依赖 &lt;strong&gt;SfM 点云质量&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;纹理稀疏区域（如白墙、天空）SfM 给不出点，3DGS 重建直接失败；&lt;/li&gt;
&lt;li&gt;反光、透明物体 SfM 误差大，3DGS 跟着出错；&lt;/li&gt;
&lt;li&gt;大场景下 SfM 漂移，导致重建几何偏差。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;此外，3DGS 对&lt;strong&gt;初始化超参数&lt;/strong&gt;也比较敏感——初始高斯大小、密度控制阈值等都需要场景相关调参。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;代表后续工作&lt;/strong&gt;：无 SfM 初始化（如随机点云、均匀采样）、深度监督（用 monodepth 先验）、GS-SLAM 类方法（在线增量重建）等。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;八总结&#34;&gt;八、总结
&lt;/h2&gt;&lt;h3 id=&#34;81-3dgs-一句话总结&#34;&gt;8.1 3DGS 一句话总结
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;3DGS = 显式高斯表示 + 可微光栅化 + 自适应密度控制。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;它把&amp;quot;高质量新视角合成&amp;quot;从&amp;quot;实验室 demo&amp;quot;推向了&amp;quot;实时交互&amp;rdquo;，是过去两年计算机视觉最有影响力的工作之一。&lt;/p&gt;
&lt;h3 id=&#34;82-它的核心贡献&#34;&gt;8.2 它的核心贡献
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;表示&lt;/strong&gt;：用百万级 3D 高斯显式建模场景，可微可优化；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;渲染&lt;/strong&gt;：定制可微光栅化器，把神经渲染速度提升两个数量级；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;训练&lt;/strong&gt;：自适应密度控制（克隆 / 分裂 / 剪枝）让表示自适应场景复杂度。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;83-它的根本代价&#34;&gt;8.3 它的根本代价
&lt;/h3&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;速度&lt;/th&gt;
&lt;th&gt;→&lt;/th&gt;
&lt;th&gt;牺牲了存储（数百 MB / 场景）&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;显式性&lt;/td&gt;
&lt;td&gt;→&lt;/td&gt;
&lt;td&gt;牺牲了几何平滑性（悬浮伪影）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;自适应&lt;/td&gt;
&lt;td&gt;→&lt;/td&gt;
&lt;td&gt;牺牲了训练稳定性（对初始化敏感）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;实时性&lt;/td&gt;
&lt;td&gt;→&lt;/td&gt;
&lt;td&gt;牺牲了泛化能力（每场景重训）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;每一次&amp;quot;快&amp;quot;的背后，都对应着一个&amp;quot;慢&amp;quot;的代价——这正是 3DGS 生态持续生长的动力。理解了这些缺陷，你就能更准确地选择何时用 3DGS、何时该走 NeRF 路线、何时该用混合方案。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;参考资料&#34;&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;原论文：&lt;a class=&#34;link&#34; href=&#34;https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;3D Gaussian Splatting for Real-Time Radiance Field Rendering (SIGGRAPH 2023)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;项目主页：&lt;a class=&#34;link&#34; href=&#34;https://github.com/graphdeco-inria/gaussian-splatting&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/graphdeco-inria/gaussian-splatting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mip-Splatting：&lt;a class=&#34;link&#34; href=&#34;https://github.com/nerfstudio-project/gsplat&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/nerfstudio-project/gsplat&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LightGaussian：&lt;a class=&#34;link&#34; href=&#34;https://lightgaussian.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://lightgaussian.github.io/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
