3D Convex Splatting 精读:从小白到博士,彻底拆解 3D Smooth Convexes 如何重塑辐射场渲染

1 阅读29分钟

3D Convex Splatting 精读:从小白到博士,彻底拆解 3D Smooth Convexes 如何重塑辐射场渲染

论文标题:3D Convex Splatting: Radiance Field Rendering with 3D Smooth Convexes
论文链接:3D Convex Splatting 文章定位:论文精读 / 新视角合成 / 3DGS 进阶 / 计算机视觉
适合人群:零基础读者、CV/图形学研究生、准备复现论文的博士生与工程研究人员 在这里插入图片描述


@TOC


一句提示词帮你速通论文

提示词

你现在是一位计算机视觉的博士,请你仔细阅读这篇论文,并将其拆解为小白阶段、硕士阶段、博士阶段。一定要引人入胜,客观具体,且极为详细。小白阶段你需要达到是个傻子都能懂的情况,在硕士阶段你需要达到正常使用一些专业数据,帮助小白从傻子到小专家的突破,在博士阶段你需要仔细拆解整篇论文,把各项细节全部记录,方便后期进行复现,同时促使小专家成为资深大拿

镜像地址,ChatGTP 5.4 Thinking助您深入解析、速通论文

邀请码地址,ChatGTP 5.4 Thinking助您深入解析、速通论文

前言

最近两年,NeRF3D Gaussian Splatting(3DGS) 几乎成了新视角合成领域最热门的方向之一。
它们有一个共同目标:输入多张不同视角的图像,恢复一个可渲染的三维场景表示,并生成任意新视角下的逼真图像。

但是,3DGS 虽然快、效果也很强,却有一个天然缺陷:

它的基本表示单元是 Gaussian(高斯椭球),本质上更像“模糊的小云团”,这类表示天然适合光滑过渡,却不擅长表达平面、棱角、硬边、规整结构

于是,这篇论文提出了一个非常有意思的想法:

既然高斯云团不够擅长表达硬边结构,那为什么不直接换一种 primitive(图元)?

作者给出的答案是:
3D Smooth Convex(3D 平滑凸体) 替代 Gaussian,构造一种全新的 3D Convex Splatting(3DCS) 渲染框架。

这篇文章我会把整篇论文拆成三个层次来讲:

  • 小白阶段:用最直白的语言讲懂论文到底在做什么
  • 硕士阶段:开始引入必要的数学、公式、实验和方法对比
  • 博士阶段:按照“可复现、可推敲、可扩展”的标准,完整拆解论文细节

目标只有一个:

不只是让你“看过这篇论文”,而是让你真正“吃透这篇论文”。


一、小白阶段:把这篇论文讲到“是个傻子都能懂”

1.1 这篇论文到底在解决什么问题?

先别急着看公式,我们先看最本质的问题。

假设你拿着手机,围着一个房间拍了很多张照片。
现在你希望电脑可以做到下面这件事:

  • 理解这个房间大概长什么样
  • 记住桌子、墙、椅子、窗户的位置
  • 然后站在一个你没有拍过的新位置
  • 自动“脑补”出从那个角度看过去的图像

这个任务就叫做:

Novel View Synthesis(新视角合成)

也就是:

根据已有多视图图像,合成一个全新的、没拍过的视角。

NeRF、Mip-NeRF360、Zip-NeRF、3DGS,本质上都在做这件事。


1.2 3DGS 为什么那么火?

因为它快。

NeRF 虽然效果好,但过去最大的问题是:

  • 训练慢
  • 渲染慢
  • 想实时看结果很难

后来 3D Gaussian Splatting(3DGS) 横空出世。
它不再用传统的神经网络慢慢推理,而是直接把场景表示成一堆 3D Gaussian

你可以把一个 Gaussian 想成:

  • 一个有位置的小气团
  • 一个可以拉长、旋转的椭球
  • 自带颜色、透明度
  • 很多很多这样的气团叠起来,就能拼出整个场景

它最大的优点就是:

  • 训练快
  • 渲染快
  • 可以实时

所以 3DGS 一出来就很炸。


1.3 但 3DGS 的问题也非常明显

问题就在它的 primitive 长这样:

一个高斯椭球,本质是一个“柔和扩散的小云团”。

这种形状有一个天然缺点:

  • 它擅长表达柔和、连续、模糊过渡
  • 但不擅长表达平面
  • 不擅长表达硬边
  • 不擅长表达尖角
  • 不擅长表达规则几何结构

