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助您深入解析、速通论文
前言
最近两年,NeRF 和 3D 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 为什么它还能训练?
因为这整个过程是可微分的。
什么意思?
就是它不是瞎调,而是这样做:
- 先渲染出一张预测图
- 和真实照片比较
- 看哪里错了
- 把误差反向传回去
- 自动调整每个 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 点。
然后:
- 将这组点投影到 2D 图像平面
- 在 2D 上做 convex hull
- 利用 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 后
流程立刻清晰很多:
- 保存一组 3D 点
- 用相机模型投影到 2D
- 在 2D 做 convex hull
- 由 hull 边构造 signed distance
- 最后得到 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 大致做:
- 取出 (K) 个 3D 点
- 投影到当前相机视角的 2D 平面
- 计算 2D convex hull
- 提取 hull 边界线
- 对 tile 内像素计算 signed distance
- 用 LogSumExp + sigmoid 得到 indicator
- 按深度排序
- 做 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,从而在结构化场景中实现更优的新视角合成。
愿你下次再看到这篇论文时,不只是“眼熟”,而是真正“吃透”。