比如这些东西它就不太舒服:

  • 墙角
  • 车牌数字边缘
  • 桌面平面
  • 门框
  • 建筑立面
  • 铁轨、窗框、机械边界

为什么?

因为你在本质上是在拿一堆“棉花球”去堆一个“硬纸盒”。

能不能堆出来?
能。

但是会有两个问题:

  • 边缘容易糊
  • 为了拟合方的、平的、硬的结构,你得用很多很多 Gaussian

所以论文作者的动机非常清楚:

既然 3DGS 的基本图元天然是圆润模糊的,那我们就换一种更有几何表达力的图元。


1.4 作者提出了什么?

作者提出的方法叫:

3D Convex Splatting(3DCS)

核心思想一句话概括就是:

3D Smooth Convexes(3D 平滑凸体) 替代 3D Gaussian,作为场景的基本表示单元。

你可以先把 convex 理解成“不会往里凹的形状”。

比如这些都属于凸的:

  • 立方体
  • 四面体
  • 很多多面体
  • 被轻微圆滑过的盒子

而像月牙、回字形、U 型这种有凹进去的,一般就不是凸的。


1.5 为什么凸体比高斯更合适?

因为它更像“几何块”,而不是“气团”。

你可以这么理解:

  • Gaussian:更像一团柔软的棉花
  • Smooth Convex:更像一个边角可以调节软硬程度的积木块

这意味着 convex 有几个天然优势:

(1)它更擅长表达平面

桌面、墙面、盒子面、窗户面,这些都更像“块状结构”,而不是“雾状结构”。

(2)它更擅长表达硬边

车牌、建筑边缘、门框轮廓,这些地方凸体更容易贴住边界。

(3)它通常能用更少 primitive 达到更好表达

不是说“单个 convex 更简单”,而是说:

单个 convex 的形状表达能力更强。

也就是说,一个 convex 往往顶得上多个 Gaussian 一起干活。


1.6 什么叫 smooth convex?

这里最容易把人看晕,所以我直接讲最直观版本。

论文里的 convex 不是一个特别死板、特别硬的多面体。
它是一个 smooth convex,也就是:

边界可以连续调节软硬程度的平滑凸体。

它有两个非常关键的参数:

参数一:δ(delta)

你可以把它理解成:

控制这个凸体的边角到底是圆一点,还是硬一点。

  • δ 小:更圆、更软
  • δ 大:更接近真正的硬凸包,边更硬、角更尖

参数二:σ(sigma)

你可以把它理解成:

控制边界过渡有多“实”,有多“陡”。

  • σ 小:边缘过渡比较柔,像有点雾
  • σ 大:边界更紧、更实、更像实体块

所以:

  • δ 决定形状边角
  • σ 决定边界密度和锐利程度

这个设计非常巧妙,因为作者把“形状是什么样”和“边界有多硬”拆成了两件事。


1.7 它是怎么渲染到图像上的?

还是先讲大白话版本。

假设空间里有很多 convex 块,每个块都有:

  • 位置
  • 形状
  • 大小
  • 颜色
  • 透明度

那么渲染的时候会做什么?

第一步:把 3D 里的块投影到 2D 图像平面

也就是看看这个块在当前视角下投到屏幕上长什么样。

第二步:算这个块在屏幕上覆盖了哪些像素

如果某个像素被这个块覆盖,就让它对该像素颜色有贡献。

第三步:把所有块按远近混合起来

谁在前面,谁挡住后面,最后得到整张图。

这听起来和 3DGS 很像,对吧?

没错,整体渲染骨架和 3DGS 是很像的
真正变化的是:

3DGS 用 Gaussian footprint 覆盖像素,3DCS 用 smooth convex 的 footprint 覆盖像素。


1.8 为什么它还能训练?

因为这整个过程是可微分的

什么意思?

就是它不是瞎调,而是这样做:

  1. 先渲染出一张预测图
  2. 和真实照片比较
  3. 看哪里错了
  4. 把误差反向传回去
  5. 自动调整每个 convex 的参数

被调整的参数包括:

  • 点的位置
  • 形状
  • 大小
  • 颜色
  • 透明度
  • δ
  • σ

于是这些 convex 会慢慢从一个初始的小形状,变成能正确拟合场景的形状。


1.9 这篇论文最直观的价值是什么?

一句话:

它把“高斯云团”换成了“软凸积木块”,于是更适合表达硬边和平面。

你如果只记住这一句,也已经抓住论文 70% 的本质了。


1.10 小白阶段总结

把这篇论文压缩成最通俗的话:

以前 3DGS 用很多“模糊的小云团”拼出一个世界。
这篇论文改成用很多“边界可调的软凸块”去拼这个世界。
所以在建筑、室内、桌子、车牌、门框这些有明显平面和棱角的地方,它更容易拼得准,也更容易拼得清楚。


二、硕士阶段:从“看懂意思”到“能分析论文”

下面进入更专业的版本。


2.1 论文的研究定位

这篇论文位于两个研究脉络的交叉点:

脉络 A:Radiance Field / Novel View Synthesis

目标是:

  • 从多张图像恢复场景表示
  • 支持高质量新视角合成
  • 在质量、训练速度、渲染速度之间找到平衡

脉络 B:Primitive-based Differentiable Rendering

目标是:

  • 用显式图元(点、网格、高斯、几何块等)表示场景
  • 通过可微渲染从图像监督中优化它们

3DCS 的真正创新就在于:

把 convex geometry representation 和 splatting-style real-time rendering 结合起来。

所以这并不是简单地“换个形状”,而是给出了一整套:

  • 表示方式
  • 投影方式
  • footprint 构造方式
  • 渲染方式
  • densification 方式
  • 训练策略

2.2 与 3DGS 的本质差异

3DGS 的 primitive

3DGS 的 primitive 一般包括:

  • 位置
  • 尺度
  • 旋转
  • 协方差
  • opacity
  • SH 颜色系数

它本质上是一个各向异性高斯椭球

3DCS 的 primitive

3DCS 的 primitive 则是一个 由点集定义的 smooth convex,通常包含:

  • 一组 3D 点
  • δ(smoothness)
  • σ(sharpness)
  • opacity
  • SH 颜色系数

所以两者最大的差别是:

  • 3DGS:中心 + 协方差
  • 3DCS:点集 + 凸包 + 平滑边界参数

本质上,3DCS 的 primitive 几何自由度更强。


2.3 smooth convex 的核心公式

这是整篇论文的数学核心之一。

假设一个 convex 由若干个平面定义。
对第 (j) 个平面,点 (p \in \mathbb{R}^3) 到它的 signed distance 表达为:

[ L_j(p) = n_j \cdot p + d_j ]

其中:

  • (n_j):平面外法向
  • (d_j):偏移量

如果我们直接用 hard max,那么点到整个 convex 的“外侧程度”可以写成所有平面距离的最大值。
但 hard max 不够平滑,不利于优化。

所以论文使用 LogSumExp 做平滑近似:

[ \phi(p) = \log \left(\sum_{j=1}^{J} \exp(\delta L_j(p))\right) ]

这里的 δ 控制平滑程度:

  • δ 越大,越接近 hard max,边更硬
  • δ 越小,越平滑

然后再通过 sigmoid 构造 soft indicator:

[ I(p) = \mathrm{Sigmoid}(-\sigma \phi(p)) ]

这里的 σ 控制边界过渡陡峭程度:

  • σ 越大,边界更锐利
  • σ 越小,边界更柔和

这两个公式的意义

你可以把它们理解成:

  • (\phi(p)):点离这个凸体边界“有多近”
  • (I(p)):这个点“有多属于这个凸体”

也就是说,作者把一个本来边界很硬的几何体,变成了一个:

连续、可微、可优化的 soft occupancy primitive

这就是 3DCS 能够被端到端训练的关键。


2.4 为什么不用 plane-based,而改成 point-set based?

这是论文非常关键的一步。

如果直接用一堆平面参数定义 3D convex,那么做 camera projection 会很麻烦。
因为你要处理:

  • 平面与平面的交
  • 投影后轮廓更新
  • 当前视角下的可见边界

这些都不够工程友好。

于是作者做了一个很聪明的设计:

不直接优化平面,而是优化一组 3D 点。

然后:

  1. 将这组点投影到 2D 图像平面
  2. 在 2D 上做 convex hull
  3. 利用 2D 凸包构造 footprint

这样做的好处非常大:

  • 投影天然可微
  • 2D hull 计算更简单
  • 更适合 GPU 并行实现
  • 更适合 splatting 框架

所以你可以理解为:

3DCS 不是在 3D 里硬算一个复杂多面体再去投影,而是先把点投到 2D,再在图像平面上构出这个图元的轮廓。


2.5 渲染公式

论文在像素层面仍然采用 alpha compositing。

对于像素 (q),按深度排序后进行累积混合:

[ C(q) = \sum_{n=1}^{N} c_n o_n I_n(q)\prod_{i=1}^{n-1}(1-o_i I_i(q)) ]

其中:

  • (c_n):第 (n) 个 convex 的颜色
  • (o_n):opacity
  • (I_n(q)):这个 convex 在像素 (q) 上的 indicator 值
  • 前面的乘积项表示前面图元留下来的透射率

这和 3DGS 非常像,只不过:

  • 3DGS 用 Gaussian footprint
  • 3DCS 用 smooth convex footprint

也就是说,渲染骨架继承了 3DGS 的速度优势,而图元覆盖函数发生了本质变化。


2.6 初始化策略

论文初始化非常讲究。

(1)从 SfM 点云初始化

和 3DGS 类似,作者使用 Structure-from-Motion 得到的点云作为初始位置基础。

(2)每个 convex 的点集用 Fibonacci sphere 初始化

这意味着:

  • 初始点不是乱放的
  • 而是在球面上近似均匀分布

这样初始时每个 convex 更像一个小型球壳,方便后续逐步变形。

(3)初始尺度由邻近点距离决定

作者根据最近几个 convex 的平均距离,给每个 primitive 设置初始大小。

直觉上就是:

  • 稠密区域 -> 小一些
  • 稀疏区域 -> 大一些

这让初始化更自适应。


2.7 Loss 设计

论文总损失写成:

[ L = (1-\lambda)L_1 + \lambda L_{D\text{-}SSIM} + \beta L_m ]

其中:

  • (L_1):像素级误差
  • (L_{D\text{-}SSIM}):结构相似性相关损失
  • (L_m):紧凑表示相关正则项
  • (\lambda = 0.2)
  • (\beta = 0.0005)

这个设计表明作者不是只想追像素数值,还在追求:

  • 结构一致性
  • 表示紧凑性

换句话说,作者希望模型不仅“画得对”,还要“用更少的图元画得对”。


2.8 densification 是这篇论文最关键的训练设计之一

3DGS 大家都知道有一个核心机制:densification(增密)
哪里拟合不好,就往哪里加更多 primitive。

但 3DCS 这里有一个重要差异:

作者没有沿用 3DGS 里基于 position gradient 的 densification 方式。

为什么?

因为 convex primitive 的几何结构更复杂。
对它来说:

  • 位置梯度不一定能反映哪里欠拟合
  • 有时候问题不是中心不对,而是形状不对
  • 欠拟合和过拟合往往更体现在边界 sharpness 上

于是作者观察到:

在 under-reconstruction 和 over-reconstruction 区域,sharpness (\sigma) 的 loss 往往都会比较大。

所以他们基于这个信号来做 split。

split 怎么做?

如果一个 convex 是由 (K) 个点定义的,作者会把它拆成 (K) 个更小的 convex

  • 新 convex 更小
  • 每个新 convex 的中心落在原来某个点附近
  • 适当调整 opacity
  • 提高 (\sigma),保持 (\delta) 不变

这个设计的直觉非常强:

一个大块不够精细,那就沿着它自己的几何支撑点,把它拆成多个更小的几何块。

这比简单复制 primitive 更符合几何意义。


2.9 实验结果怎么看?

这部分是很多人最容易“看表不看门道”的地方。

论文在多个数据集上做了实验,包括:

  • Tanks and Temples
  • Deep Blending
  • Mip-NeRF360

总体结果可以总结成三句话:

(1)在结构化强、硬边多的场景里,3DCS 更强

尤其是室内、人造物体、平面丰富的场景。

(2)在自然、杂乱、非规则场景里,优势没那么绝对

例如树叶、草地、灌木等复杂自然纹理区域,Gaussian 往往不一定吃亏。

(3)3DCS 更强调结构 fidelity,不只是像素拟合

有些场景里它视觉更自然,但 PSNR 不一定最高,因为 PSNR 常常偏好更模糊的结果。

这其实恰恰说明:

3DCS 的优势不只是“数值更高”,而是它在几何边界和结构表达上更有潜力。


2.10 室内为什么更强,室外为什么不一定?

论文的室内/室外对比非常有洞察力。

室内场景常见特点

  • 墙面
  • 地板
  • 桌面
  • 柜子
  • 门框
  • 规则边缘
  • 平整结构

这些都非常适合 convex 去表达。

室外自然场景常见特点

  • 树叶
  • 草丛
  • 灌木
  • 不规则遮挡
  • 高频但无明显刚性边界的纹理

这些内容用 Gaussian 这种“柔和覆盖核”去拟合,有时反而更自然。

所以 3DCS 并不是“全场景无脑吊打 3DGS”,而是:

在几何结构更明确的场景中,它更有优势。

这才是一个成熟的论文应该有的结论边界。


2.11 硕士阶段总结

如果你要用一段比较专业、但又不至于太学究气的话来总结这篇论文,可以这样说:

3D Convex Splatting 提出了一种基于 smooth convex primitive 的显式辐射场表示方法。
它通过点集定义 convex、在图像平面构造可微 convex footprint,并沿用 splatting 风格的快速 alpha compositing,实现了兼顾几何表达力与实时渲染效率的新视角合成框架。
相较 3DGS,它在室内和结构化场景中更擅长表达平面、硬边和规则几何,并能以更少 primitive 获得更优感知质量。


三、博士阶段:逐段拆解论文,按“可复现 + 可研究”的标准吃透

下面进入最细的一层。
如果你准备复现、做组会汇报、写 related work,甚至把这篇论文继续做成自己的研究方向,这一部分最关键。


3.1 论文的核心命题到底是什么?

很多人读完论文会说:

这篇文章就是把 Gaussian 换成 Convex。

这句话不算错,但太浅了

更准确的说法是:

这篇论文重新定义了 radiance field 中 primitive 的设计空间。
它证明:只要 primitive 具备更强的几何表达能力,同时仍能高效、可微、可光栅化,那么就可以在结构化场景中突破 Gaussian 的表达上限。

所以这篇论文真正挑战的不是某个小技巧,而是一个默认假设:

为什么 radiance field 一定要用 Gaussian 作为基本图元?

作者给出的答案是:
不一定。


3.2 从 representation 的角度看,这篇论文做了什么?

它做了三层替换:

第一层:primitive 替换

把 3D Gaussian 替换成 3D Smooth Convex。

第二层:footprint 替换

把 Gaussian 在图像上的二维 footprint,替换成 convex hull 对应的 soft indicator footprint。

第三层:densification 逻辑替换

把基于位置梯度的 split/clone 逻辑,替换成更适用于凸体的几何式细分策略。

所以 3DCS 并不是某个单点 trick,而是:

从 primitive、渲染、优化三层同时重做。


3.3 smooth convex 的本体论意义

从研究角度看,smooth convex 不是简单的 SDF,也不是标准 density field。
它更像是一种:

soft occupancy primitive

它兼具三种角色:

(1)几何角色

它代表一个可变形的局部凸体。

(2)渲染角色

它在图像平面上产生一个可微的覆盖区域。

(3)优化角色

它的形状边界、过渡强度都可通过参数学习。

这使得它和 Gaussian 有根本不同:

  • Gaussian 更像一个局部的模糊核
  • Convex 更像一个局部的几何部件

这也是为什么作者会强调:

3DCS 学到的不只是“能渲染图像的粒子”,而是更有物理含义的三维部件式表示。


3.4 为什么 point-set based representation 很关键?

这一步是整篇论文能否落地的工程核心。

如果用 plane-based convex

你需要处理:

  • 3D 平面与平面的交
  • 投影后可见轮廓
  • 视角变化时轮廓重组
  • 更复杂的几何约束

这对实时系统非常不友好。

改成 point-set based 后

流程立刻清晰很多:

  1. 保存一组 3D 点
  2. 用相机模型投影到 2D
  3. 在 2D 做 convex hull
  4. 由 hull 边构造 signed distance
  5. 最后得到 soft indicator

换句话说,作者做了一次非常成功的问题重构:

把“3D 凸体投影问题”转化成了“2D 点集凸包问题”。

这不仅让计算更高效,也让 GPU 并行实现更自然。


3.5 这里有没有潜在的不光滑问题?

有,而且这个问题非常值得博士阶段注意。

因为 convex hull 的顶点集合不是固定的。
随着训练过程点的位置变化,谁是 hull vertex、谁不是 hull vertex,可能会发生离散切换。

这意味着什么?

整个系统虽然总体是“可微”的,但严格来说,它更接近 piecewise differentiable,而不是全局严格光滑。

也就是说:

  • 在大多数时候梯度是稳定可传的
  • 但在 hull 拓扑发生变化的瞬间,可能会出现不连续性或不稳定性

论文把这套流程实现成了可训练的 CUDA 管线,这说明工程上是能跑通的。
但从理论上,这里依然是一个潜在研究点。


3.6 δ 和 σ 的角色分离为什么高级?

这是我个人认为这篇论文非常漂亮的设计之一。

很多几何表示方法只用一个参数控制“边界软硬”,但这篇论文明确分成两个维度:

δ:控制几何边角近似

它决定的是:

  • convex 的边是不是更像直边
  • 顶点是不是更尖
  • 形状是不是更接近真实凸包

σ:控制 radiance field 边界陡峭度

它决定的是:

  • 边界过渡是柔还是硬
  • 体是“软雾感”还是“实心感”

这两个维度分开后,primitive 的建模自由度大大提高。

比如你可以做到:

  • 几何上很方,但边界有一点柔和过渡
  • 几何上偏圆,但边界仍然很“实”

这在单参数系统里很难兼顾。

进一步研究方向

这也自然引出很多研究问题:

  • δ 是否可以变成 per-edge
  • σ 是否可以变成 spatially varying
  • 能否让 δ / σ 和材质、视角依赖关联起来
  • 能否学出不同 semantic region 的不同边界风格

所以这两个参数不只是“调得好不好看”,而是很可能构成一个新研究方向的接口。


3.7 渲染深度排序的近似性

论文在渲染时通常会按 primitive 中心的深度做排序,然后 alpha compositing。
这和 3DGS 非常接近,优点是:

  • 容易并行
  • 工程上成熟

但从复现和研究角度,你必须意识到这里有近似。

因为一个 convex 可能:

  • 很长
  • 很扁
  • 横跨较大的深度范围

这时如果只按中心排序,可能会出现:

  • 局部遮挡不精确
  • 交错几何处混合错误
  • 复杂边缘处的 compositing bias

论文的目标是实时渲染,因此这种近似完全合理。
但如果你之后想把 3DCS 做到更高质量、更强几何一致性,这一块是可挖的。


3.8 densification 机制的研究价值到底在哪里?

这是我认为整篇论文最值得继续研究的一块。

作者发现:

对 convex primitive 来说,position gradients 并不能可靠地告诉系统哪里该增密。

为什么?

因为 convex 的误差往往不是“你中心偏了”,而是:

  • 你形状不对
  • 你边界不对
  • 你覆盖范围不对
  • 你太大了,或者太粗了

于是他们观察 sharpness 相关信号,并让 primitive 沿着自己的点集支撑结构被拆分。

这意味着 densification 的逻辑从:

  • 位置驱动

变成了:

  • 几何表达不足驱动

这是一种很深的变化。

你甚至可以把它理解为:

3DGS 的增密更像局部采样细化;
3DCS 的增密更像几何部件递归分解。

这个思想非常有研究潜力。


3.9 参数效率为什么比“单看 primitive 数量”更重要?

很多人容易被“更少 primitive”吸引,但真正更重要的是:

在相似参数预算下,谁的表达能力更强。

因为一个 convex 的参数其实并不一定比一个 Gaussian 少。
它有多个点,还有 δ、σ、opacity、SH 系数。

所以论文真正想证明的不是:

我每个 primitive 更便宜。

而是:

我每个 primitive 更有表达力。

这意味着 3DCS 在参数效率上的提升,本质上是:

更高质量的 basis element(基函数/基图元)

这对后续很多方向都非常重要,例如:

  • hybrid primitive 系统
  • learned primitive selection
  • scene-adaptive representation
  • geometry-aware radiance basis design

3.10 为什么作者说 3DCS 更“physically meaningful”?

这是这篇论文很有野心的一句话。

因为 Gaussian 在很多时候更像一种“图像拟合粒子”,
你可以用它把图像凑出来,但它未必让人感觉:

“这真是世界里的一个有意义的局部几何块。”

而 convex 不一样。
一个局部凸块天然更容易对应:

  • 桌角
  • 柜体边缘
  • 一块平面
  • 某个刚性部件
  • 某个物体的局部体积

所以 3DCS 的潜在价值不止在 novel view synthesis,还在于:

  • 更易解释的 3D scene representation
  • 更适合编辑的三维表示
  • 更适合物体级分解
  • 更适合几何先验融合
  • 更可能服务机器人、仿真、交互式编辑

这也是为什么我会说:

3DCS 不是一个单纯提指标的论文,它其实是在往“结构化三维表示”方向走。


3.11 复现这篇论文,你应该怎么做?

下面给一个非常实战化的路线。


3.11.1 第一阶段:搭建基础系统

你需要先有一个类似 3DGS 的框架,包括:

  • 数据读取
  • 相机参数处理
  • SfM 点云初始化
  • primitive 参数管理
  • CUDA rasterizer
  • SH 颜色计算
  • alpha compositing
  • 优化器与训练循环

如果这些都没有,直接从零复现难度会很高。


3.11.2 第二阶段:定义 convex primitive

你需要为每个 primitive 存这些信息:

  • (K) 个 3D 点
  • (\delta)
  • (\sigma)
  • opacity
  • SH 系数

如果走论文默认设置,通常可以先用:

  • (K = 6)
  • SH degree = 3

因为论文里 K=6 基本已经是一个比较稳妥的 sweet spot。


3.11.3 第三阶段:实现前向渲染

每个 iteration 里,对每个 primitive 大致做:

  1. 取出 (K) 个 3D 点
  2. 投影到当前相机视角的 2D 平面
  3. 计算 2D convex hull
  4. 提取 hull 边界线
  5. 对 tile 内像素计算 signed distance
  6. 用 LogSumExp + sigmoid 得到 indicator
  7. 按深度排序
  8. 做 alpha blending

这里最耗工程的部分不是公式,而是:

  • hull 计算
  • tile culling
  • per-pixel line distance 评估
  • sorting 和 blend 的 CUDA 优化

3.11.4 第四阶段:实现反向传播与训练稳定性

你需要重点检查这些梯度链条:

  • 3D 点 -> 2D 投影
  • hull 边界 -> signed distance
  • (\delta) 对 LogSumExp 的影响
  • (\sigma) 对 sigmoid 的影响
  • opacity 的数值范围
  • SH 系数对颜色的影响

比较容易出问题的地方包括:

  • 数值爆炸
  • 边界梯度抖动
  • hull vertex 切换导致的不稳定
  • mixed precision 下 exponent 溢出

3.11.5 第五阶段:实现 densification 和 pruning

这个阶段是复现成败的关键之一。

你需要:

  • 设计 split 触发标准
  • 实现一个 convex -> (K) 个 smaller convex
  • 处理新 primitive 的初始化
  • 重新分配 opacity / sharpness
  • 做低贡献 primitive 的剪枝

这里如果实现得粗糙,模型很可能会:

  • primitive 爆炸
  • 内存失控
  • 收敛很慢
  • 或者拟合效果不稳定

3.12 复现中的隐藏坑

坑一:Graham Scan 不是你想的那么简单

理论上 convex hull 很简单,
但放到训练里,你还要面对:

  • 批量处理
  • 不同点数
  • 顶点重排
  • 可微性边界
  • GPU 并发

这不是一个“调个库函数就结束”的问题。

坑二:LogSumExp 数值稳定性

如果 δ 或 σ 太大,指数项很容易炸。
你一定要做:

  • 稳定版 log-sum-exp
  • 参数初始化控制
  • 必要的裁剪或 reparameterization

坑三:primitive 排序与 blending

convex footprint 不是 Gaussian footprint,
其 bbox 和真实覆盖区域差别可能更大,
这会影响 tile-based culling 的效率。

坑四:densification schedule

很多时候论文主文不会把全部阈值写全。
实际复现时,split 频率、阈值、何时 stop densification,往往决定最终效果。


3.13 这篇论文有哪些明确局限?

任何值得认真读的论文,都不能只讲优点。

局限一:对无规则自然场景未必最优

树叶、草丛、灌木这种复杂自然结构,convex 不一定占优。

局限二:训练和渲染一般比 3DGS 更慢

因为 primitive 更复杂,footprint 计算也更复杂。

局限三:表达单元仍然是 convex

而现实世界有很多凹形结构。
3DCS 要表达凹形,只能靠多个 convex 去拼。

局限四:排序仍然是近似

对于大范围跨深度图元,中心排序并不总是完美。

局限五:工程实现复杂度不低

比起标准 3DGS,3DCS 的 kernel 和渲染逻辑更复杂,复现门槛更高。


3.14 未来最值得做的研究方向

如果你想基于这篇论文继续往前走,我认为至少有五个方向特别值得做。

方向一:Hybrid Primitive

把 Gaussian 和 Convex 混在一起:

  • Gaussian 负责树叶、草地、柔和纹理
  • Convex 负责建筑、平面、硬边、规则结构

这可能比纯 3DGS 或纯 3DCS 都更强。

方向二:Concave-aware 表示

不再局限于 convex,考虑:

  • convex union
  • differentiable concave decomposition
  • BSP 风格图元

方向三:Geometry-supervised 3DCS

引入:

  • 深度监督
  • 法线监督
  • 多视图几何一致性
  • 平面先验

让 3DCS 不只是图像拟合强,而且几何更准。

方向四:Semantic-aware 3DCS

让每个 primitive 同时带:

  • 几何
  • 外观
  • 语义标签
  • instance id

这样就能直接用于场景理解和编辑。

方向五:可学习的 densification policy

当前 split 规则仍偏经验式。
未来完全可以把它做成:

  • uncertainty aware
  • residual aware
  • geometry aware
  • reinforcement 或 meta-learned 的策略

3.15 博士阶段总结

如果你已经读到这里,那么你应该能意识到:

这篇论文的真正意义,不只是把结果做得更清晰一点。
它更重要的贡献是:重新打开了 radiance field 中“primitive 应该长什么样”的问题。

它告诉我们:

  • primitive 不必总是 Gaussian
  • geometry-aware primitive 很有价值
  • 结构化场景需要更有几何表达力的图元
  • real-time rendering 与几何表达力并不是天然矛盾的

所以从研究视角来看,这篇论文最值得记住的一句话是:

3D Convex Splatting 不是对 3DGS 的小修小补,而是对显式辐射场 primitive 设计范式的一次实质推进。


四、三层一句话总结

小白一句话

它把 3DGS 里的“模糊小云团”换成了“形状可调的软凸块”,所以更擅长还原平面和硬边。

硕士一句话

它提出了一个基于 smooth convex primitive 的可微 splatting 渲染框架,在结构化场景中比 3DGS 更有几何表达力,并能以更少 primitive 获得更优感知质量。

博士一句话

它把 convex geometry representation、2D hull-based differentiable footprint construction 与 tile-based real-time rasterization 融合起来,重新定义了 radiance field primitive 的设计空间,并为后续 geometry-aware explicit rendering 提供了新的方向。


五、我的评价:这篇论文值不值得读?

非常值得。

原因不是因为它“比 3DGS 高了几点指标”这么简单,
而是因为它提出了一个非常重要的研究问题:

当我们做显式辐射场时,primitive 的设计空间到底有多大?

3DGS 证明了 Gaussian 很强。
3DCS 则进一步证明:

Gaussian 不是唯一合理答案。

如果你是以下人群,我会非常建议你认真读这篇论文:

  • 想进入 NeRF / 3DGS 方向的研究生
  • 想找 3DGS 新改进点的同学
  • 想做结构化几何表示的博士生
  • 想做实时三维重建 / 新视角合成系统的工程研究人员

六、写在最后

很多论文看起来只是在“换个表示”,
但真正好的论文,往往是通过“换个表示”,改写了整个问题的解法。

3D Convex Splatting 就属于这一类。

它提醒我们:

  • 表示方式会决定优化方式
  • 优化方式会决定渲染方式
  • 渲染方式会反过来影响最终的视觉质量与几何可解释性

所以它不是一篇“改一点点参数”的论文,
而是一篇很值得细读的、带有范式意味的工作。


总结

本文我们把 《3D Convex Splatting: Radiance Field Rendering with 3D Smooth Convexes》 这篇论文拆成了三个层次:

  • 小白阶段:讲清它到底在解决什么问题
  • 硕士阶段:讲清它的方法、公式、实验和适用场景
  • 博士阶段:讲清它的研究意义、复现要点、隐藏难点和未来方向

如果把全文再压缩成最后一句话,那就是:

3DCS 的本质,是用更有几何表达力的 smooth convex primitive,替代 3DGS 中天然偏模糊的 Gaussian primitive,从而在结构化场景中实现更优的新视角合成。

愿你下次再看到这篇论文时,不只是“眼熟”,而是真正“吃透”。