We present a differentiable framework to automatically learn view-dependent 2D kernels in a splatting-based pipeline to improve reconstruction quality and representation efficiency for novel 3D view synthesis. Our volumetric primitive is defined as a bounding ellipsoid and a 3D-kernel latent vector. We first learn a projection network to output a 2D-kernel latent, taking the attributes of the ellipsoid and the 3D-kernel latent as input. Next, the result is sent to a decoder to produce a radially symmetric 2D kernel in terms of Mahalanobis distance, bounded by the projected ellipsoid. The neural networks along with per-primitive attributes are jointly optimized. The effectiveness of our approach is demonstrated on standard benchmarks, comparing favorably against state-of-the-art techniques on both analytical and learned kernels. Finally, we extend the idea to learn general 2D kernels for 2D splatting as well as image representation.
- 为什么「换掉高斯核」要单独做一篇:核同时决定画质与表示效率,而前人两条路线各有死结。
- 三个预备式子(EWA 投影、屏空间形状、2DGS 切平面参数化),以及本篇「不算线积分、直接学积分结果」的立场。
- 原语的几何:为什么用一个包围椭球托住一个隐码,而不是让网络直接学形状。
- Φ_proj:把 3D 核投到 2D 时,为什么还要多喂相机空间的位置、尺度与旋转三样东西。
- Φ_dec:把 r² 变成一个不透明度,以及为什么这个网络可以窄到 4 个神经元。
- 为什么输出必须是径向对称,一条拓扑结论(hairy ball)与动画里的一次失败尝试。
- 拿 k 个采样点替掉逐像素调网:这一手怎么把渲染成本从「像素数」上摘下来。
- 同一套办法搬到平面基元要改哪几处,以及它与最接近的前人工作是什么关系。
- 预训练与两段式训练:为什么开头 2000 步要冻结两个网络,目标剖面为什么选余弦。
- 主结果:4 个基准 21 个场景上它站在什么位置,以及「最好或次好」这句话的实测边界。
- 学出来的核长什么样:剖面、d₁ 直方图,以及「核会不会随场景类型分化」。
- 表示效率:同样的内存预算下它换回多少画质,代价又记在谁头上。
- 四个旋钮的消融,与一个「k 该取多大要看预算」的结论。
- 边界与反例:速度、抗锯齿、编码,以及作者自己划出的适用边界。
1换掉一个高斯核,为什么要单独做一篇
先把这枚「印」看清。 泼溅一系的渲染器里,每个基元最终都要在画面上落下一个形状,落墨多少由它决定,这个形状就是泼溅核(splatting kernel)。3DGS 用的那枚印是高斯:把核沿视线累积起来就是渲染。原文第一句就点明,核的形状直接决定重建质量与表示效率[§1, p0]。
它给的那个例子小到不能再小,但把整篇的动机说完了。 想象二维平面上要铺满一个长方形。如果你手里只有高斯,你得摆一堆互相重叠的椭圆去逼近直角边,边角总要含糊;如果你手里有正方形,几个就够了,边界干干净净。原文的判词是:用一组正方形来表示长方形,比用高斯高效得多[§1, p0]。落到泼溅上就是一句话:印的形状选错了,你花的基元数是白花的。
于是有两个问题浮出来,原文把它们并排写成全篇的出发点:
1.1 前人第一条路:手写解析核,形状由式子定死
这一条路占了相关工作的多数。做法是把 3DGS 里的高斯换掉,换成另一种显式定义的体积基元,或者换成某种隐式定义但视角无关的 2D 核(投影之后)[§2.1.1, p1]。
显式那一支里,几个有名字的例子是:广义指数核[Hamdi et al. 2024]、Student's t 核[Zhu et al. 2025]、可变形 Beta 核[Liu et al. 2025b]。它们有一个共同的实惠:泼溅结果有解析公式,所以渲染性能很高[§2.1.1, p1]。
这条路的天花板写在一句话里。 原文说,这些方法的形状变化完全由手写的解析式子决定,因此没法完全以数据驱动的方式去适配输入场景[§2.1.1, p1]。画质与效率一直在涨,但涨的是「同一个式子的参数调得更好了」,不是「式子的形状变多了」。
平面基元那一侧是同样的故事。从 2DGS 起,后人把原来的 2D surfel 换成别的解析 2D 核,Hermite 多项式、Gabor、甚至三角形,结论也一模一样:形状变化由解析式定死,适配不了场景[§2.2.1, p1]。
1.2 前人第二条路:从数据里学,但线积分挡在中间
真正动手从数据里学形状的工作很少,原文点了两篇[§2.1.2, p1]。
第一篇(Held et al. 2025c,下文简称 3DCS)把一个凸形状的顶点当作基元去优化,然后把泼溅要用的线积分简化成一个常数,再在边界附近做软化[§2.1.2, p1]。也就是说,它没有把积分算准,绕过了积分的形状。
第二篇(Zhou et al. 2025,下文简称 SplatNet)直接把神经场当作基元去泼溅。技巧在于他们把基元限制成一种特定的浅层 MLP,这样沿视线的精确积分恰好能写成闭式[§2.1.2, p1]。代价是基元被绑在这一类网络上。
挡在中间的那块石头,原文说得非常直白:对一般的 3D 基元,计算线积分没有闭式方程,而这一步在泼溅里绕不开。所以只能采用「切片(slicing)」近似来躲开昂贵的数值积分[§1, p0]。另一条出路是把基元限制成平面形状,或者限制成某种网络,两条都会把表达力压住[§1, p0]。
原文对这一片现状的总结是一句很克制的话:如何系统性地、以数据驱动的方式去学一般的泼溅核,目前还不清楚[§1, p0–p1]。
1.3 本篇换了一个位置下手
既然坎在「算积分」,本篇的选择是换掉这个问题:既然我们要的是核在画面上的落墨形状,那就别去算积分,直接学积分的结果。原文的措辞是「我们显式地对积分结果建模」[§1, p1]。
具体地说,学的对象是投影之后的 2D 核,而不是 3D 密度分布。原文对这一步的辩护是:这样就避开了在一般 3D 密度场上做线积分这个难题,而且不绑死在任何一种特定类型的网络上[§2.1.2, p1]。
第二处改动是给核加上「视角相关」。 原文发现,前人那些核虽然基元形状是视角相关的(投影会随视角变),但核本身作为马氏距离的函数是视角无关的:拿高斯来说,对照式 (2) 就能看出来[§2.1, p1]。而本篇的核随视角变,这多出了额外的自由度[§2.1, p1],原文把这件事的可视化放在图 3 里。第 9 章会回到这张图。
收益先给一个总量:在 3D 与 2D 两侧泼溅上,全部基准的全部画质指标都是最好或次好;体积基元还表现出更好的表示效率,以及随基元数增长的可扩展性;同一套思路还搬到平面基元上去学 2D 图像的高效表示[§1, p1]。
这张图可以当成全篇的目录。 (a) 那一栏回答的是「核形状对不对」,第 9 章会用完整版本(图 3-1)讲透;(b)–(f) 里的直方图是本篇独有的证据,同一枚印的 d₁ 在不同视角下不是同一个值,这正是「学出来的视角相关」的可见形式。
2三个预备式子与一句「不碰线积分」的立场
这一章只做一件事:把后面所有式子要用的三个已知式摆好,并说清本篇在链条的哪一环切进去。 原文自己也把这一节定位成「简要描述 3D/2D 高斯泼溅里与我们的核定义最相关的关键项」[§3, p2]。
2.1 式 (1):从 3D 协方差到 2D 协方差
3DGS 里一个 3D 高斯基元的属性包括均值 μ₃D 与协方差 Σ₃D = R S Sᵀ Rᵀ,其中 S 是缩放矩阵、R 是旋转矩阵。把这个高斯投到图像平面上,用的是 EWA 泼溅的近似[Zwicker et al. 2001],得到的 2D 协方差矩阵是:
其中 W 是视图变换(viewing transformation),J 是投影仿射近似的雅可比矩阵。投影后的均值记作 μ₂D[§3, p2]。
这三个符号各自管什么,先单独记一遍,因为后面第 3 章的 Φ_proj 就是「把式 (1) 这一步从解析公式换成网络」:
| 符号 | 含义 | 在本篇里的去向 |
|---|---|---|
| Σ₃D = R S Sᵀ Rᵀ | 3D 协方差,由缩放与旋转合成 | 由包围椭球的 s 与 q 承担(第 3 章) |
| W | 视图变换 | 进 Φ_proj 的输入(以相机空间坐标 μ^cam_3D 与 R^cam 的形式) |
| J | 投影仿射近似的雅可比 | 同上,属于「相机规格」的一部分 |
| Σ₂D, μ₂D | 投到屏幕后的协方差与均值 | 决定 2D 包围椭圆,进而决定 r² |
2.2 式 (2):核只依赖一个标量 r²
投影后的基元在屏幕空间里的形状写成:
其中 x 是像素坐标,r² 是马氏距离的平方。原文随后补了一句关键解释:r² 可以看成「把一个各向异性的高斯分布变换成标准各向同性正态分布」的那次变换,而这次变换只依赖 r²[§3, p2]。
这句话就是本篇要抓的把手。 高斯核的形状只由一个标量 r² 决定,那么把 exp(−½ r²) 换成别的函数,核的形状就变了;而只要这个新函数仍然是只吃 r² 的函数,它就是径向对称的。第 4 章的 Φ_dec 正是这么用的,第 4 章会解释为什么本篇主动要求它径向对称。
2.3 式 (3):2DGS 的切平面参数化
平面基元那边,2DGS 的基元是一张有朝向的圆盘,投影后的屏空间形状写成:
这里的 (u, v) 是「对应像素 x 的相机射线」与基元在其切平面上的交点的局部 2D 坐标[§3, p2]。原文对这一处的评价是:2DGS 这种原生的 (u, v) 参数化,让「在基元上定义空间变化」变得很方便:比如一般 2D 核,或者 2D 纹理[§3, p2]。
这就解释了第 6 章为什么能那么省事。 平面侧不需要发明新的参数化,2DGS 早就把 (u, v) 递到手上了;本篇只需要把 G′ 那个解析式换成网络。
2.4 本篇的原语与管线:三样东西组成一个基元
到这里可以把这个原语说全了。原文的构成是:一个 3D 包围椭球(类似 vanilla 3DGS 里的截断高斯)+ 一个表示 3D 核的隐向量[§4, p2]。
每个基元走四步,原文的顺序是:
- 把椭球投到图像平面,得到一个 2D 包围椭圆;
- 把 3D 核投到 2D:用一个同时感知椭球属性的投影 MLP,把一个「表示 3D 核」的隐码变成「表示 2D 核」的隐码;
- 解码:用一个解码器输出一个径向对称的 2D 核,用马氏距离表述、被那个 2D 椭圆界定,这就是最终的泼溅形状;
- 交回标准泼溅管线,做后续处理(着色、alpha 混合)[§4, p2]。
第 1 步是解析的(就用式 (1)),第 2、3 步是学出来的(就是 Φ_proj 与 Φ_dec),第 4 步完全不动,本篇只换了中间那一环。
读这张图要盯住一个分工。 图把「训什么」和「怎么算」排成了一条链:左半是属性与投影,右半是解码与渲染。本篇全部可学的东西只有两块,Neural Projection MLP(第 3 章的 Φ_proj)与 Kernel Decoder(第 4 章的 Φ_dec);采样式插值(第 5 章)与着色/alpha 混合(沿用既有)都在这两块之外。
3椭球托住隐码,投影网把核送上屏幕
这一章回答一个设计问题:一个体积基元里,哪些东西交给几何、哪些东西交给网络;定义完之后,它又怎么被送到屏幕上。 原文对前半给的答案是「几何归椭球、形状归隐码」,对后半给的答案是「椭球走解析、核走网络」。两半合起来,就是一个 3D 基元从定义到进入渲染器之前的完整路径。
3.1 一个基元里装了什么
原文把体积基元的几何拆成两件:一个 3D 包围椭球,和一个 3D 核隐码。椭球的属性包括中心 μ₃D、一个 3 维的尺度向量 s(用来表示缩放矩阵 S)、以及一个 4 维四元数 q(用来表示旋转矩阵 R);隐码 z₃D 是一个向量(在多数实验里维度取 5),装着某个隐式 3D 核的参数[§5.1, p2]。
| 项 | 符号 | 含义 | 归谁管 |
|---|---|---|---|
| 中心 | μ₃D | 椭球在 3D 里的位置 | 椭球(几何) |
| 尺度 | s(3 维) | 表示缩放矩阵 S | 椭球(几何) |
| 旋转 | q(4 维四元数) | 表示旋转矩阵 R | 椭球(几何) |
| 核隐码 | z₃D(默认 5 维) | 隐式 3D 核的参数 | 隐码(形状) |
外观那一侧照抄 3DGS。 原文写明:每个基元可学的外观「与 3DGS 里的定义方式相同」,包括一个总的不透明度以及一个颜色模型的参数[§5.1, p2]。所以本篇没有在颜色上做任何新设计(这处「没做什么」在第 11 章会变成一次消融)。
3.2 为什么用包围椭球:两条理由
原文给了两条,一条偏学习、一条偏工程[§5.1, p2]。
第一条:把变换从网络手里拿走,网络只学「归一化」的形状。 椭球本身就直接建模了缩放/旋转/平移这三种变换,于是那两个 MLP 可以专注去学「归一化之后」的形状,把仿射变换留到之后施加[§5.1, p2]。反过来说,如果不这么做会怎样,原文也交代了:一个更激进的做法,让网络直接学形状本身,很可能需要更大、因而更慢的 MLP 去处理多出来的复杂度[§5.1, p2]。原文对这条取舍的评价是「我们相信这是质量与性能之间的一个好平衡」[§5.1, p2]。
第二条:椭球是现成的几何代理。 它可以直接当作排序与剔除的高效几何代理;而且它和 vanilla 3DGS 里的截断高斯很像,这就允许大量复用那条既有管线[§5.1, p2]。第 2 章里「第 4 步完全不动」靠的就是这一条。
把两条合起来看,其实是一次「把难学的部分划出去」。 位置、朝向、大小这三样是 3DGS 二十年来已经知道怎么优化的量,没必要让网络去重新发现;网络只需要回答「在单位椭球里,这枚印该刻成什么形状」。第 3 章的 Φ_proj 之所以能只有 4 层 64 个神经元,根子在这里。
3.3 两个隐码的分工,与一处内存上的后果
本篇一路下来有两个隐码,它们的位置完全不同,值得在这里先分清:
| 隐码 | 谁产生 | 存在哪 | 是否逐基元存储 |
|---|---|---|---|
| z₃D(默认 5 维) | 训练中学出来 | 每个基元自己带一份 | 是 |
| z₂D(默认 5 维) | Φ_proj 在渲染时算出来 | 不落盘,只活在当帧 | 否 |
这个差别在画质上看不出来,但在内存上是硬的。 z₃D 是逐基元的参数,它的维度直接乘进基元存储里;z₂D 是投影网络的输出、网络的权重是所有基元共享的全局量,所以它既不在参数里,也不随基元数增长。第 11 章表 4-1 里那条规律,只有 dim(z₃D) 会动内存,dim(z₂D) 与两个网络的宽度几乎不动:根源就在这里。
换句话说,本篇的「形状自由度」被拆成了两半:一半是逐基元付内存的(z₃D),另一半是免费的(z₂D 与网络本身)。 这条设计在第 11 章会变成一句可操作的结论:想省内存就压 z₃D,想提画质就加宽网络。
3.4 外观那一侧:本篇什么都没改
说清「没做什么」同样重要。 原文写明每个基元可学的外观「与 3DGS 里的定义方式相同」,包括一个总的不透明度以及一个颜色模型的参数[§5.1, p2]。落到实验里就是表 1 里那两个变体,用球谐(SH)的与用球面 Beta(SB)的[§6.1.1, p4]。
这处「照抄」在第 11 章会有一次反向检验。 把 SH 换成每基元一个常数颜色(表 1 里的 Ours (3D,w/o SH) 行),PSNR 掉 0.20[表 1, p5]。掉得不算多,但作者据此下了一句判定:颜色的视角相关性与几何的视角相关性不等价[§6.2, p6]。也就是说,本篇的贡献集中在几何那一侧(核的形状),颜色那一侧只是把 3DGS 的现成做法搬过来用。
3.5 投影被拆成两半:椭球走解析,核走网络
椭球定义完,下一步是把它送到屏幕上。 这件事原文也说得很清楚:给定一份相机规格,把体积基元投到图像平面上[§5.2, p2]。这一段讲那两个全局网络里的第一个。
前半是解析的,不用学。 对 3D 包围椭球,直接用式 (1) 把它投出去,得到一个 2D 包围椭圆[§5.2, p2]。这一步沿用第 2 章的既有结论,没有任何新东西。
后半才是本篇的活。 原文的措辞是「类似式 (1) 把 3D 椭球投成 2D 椭圆的方式,我们学一个全局投影 MLP Φ_proj,把隐式 3D 核(也就是 z₃D)变换成一个隐码 z₂D(多数实验里维度取 5),它表示投影之后的 2D 核」[§5.2, p2]。写成式子:
注意这个式子的形状:左边只有一个输出 z₂D,右边却有四个输入。 这正是本章要讲的那件事,为什么输入不止一个。
3.6 朴素的输入为什么不够
原文先替读者想到了那个最自然的方案:只把 3D 几何(在本篇里就是 z₃D)和一份相机规格当输入,就像多数相关工作那样[§5.2, p2]。
然后它用实验否掉了这个方案。 原文的原话是:我们通过实验(Tab. 3)发现,往 Φ_proj 的输入里加入其他因子,能在保持泛化能力的同时带来质量提升[§5.2, p2]。这句话的后半截是关键,「保持泛化能力」说明多喂信息没有把网络带向过拟合某个场景;这一点由第 11 章的表 3-1 兑现。
3.7 多喂的三样,各管一件事
| 输入 | 原文给的理由(§5.2) | 一句话 |
|---|---|---|
| μ^cam_3D:椭球中心在相机空间下的坐标 | 给 MLP 提供空间感知(spatial awareness) | 网络得知道这枚印落在画面的哪个方位 |
| s:缩放因子 | 提供尺度感知(scale awareness) | 网络得知道这枚印在画面上有多大 |
| R^cam:基元在相机空间下的旋转矩阵 | 它是基元在相机空间里朝向的紧凑表示,高效地编码了 3D 视角信息 | 网络得知道这枚印相对相机是正着还是斜着 |
三样东西合起来回答的是同一个问题的三个侧面:这一枚印,在当前这个视角下,处于什么位置、多大、什么朝向。 前两样好理解,第三样先停一下,原文特意说 R^cam 是「朝向的紧凑表示」,而且「高效地编码了 3D 视角信息」[§5.2, p2]。这句话的分量在于:视角信息不是靠给网络喂相机位姿喂进去的,而是靠基元自身在相机空间里的朝向间接表达的。这样网络看到的是「这个基元相对相机怎么摆」,而不是「相机在世界里怎么摆」:前者与基元一一对应,后者要让网络自己去做一次配对。
3.8 Φ_proj 长什么样
| 项 | 取值 | 出处 |
|---|---|---|
| 类型 | 全局 MLP(所有基元共用一套权重) | §5.2, p2 |
| 层数 | 4 层 | §5.2, p2 |
| 隐层宽度 | 每隐层 64 个神经元 | §5.2, p2 |
| 激活 | leaky-ReLU,除最后一层外逐层都有 | §5.2, p2 |
| 训练方式 | 与核解码器联合训练,目标针对全部输入图像 | §5.2, p2 |
「全局」两个字要划下来。 原文说的是「全局投影 MLP」[§5.2, p2],也就是所有基元、所有场景共用同一个 Φ_proj。这与「每个基元挂一个自己的小网络」是两条完全不同的路线:全局网络逼着网络去学一套通用的「3D 核 → 2D 核」的投影规则,而每基元各自的隐码 z₃D 才承担个体差异。第 11 章表 3-1 里那条「末行对应我们当前的输入选择」,检验的正是这套规则在换场景后还成不成立。
为什么 4 层 64 个神经元够用,回到第 3 章那条取舍:仿射变换已经交给椭球了,网络只需在「归一化」的空间里学投影,输入里还额外补了三样位置/尺度/朝向信息。网络的活被划得很小,所以网络也可以很小。
4Φ_dec:一个网络,与一条必须遵守的对称性
这一章讲两个全局网络里的第二个,以及它唯一的一条硬约束。 前四节说这个网络是什么、为什么能这么窄;后四节说它为什么只能输出径向对称的核,那是全篇第一处由理论划出的边界。
第二个网络,也是全篇真正的「核」诞生的地方。 原文给了它一个小标题:定义[§5.3.1, p2]。
4.1 两步:先算 r²,再查(学出来的)剖面
第一步沿用式 (2),但换了来源。 对一个给定像素,先算它相对投影后的基元中心 μ₂D 的马氏距离平方 r²,计算时用的属性来自对应的那个 2D 包围椭圆[§5.3.1, p3]。这一步没有新东西,但要注意「属性来自 2D 包围椭圆」这句:r² 的尺度是由椭球投影决定的,网络不参与决定核的作用范围。
第二步才是替换。 原文说:我们把相关工作里的解析形状函数(例如高斯[Kerbl et al. 2023]或 Beta[Liu et al. 2025b])换成一个全局 MLP Φ_dec。它收 r² 与 z₂D 作输入,输出一个不透明度 d[§5.3.1, p3]:
这个式子只有两个输入,比式 (4) 干净得多。 原文接着解释它的语义:这个 MLP 本质上描述的是一条「径向对称的 2D 泼溅核」的 1D 剖面,作用在 r² 取值于 [0, 1] 的范围内[§5.3.1, p3]。
把两句话拼起来看,本篇的核心设计就在这一行里。 前人写的是 exp(−½ r²) 或某个 Beta 形式的具体函数;本篇写的是一个网络的输出。函数形式不再由人指定,而是由训练数据决定,这就是标题里「learning splatting kernels」的落点。
4.2 Φ_dec 长什么样,以及为什么可以这么窄
| 项 | 取值 | 出处 |
|---|---|---|
| 类型 | 全局 MLP(所有基元共用) | §5.3.1, p3 |
| 层数 | 3 层 | §5.3.1, p3 |
| 隐层宽度 | 每隐层 4 个神经元 | §5.3.1, p3 |
| 激活 | leaky-ReLU,除最后一层外逐层都有 | §5.3.1, p3 |
| 输出层 | sigmoid,用来把输出界定住 | §5.3.1, p3 |
| 输入 | r² 与 z₂D 两个量 | §5.3.1, p3 |
4 个神经元是一个很小的数,小到值得问一句凭什么。 三个理由叠在一起才成立:
第一,输入只有两维。 式 (5) 要学的映射是 (r², z₂D) → d。z₂D 只有 5 维,r² 是标量,整个输入空间一共 6 维,而且 r² 还被限定在 [0, 1] 上。
第二,被学的对象是一条「径向对称」的 1D 剖面。 原文明确说 Φ_dec 描述的是 1D 剖面[§5.3.1, p3]。也就是说不管基元在屏幕上铺多大,网络要回答的始终是「离中心多远(归一化到 [0,1])该落多少墨」,与方向无关。第 4 章会说明这个「与方向无关」不是偷懒,是被一条拓扑结论逼出来的。
第三,形状的复杂部分已经由 z₂D 承担。 网络本身不需要表达很多种函数,它在固定的一套「归一化形状」上作答,具体这一枚印刻成什么样,由 z₂D 这个隐码区分。
sigmoid 那一层也还要补一句。 它把输出界定在 (0, 1) 里[§5.3.1, p3]。对一个不透明度来说这个约束是自然的,但它同时意味着:核的峰值不可能超过 1,且永远不会真正归零(sigmoid 只在无穷远处到 0 或 1)。第 10 章算表示效率时,d 的这些性质会重新出现。
4.3 这一步把「线积分」换成了一次网络求值
回到第 1 章那块石头:一般 3D 基元的线积分没有闭式解。本篇的处理是在链条上换一个位置出题:不去积分 3D 密度,而是直接让网络回答「投影之后,离中心 r² 处的落墨率是多少」[§5.3.1, p3]。
这个换法的代价与收益要对齐着看。 收益是不再需要 3D 密度有闭式积分,也不再需要假设形状是凸的、或者限制成某类网络;代价是核不再是解析式,于是它没有了「参数一改就知道形状怎么变」的可解释性,也没有了直接算出解析渲染公式的可能,这两条在第 5 章(要靠采样来做加速)与第 12 章(作者提出用符号回归反过来找解析式)都会再出现。
4.4 两处限定:r² 的作用域,与 d 的去向
第一处限定:Φ_dec 只在椭圆内部有定义。 原文给 Φ_dec 划的作答范围是 r² 取值于 [0, 1][§5.3.1, p3],同时说最终的泼溅形状被那个 2D 椭圆界定[§4, p2]。两句合起来的意思是:核的作用范围由几何(椭球投影出的 2D 椭圆)决定,网络只负责在这个范围内分配墨量。椭圆之外的落墨不由这个核描述。这也解释了为什么第 3 章那条「几何归椭球、形状归隐码」的分工能成立,连「核铺到多大」都不归网络管。
第二处限定:d 不是一个孤立的数,它要进 alpha 混合。 原文说这个形状接下来交给标准泼溅管线做后续处理(着色、alpha 混合)[§4, p2]。所以 d 的角色就是混合时的那个不透明度权重。这解释了 sigmoid 那一步为什么是必要的,输出必须落在 (0, 1) 上,否则它没法当权重用[§5.3.1, p3]。
这两处限定连起来,划出了 Φ_dec 的职权边界:它决定「在一个已经被几何定好形状的范围内,从中心到边缘怎么衰减」,仅此而已。位置、朝向、大小、作用范围,全在它之外。
4.5 一般 2D 核需要一个 2D 坐标架,而那个坐标架造不出来
解码器定完了,接下来的问题是它为什么只能输出径向对称的核。 原文给这件事单开了一个小标题,径向对称的理由[§5.3.2, p3];它的答案不是「省事」,而是一条拓扑上的不可能性。这一节同时是全篇第一个「边界」:本篇是主动放弃一般 2D 核的。
原文先摆出问题:我们选择输出一个径向对称的 2D 核,而不是一般的核,原因在于「把任意 3D 视角条件映射到一个 2D 坐标架」这件事存在理论上的不连续性:而一般的 2D 核恰恰要定义在那个 2D 坐标架上[§5.3.2, p3]。
原文点名了这个数学结论:hairy ball 定理[Hatcher 2002][§5.3.2, p3]。这一定理说的正是「球面上不存在处处非零的连续切向量场」:换句话说,你没法在视角球面上连续地挑出一个方向来当「坐标架的 x 轴」。只要视角绕球面走一圈,这个选择必然要在某处跳变。
4.6 试过一次,代价是动画里的突转
原文交代了试点研究(pilot study)的结果:他们先试了一个平滑技巧来缓解这个不连续性,但结果是,在某些视角方向附近,2D 核会发生快速旋转,这在动画里看着很受干扰[§5.3.2, p3]。
这句话的价值在于它把「不连续」翻译成了可见的失败模式。 不连续性本身是抽象的;「核绕某些视线突然转了」是能看见的。而且它是统计意义上的偶发:只在某些方向附近出现,平时可能看不出来,一旦动画扫过那些方向就会跳一下,这类问题最难在静态图里发现。
4.7 绕开,而不是修补
本篇的处置是釜底抽薪。 原文写:通过把输出限定为径向对称的 2D 核,我们从一开始就避开了上述那个映射:因为那个 2D 坐标架不再需要了[§5.3.2, p3]。
这一步的逻辑要慢慢读。 常见做法是「先建坐标架,再在坐标架里做旋转不变化」;本篇是直接取消坐标架的存在必要。径向对称的核只需要一个标量(离中心多远)就能定义,方向根本不进入描述,所以不连续的那一步没有被解决,而是被移除了。
原文还补了一句旁证:这个挑战在既有的可学习核工作里也被提到过,指明是 [Huang et al. 2025] 的 §3.4[§5.3.2, p3]。这说明「一般 2D 核难做」不是本篇一家之见。
4.8 这一条同时解释了前人为什么都是径向对称的
把这一章放回第 2 章去看,会多出一层解释力。 原文在 §2.1 里写过一句:前人的那些核大多是径向对称的,而原因会在 §5.3.2 里展开[§2.1, p1]。现在答案揭晓了,那个「原因」不是历史惯性,而是同一条拓扑限制。所有人都撞上了同一面墙,只是它在本篇里被正面写了出来。
代价也要写清楚。 放弃一般 2D 核意味着放弃了「同一枚印在不同方向上刻得不一样」的自由。原文承认本篇的核只是视角相关(同一视角下换个基元、或者换个视角看同一个基元,剖面会变),但在给定视角与给定基元下,它仍是径向对称的[§5.3.2, p3;§6.1.2, p4]。而有意思的是:平面基元那一侧原文并没有做这个限制:第 6 章的平面基元学的是一般 2D 核、是不对称的[§2.2.2, p2;§5.4, p3]。为什么两边不一样,第 6 章会给出原文依据:平面侧根本不需要 3D→2D 的坐标架映射。
5拿 k 个采样点替掉逐像素调网
到第 4 章为止,核已经学出来了,但它还只是一次网络求值。 这一章讲原文怎么把它变成能跑的渲染,小标题是加速[§5.3.3, p3]。
5.1 问题:原语内每个像素都调一次网,太贵
原文的表述是:在我们的包围椭圆里对每个像素都直接执行 Φ_dec,算力上可能是很贵的[§5.3.3, p3]。贵在哪要算一下:一枚基元在屏幕上可能覆盖成千上万个像素,而每个像素都要跑一次 3 层 MLP。
5.2 做法:把 1D 剖面预先采出来,渲染时插值
原文的处置是预采样加插值。 具体做法是:对每个基元,我们在 r 的 [0, 1] 区间上放 k 个均匀采样,记作 {rᵢ}(1 ≤ i ≤ k);只在这些采样点上跑 Φ_dec,把结果存成 {dᵢ}[§5.3.3, p3]:
渲染时再用插值把中间的值补出来。 对光栅化过程中某个具体像素算出来的任意 r,先找到它夹在哪两个采样之间,即满足 rc ≤ r ≤ rc+1,然后用线性插值得到最终结果[§5.3.3, p3]:
5.3 这一手真正买到的是什么
原文有一句精准的判词:这本质上是把「一枚基元里的像素数」与「Φ_dec 的调用次数」解耦了[§5.3.3, p3]。
这句话的分量在于,「解耦」之后渲染成本的结构变了。 在此之前,渲染一枚基元的代价里有一项与它覆盖的像素数成正比、而且是网络求值那种贵操作;在此之后,网络调用次数只由 k 决定,与它在屏幕上铺多大无关。一枚贴着镜头的巨大基元与一角硬币大小的基元,只要 k 相同,网络调用次数就相同。
| 量 | 加速前 | 加速后 |
|---|---|---|
| Φ_dec 调用次数 | 与基元覆盖的像素数成正比 | 固定为 k 次(每基元) |
| 每像素的剩余代价 | 一次网络求值 | 一次定长查表 + 一次线性插值 |
| 精度控制 | — | 由 k 控制 |
5.4 插值方式没有被写死
原文特意声明这一点不是本篇的约束:我们的做法不绑定任何一类插值;更精细的插值也能插进来,代价是更多算力、换来更高阶的光滑度[§5.3.3, p3]。
多数实验取 k = 2。 原文的理由是「据 §6.2 所述,它已经足以产出高质量的结果」[§5.3.3, p3]。k = 2 意味着每个基元的剖面只用两个采样点加线性插值:一条折线,原文在后面把它叫作「简单的锥形帽(conical-hat)形状的核」[§6.2, p6]。这听起来过于粗糙,但第 11 章会给出它在什么条件下就够用了。
顺带一个容易看漏的事实:k 只是运行期的采样密度,不是基元参数。所以增大 k 不会增大显存占用:表 2 的注文写的就是这一句:我们的内存占用不随 k 变化[表 2, p5]。第 10 章算表示效率时会用到它。
5.5 渲染内环的伪码
前提 1:每枚基元已经算好自己的 z₂D(来自 Φ_proj)与 2D 包围椭圆(来自式 (1))。
前提 2:k 是全局常量(多数实验 k = 2),与基元无关、与它覆盖多少像素无关。
#,离线(每帧、每基元一次,O(k)),
for rᵢ in {r₁ … r_k}: # r 在 [0, 1] 上均匀采样
dᵢ ← Φ_dec(rᵢ², z₂D) # 式 (6):只在这里调网络
#,光栅化内环(每像素),
r ← 由该像素与 μ₂D、Σ₂D 算出的马氏距离 # 来自式 (2)
找 c 使得 r_c ≤ r ≤ r_{c+1}
λ ← (r − r_c) / (r_{c+1} − r_c) # 式 (7)
d ← (1 − λ)·d_c + λ·d_{c+1} # 插值,不再调网络
内环里没有网络求值,这是这段伪码唯一要记住的事。 网络调用全被推到上面那个 O(k) 的循环里去了。
5.6 把这一手的省法算一遍
「解耦」到底省了多少,可以数出来。 设一枚基元在屏幕上覆盖 N 个像素(对贴镜头的基元,N 很容易上万)。
| 量 | 逐像素调网 | 预采样 + 插值(本篇) |
|---|---|---|
| Φ_dec 调用次数(每基元每帧) | N | k(多数实验 k = 2) |
| 每像素剩下的活 | 一次 3 层 MLP 前向 | 一次查表 + 一次线性插值 |
| 该基元的网络调用与 N 的关系 | 成正比 | 无关 |
看最后一行的两个数:N 与 k。 N 由「基元铺多大」决定,是渲染期的几何量;k 是配置里写死的常量。把 N 换成 k,等于把一项随几何浮动的成本换成了一项固定成本:这就是「解耦」在数字上的样子。
这也解释了第 10 章那个看起来矛盾的现象。 第 10 章会说本篇「原语数最少、却比原语更多的对手更慢」。谜底正在这张表:本篇每枚基元每帧仍要付 k 次网络前向,而解析核的对手一次都不用付。 省下的原语数换不回这一步的开销,所以原语数量的优势被网络的固定成本吃掉了。真正的代价分解在第 12 章:Φ_proj : Φ_dec : 光栅化 ≈ 9 : 2 : 1[§7, p6],光栅化(也就是唯一与像素数相关的那一部分)只占一成。
6同一套办法搬到平面基元:改动清单
这一章讲原文两处最大的扩展之一(另一处是第 9 章的「学习视角相关」)。原文的定位是:除了体积基元,这个思路也能用在 2D 泼溅里的平面基元上,去学一般的 2D 核;为了少重复文字,下文只讲平面基元在定义与处理上与体积基元不同的地方[§5.4, p3]。
6.1 四处改动
| 项 | 体积基元(第 4–5 章) | 平面基元(本章) | 出处 |
|---|---|---|---|
| 几何 | 3D 包围椭球 | 包围椭圆 | §5.4, p3 |
| 投影前隐码 | z₃D(5 维) | z₂D^prior(10 维),表示投影前的一般 2D 核 | §5.4, p3 |
| 投影网络 | Φ_proj(4 层 64 神经元) | 同架构的投影 MLP,把 z₂D^prior 变成 10 维的 z₂D^after | §5.4, p3 |
| 解码器 | Φ_dec(r², z₂D) | Φ_dec^planar(u, v, z₂D^after),隐层神经元翻倍到 8 | §5.4, p3–p4 |
解码那一步写成式子:
其中 (u, v) 是「该像素对应的相机射线」与平面基元在切平面上的交点的 2D 坐标[§5.4, p3]。这正是第 2 章式 (3) 里 2DGS 那套原生参数化,平面侧不需要发明新东西,直接把 (u, v) 接进网络。
6.2 输入从「两个」变成「三个」,性质也变了
最要紧的差别藏在输入里。 体积侧的 Φ_dec 只收 (r², z₂D),两个输入都是与方向无关的:r² 是距离,z₂D 是隐码,输出必然是径向对称的。平面侧收的是 (u, v, z₂D^after),其中 (u, v) 是带方向的坐标。方向一进输入,输出就可以不对称了。
原文明确认领了这一点:我们的平面基元是不对称的,而且可以看成 [Huang et al. 2025] 的推广版本,理由是,式 (8) 是一个 MLP(也就是说,我们没有像那篇那样假设核是参数曲线)[§2.2.2, p2]。
把第 4 章与这一节并排看,会浮出一个问题:为什么体积侧不许不对称、平面侧却可以? 答案在第 4 章已经给过,那条拓扑限制针对的是「把任意 3D 视角条件映射到一个 2D 坐标架」[§5.3.2, p3]。平面基元本身就活在切平面上,(u, v) 是现成的,不需要从 3D 视角去构造坐标架,那道坎根本不存在。所以两侧的差异出于同一个理由,不是疏忽。
6.3 编码器宽度的差别也是一条线索
原文对这一处差异只给了一句理由:Φ_dec^planar 的架构几乎与体积侧的 Φ_dec 相同,只是每个隐层的神经元数翻倍到 8,以应对一般 2D 核多出来的复杂度[§5.4, p3–p4]。
把两处的宽度放在一起看:体积侧 4 个神经元、平面侧 8 个。差别来自输出空间的自由度,径向对称只有「距离」一维要表达,一般 2D 核要表达「哪个方向给多少」。网络只宽了一倍,是因为大部分形状差异仍然由 z₂D^after 那 10 维隐码承担,这一点与第 4 章同构。
6.4 两处数字的来历,与一处原文没交代的地方
先说 (u, v) 的来历,它不需要本篇发明。 第 2 章式 (3) 里那套 2DGS 参数化已经给好了,(u, v) 是「该像素对应的相机射线」与基元在切平面上的交点的局部 2D 坐标[§3, p2]。平面基元本身就躺在这张切平面上,所以它天然有一对平面内坐标,方向信息直接可用。这跟体积侧要靠「相机空间下的朝向」间接表达视角,是两种完全不同的处境。
再说 10 维这个数。 原文只是给出这两个隐码都是 10 维[§5.4, p3],没有解释为什么取 10。能观察到的是它与另外两处改动同步翻倍:体积侧 z 默认 5 维 → 平面侧 10 维;解码器隐层 4 个神经元 → 8 个[§5.3.1, p3;§5.4, p3–p4]。两处都翻倍,方向是一致的:一般 2D 核的自由度比径向对称大。 但原文没有为平面侧做 z 维度的消融(表 4 只消融了体积侧的 z₃D/z₂D 与两个网络的宽度),所以「10 维够不够、9 维或 12 维会怎样」在原文里没有答案。
这处缺口要记下来,因为它与第 10 章那条「效率只在体积侧验证」是同一类问题:本篇的口径在体积侧很细,在平面侧较粗。
6.5 这一章小结:两侧共用的是什么、分开的是什么
| 共用 | 分开 | |
|---|---|---|
| 思路 | 「不算线积分、直接学投影后的核」 + 「形状交给隐码、几何交给包围体」 | — |
| 网络角色 | 一个投影 MLP + 一个核解码器 | 解码器的输入与宽度不同 |
| 对称性 | — | 体积侧必须径向对称;平面侧可以不对称 |
| 隐码 | 都是「投影前 → 投影后」两段 | 维度 5 vs 10 |
这张表里最值得记的是「对称性」那一行。 它是本篇内部唯一的、由理论而非工程决定的分歧点,第 4 章那条 hairy ball 的限制只对体积侧成立,因为只有体积侧才需要从 3D 视角去构造 2D 坐标架。
7预训练与两段式训练:为什么先冻 2000 步
这一章讲训练。 原文把它放在实现细节里,但里面有两条做法要单独拎出来,先预训练两个网络、再把训练分成两段。
7.1 先预训练:在动场景之前,先把两个网络训好
原文的顺序是:我们在 3D 重建之前,先给神经投影与核解码器做预训练[§5.5, p4]。
| 项 | 做法 | 出处 |
|---|---|---|
| 隐码初值 | z₃D 初始化为全零 | §5.5, p4 |
| 网络权重初值 | Φ_proj 与 Φ_dec 都用 He 初始化[He et al. 2015] | §5.5, p4 |
| 优化对象 | 联合优化 Φ_proj 与 Φ_dec | §5.5, p4 |
训练数据是合成的。 原文的做法是:随机采样 μ^cam_3D、s 与 R^cam,然后随机采样 r,按式 (6) 得到目标剖面的样本[§5.5, p4]。也就是说,预训练阶段根本不需要场景、不需要图像,只要在「几何属性」与「剖面」之间造出一组合成对应关系就行。
目标剖面两边不一样,这一处很有说服力:
| 情形 | 目标剖面 | 出处 |
|---|---|---|
| 体积基元 | 一条 1D 余弦函数:d = cos(π/2 · r²) | §5.5, p4 |
| 平面基元 | 2D 高斯 surfel | §5.5, p4 |
为什么体积侧选余弦,原文给了结果但不给理由:它把这件事做成了消融:预训练比不预训练带来更高的重建质量,详见 Tab 5[§5.5, p4]。第 11 章会把那张表逐格算一遍(表 5-1),届时会看到余弦并不是唯一能用的目标,但它是实测最好的那个。
7.2 两段式训练:因为自由度比标准 3D/2DGS 高
原文明确给了分段的理由:我们采用两段式训练策略来提高稳定性,因为我们的基元相比标准 3D/2DGS 有更高的自由度[§5.5, p4]。这句话把因果说清了,分段的动机是先稳住。
| 段 | 做法 | 出处 |
|---|---|---|
| 第一段 | 预训练之后,冻结神经投影与核解码器,冻结前 2000 次迭代(初始点云来自 SfM 与来自随机点,这两种情形分别适用) | §5.5, p4 |
| 第二段 | 全部参数联合优化,损失函数取自[Liu et al. 2025b]:图像损失 + 不透明度与尺度的正则项 | §5.5, p4 |
「前 2000 步冻结」这个设计要顺着自由度的思路才读得通。 标准 3DGS 里,每个基元的属性都是直接可学的量;本篇的基元多了一层,它的形状要先经过两个网络。训练刚开始时,位置与尺度还在剧烈变动(点云刚从 SfM 出来),此时若同时让网络跟着动,两个不稳定的东西互相追。先冻住网络 2000 步,等于先把几何安顿下来,再让网络去适配。
还有一处沿用要记下来。 原文写明:我们也采用了同一篇工作里那个「与核无关(kernel-agnostic)」的 MCMC 密度控制策略,因为它有效、而且不绑死在某类特定核上[§5.5, p4]。这条「不绑核」的性质对本篇是必需的,本篇的核是学出来的,任何假设核形状的密度控制策略都用不了。
7.3 超参一栏
| 项 | 取值 | 出处 |
|---|---|---|
| Φ_proj / Φ_dec 学习率 | 从 1.6 × 10⁻⁴ 指数衰减到 1.6 × 10⁻⁶ | §5.5, p4 |
| 其余参数学习率 | 按[Kheradmand et al. 2024]设置 | §5.5, p4 |
| 优化器 | Adam | §5.5, p4 |
| 迭代数 | 每个实验 30K 次 | §5.5, p4 |
| 冻结步数 | 第一段前 2000 次 | §5.5, p4 |
| 平均训练时长 | 53 分钟(§6 口径) | §6, p4 |
学习率衰减了两个数量级,这与第 4、5 章那两个网络「只负责一个被划得很小的子问题」是同一件事的两面:它们的搜索空间小,所以可以用更细的步长去收。
7.4 训练循环的伪码
前提 1:z₃D 全零初始化;Φ_proj / Φ_dec 用 He 初始化。
前提 2:预训练不依赖场景,只用合成的 (几何属性, 剖面) 对(§5.5)。
#,预训练(无场景),
repeat:
随机采 μ^cam_3D, s, R^cam
随机采 r,按目标剖面取样本
体积:d_target = cos(π/2 · r²)
平面:d_target = 2D 高斯 surfel 的值
联合优化 Φ_proj 与 Φ_dec 去贴合 d_target
#,建场景(两段式),
初始化基元(点云来自 SfM 或随机点)
for iter in 1 … 2000: # 第一段:稳住几何
冻结 Φ_proj 与 Φ_dec
只优化基元属性
for iter in 2001 … 30000: # 第二段:全部联合
优化全部参数(损失 = 图像损失 + 不透明度/尺度正则,取自 [Liu et al. 2025b])
Φ_proj / Φ_dec 的学习率从 1.6e-4 指数衰减到 1.6e-6
密度控制:沿用 [Liu et al. 2025b] 的 kernel-agnostic MCMC
这段伪码里有两次「先」:先训网络再建场景,先稳几何再动网络。两次都是同一类判断,把耦合的两件事错开,别让它们同时收敛。
8主结果:4 个基准 21 个场景上它站在哪
这一章是账面。 原文把评测信息压在三段里:机器、场景、指标。
8.1 先钉住口径
原文交代的评测条件是:
| 项 | 取值 | 出处 |
|---|---|---|
| 机器 | 双 AMD EPYC 7763 CPU + 768GB 内存 + RTX 4090 | §6, p4 |
| 唯一例外 | 平面基元在 Drjohnson 与 Treehill 两个场景上改用 RTX PRO 6000,原因是内存需求 | §6, p4 |
| 场景 | 4 个基准共 21 个场景:Mip-NeRF 360 9 个、Tanks & Temples 2 个、Deep Blending 2 个、NeRF Synthetic 8 个 | §6, p4 |
| 数据性质 | 除 NeRF Synthetic 外全部是实拍图像 | §6, p4 |
| 指标 | PSNR、SSIM、LPIPS,在全部测试图像上取平均 | §6, p4 |
| 平均训练时长 | 53 分钟 | §6, p4 |
那条「唯一例外」必须跟着结果一起读。 平面基元在两个场景上要换一块更大的卡才跑得动[§6, p4],这说明本篇的显存账在平面侧并不轻松。第 10 章会看到:表示效率那张表(表 2)其实只算了体积侧。两条合起来,本篇在平面侧的显存成本是没有被量化的。
NeRF Synthetic 是合成场景这一条也要留意。 原文写明除它之外全是实拍[§6, p4]。表 1 里 NeRF Synthetic 那一列的数字普遍高出一大截(我们的 PSNR 在 34 以上),这个量级差首先来自数据本身。
8.2 对比对象分两类
原文把基线按来源分成两组[§6.1.1, p4]:
| 组 | 3D 侧 | 2D 侧 |
|---|---|---|
| 解析核 | 3DGS[Kerbl et al. 2023]、3DGS-MCMC[Kheradmand et al. 2024]、SSS[Zhu et al. 2025]、DBS[Liu et al. 2025b] | 2DGS[Huang et al. 2024] |
| 学出来的表示 | SplatNet[Zhou et al. 2025]、3DCS[Held et al. 2025c] | BBSplat[Svitov et al. 2024]、DRK[Huang et al. 2025] |
这个分组本身就是本篇的定位:它在两组里同时参赛,而且两组都有对手。第 1 章说的「两条前人路线各有死结」,在这里变成了一张表上的两排对手。
本篇自己有两个变体,区别只在颜色模型:用球谐(SH)的,和用球面 Beta(SB)的要[§6.1.1, p4]。原文的判词是:在 3D 与 2D 两种泼溅上,我们的方法在所有基准的所有画质指标上都是最好或次好[§6.1.1, p4]。逐场景的细分数据原文放进了补充材料[§6.1.1, p4]。
8.3 把表 1 自己算一遍
这句话不能只信结论,得数一遍。 表 1 是 4 个数据集 × 3 个指标 = 12 个小格;每个小格里,本篇的某个变体要么第一、要么第二,才叫「最好或次好」。挑几处验一下:
| 数据集 | 指标 | 我们最好的变体 | 同格最强的对手 | 出处 |
|---|---|---|---|---|
| Mip-NeRF360 | PSNR↑ | 28.82(Ours 3D+SB) | DBS 28.60 | 表 1, p5 |
| Mip-NeRF360 | LPIPS↓ | 0.185(Ours 3D+SH) | DBS 0.182(对手更好) | 表 1, p5 |
| Tanks & Temples | PSNR↑ | 25.42(Ours 3D+SH) | SSS 24.87 | 表 1, p5 |
| Deep Blending | PSNR↑ | 30.54(Ours 3D+SB) | DBS 30.10 | 表 1, p5 |
| NeRF Synthetic | PSNR↑ | 34.72(Ours 3D+SH) | DBS 34.64 | 表 1, p5 |
这样数下来,「最好或次好」是站得住的,但它有一个重要读法:并非每一格都是第一。 Mip-NeRF360 的 LPIPS 上 DBS 的 0.182 就比我们的 0.185 更小(LPIPS 越小越好);Mip-NeRF360 的 SSIM 上 DBS 的 0.844 也比我们最好的 0.842 略高[表 1, p5]。换句话说,在最主流的那个基准上,本篇的优势集中在 PSNR,而在 SSIM 与 LPIPS 上是紧咬、并非领先。 这一点原文没有单独强调,但它在表里明摆着。
另一个要看清的地方是「两个变体差多少」。 同一行里 Ours(3D+SH)与 Ours(3D+SB)的差距很小,比如 Mip-NeRF360 上是 28.73 对 28.82、NeRF Synthetic 上是 34.72 对 34.58[表 1, p5]。颜色模型换掉并不改变结论,这与第 11 章「关掉视角相关颜色会怎样」是两件不同的事,后者会掉得更多。
表里还有一行是给消融用的:Ours (3D,w/o SH) for ablation,28.53 / 0.835 / 0.192(Mip-NeRF360)[表 1, p5]。它不参与排名,第 11 章会展开。
8.4 2D 图像表示那一笔
平面侧的画质对比在表 1 里与 2DGS、BBSplat、DRK 同框[§6.1.1, p4;表 1, p5]。而 2D 图像表示上,原文另给了与 GabSplat[Wurster et al. 2024]的对照,条件是两者使用相近的原语内存占用[Fig. 4, p5]。
30.63|0.914|0.289 与 29.18|0.907|0.303);画面里还叠了各方法的 2D 核样本可视化(核长什么样直接画出来),核样本旁边是局部放大视图。②读法:先看同一组里 Ours 与 GabSplat 的两个三连数,差值就是这一组上的胜负;再看核样本,GabSplat 的核是受限形状,我们的是一般 2D 核,这一栏说明的是「画质差从哪里来」。
来源:Learning View-Dependent Splatting Kernels, Fig. 4, p5 · © 2026 the owner/author(s)(CC BY-NC-ND 4.0,逐图署名引用)· 原样引用,未修改
这张图的边界写在原文图注的最后一句里:与 3D 泼溅不同,这里学到的核是一般 2D 核,不限于径向对称[Fig. 4 图注, p5]。这正是第 6 章那条路径的兑现,图 4-1 是本篇唯一展示「不对称核」的证据图。
定性对比另外放在图 7 里,对手是 3DGS-MCMC、SSS 与 DBS 三条[§6.1.1, p4]。
图 7-1 有一个容易被误读的排印事实。 它印在 p8,而参考文献从 p7 就开始了,这不是「附录里的补充结果」:原文把两张大宽图推迟(floated)到末两页。正文对它的引用在 §6.1.1[§6.1.1, p4],本章与第 10 章按引用位置归属,看页序会误判。
9学出来的核长什么样
第 1 章说「核是本篇要学的东西」,这一章看它到底学出了什么。 原文给了三张图,分别回答三个层次的问题:同一枚印在不同视角下变不变、统计上怎么变、会不会随场景类型分化。
9.1 图 3-1:剖面随视角变,前人的不变
原文的做法是把剖面并排画出来比。 原文说:我们先可视化不同方法里单个径向对称核的 1D 剖面,包括我们的几个 k 变体、vanilla 3DGS、SSS 与 DBS[§6.1.2, p4]。
它特意指出了一处差别:我们的核是「通过学习」而视角相关的,而前人那些核(在第 3 章描述的仿射变换之前)是视角无关的[§6.1.2, p4]。
这张图的读法决定能不能看懂它在说什么。 它不是「形状对比图」,而是「同一方法跨视角的稳定性对比图」。前面几行(我们的)跨列会变形,后面几行(前人的)跨列几乎重合:那个「会变形」就是本篇标题里 view-dependent 的可见形式,也是第 3 章 Φ_proj 多喂三样输入的产出。
9.2 图 5-1:一个标量统计量,随视角变也随场景变
原文的办法是挑一个标量来统计。 它说:在 Fig. 5 里我们可视化学到的核跨视角与跨场景的统计[§6.1.2, p4]。
这个标量选得很巧:d₁ = Φ_dec(0, z₂D),也就是核在中心处(r = 0)的落墨率,原文注明它按式 (6) 定义[§6.1.2, p4]。一条剖面被压成一个数:这个数就是「这枚印最中心有多浓」。
原文从这张图里读出两件事:这个直方图不只因为学出来的视角相关性而随视角变化,它还随不同场景变化,这展示了我们把核的几何适配到输入数据的能力[§6.1.2, p4]。
「随场景变」这一句比「随视角变」更要留意。 随视角变是 Φ_proj 的输入里带了视角信息的直接后果;而随场景变意味着,同一个网络、同一套权重,在不同场景里长出了不同的核分布。这条性质正是 11.3 节那个「专用基元」结论的入口。
9.3 图 6-1:核会不会随场景类型分化
原文在这一节做了一次控制实验。 它挑了两类场景,毛发与植被:并说明数据是这么造的:对每个场景,我们生成 100 张训练图像,做法是在上半球上随机采一个朝向场景中心的视点,然后用 Blender 把对应的 3D 场景渲出来[§6.2, p6]。
结论有两句,第二句是重点。 第一句:图中显示基元分布与场景类型之间存在强相关[§6.2, p6]。第二句:对每一类场景,学到的基元的总体分布看起来相当相似[§6.2, p6]。
原文从这个「相似」直接推出一句关于未来的话,值得原文照录:这提示了一项有意思的未来工作,进一步压缩这些相似的基元,以获得更高效的表示;换句话说,这个框架可以当工具用,去自动生成新的、面向特定场景类型的专用泼溅基元,而不再只用通用基元[§6.2, p6]。
把这句话放回全篇的动机里看,它的分量不小。 第 1 章那个「正方形比高斯省」的例子问的是「什么形状最优」;到这一章,答案变成了「形状没有唯一最优,它取决于场景类型」:而这正是把「核」从手工设计里拿出来的全部理由。
10表示效率:同样的内存预算换回多少画质
第 8 章比的是画质,这一章比的是「花多少内存换这些画质」。 原文的小标题是表示效率[§6.1.3, p4]。
10.1 口径:先关掉颜色,只看几何
这一节的做法有一处刻意的简化,必须跟着结果一起读。 原文说:具体来说,按照[Liu et al. 2025b]补充材料里的协议,我们关掉全部视角相关的颜色成分,以便把注意力集中在核的几何带来的影响上[§6.1.3, p4]。
换句话说,这张表量的是「核」的功劳,不是「颜色模型」的功劳。 表 1 是完整系统对完整系统,表 2 是把两边都削到只剩几何之后的对照,两张表的差别正是本篇「几何视角相关」与「颜色视角相关」的分工(第 11 章会回到这一条)。
比较的条件是:在 Tanks & Temples 数据集上,给每类方法三档不同的原语内存占用:约 25MB、约 50MB、约 100MB[§6.1.3, p4;表 2, p5]。指标三项:重建质量(PSNR)、原语数量(#Prim.)、渲染速度(FPS)[表 2 注文, p5]。
10.2 把表 2 自己算一遍
原始读数(表 2, p5)先摆全,下面所有结论都从这里算:
| 方法 | ~25MB 档:PSNR / #Prim. / FPS | ~50MB 档 | ~100MB 档 |
|---|---|---|---|
| 3DGS | 23.12 / 446K / 295 | 23.36 / 893K / 232 | 23.38 / 1.79M / 198 |
| 3DGS-MCMC | 22.83 / 446K / 301 | 23.40 / 893K / 235 | 23.68 / 1.79M / 165 |
| SSS | 23.90 / 391K / 130 | 24.20 / 781K / 104 | 24.38 / 1.56M / 80 |
| DBS | 23.57 / 417K / 319 | 23.79 / 833K / 249 | 24.24 / 1.67M / 178 |
| Ours (k=2) | 22.80 / 328K / 123 | 24.18 / 657K / 80 | 25.22 / 1.32M / 42 |
| Ours (k=4) | 24.08 / 328K / 102 | 24.66 / 657K / 67 | 25.15 / 1.32M / 36 |
| Ours (k=8) | 24.19 / 328K / 96 | 24.70 / 657K / 55 | 25.04 / 1.32M / 28 |
第一笔账:在最小的那一档,本篇其实是全场最低。 25MB 档里,Ours(k=2) 的 22.80 低于 3DGS-MCMC 的 22.83、更低于 3DGS 23.12、DBS 23.57、SSS 23.90[表 2, p5]。把 k 调大能救回来(k=4 → 24.08、k=8 → 24.19,都超过 SSS),但那意味着「在极小预算下想用好它,得自己把 k 调上去」:这个前提原文没有明说,是表里读出来的。它的原语数在这一档是最少的(328K),与「PSNR 最低」并列,说明这一档不是它的主场。
第二笔账是这一节真正的论据:用一半的原语数,赢过对手的最大档。
| 对比 | 我们(中档,657K) | 对手的最好档 | 结果 |
|---|---|---|---|
| Ours (k=8) vs SSS 最大档 | 24.70 @ 657K | 24.38 @ 1.56M | +0.32 PSNR,原语只用 42.1% |
| Ours (k=4) vs DBS 最大档 | 24.66 @ 657K | 24.24 @ 1.67M | +0.42 PSNR,原语只用 39.3% |
| Ours (k=8) vs 3DGS 最大档 | 24.70 @ 657K | 23.38 @ 1.79M | +1.32 PSNR,原语只用 36.7% |
(三行的「对手最好档」都取自同一个数据集的 ~100MB 档;比例按 #Prim. 现算。)
第三笔账是最大档的绝对领先。 Ours(k=2) 在 ~100MB 档拿到 25.22,比第二好的 SSS(24.38)高 0.84,而它用的原语是 1.32M,比 SSS 的 1.56M 少 15.4%、比 DBS 的 1.67M 少 21.0%[表 2, p5]。注意这一档里 k=2 反而是最好的(25.22 > k=4 的 25.15 > k=8 的 25.04):这与 25MB 档里 k 越大越好的趋势正好相反,第 11 章会把这条单独讲。
10.3 代价记在帧率上
上面前三笔账都没有把 FPS 算进去。 一旦算进去,画面就变了:
| 档 | 我们的 FPS | 对手的 FPS | 倍数 |
|---|---|---|---|
| ~25MB | 123(k=2) | 295(3DGS)/319(DBS) | 慢 2.4–2.6× |
| ~50MB | 80(k=2) | 249(DBS) | 慢 3.1× |
| ~100MB | 42(k=2) | 178(DBS) | 慢 4.2× |
「原语更少」并没有带来「更快」。 这看起来与直觉相反,原因在第 5 章埋过伏笔:加速那一手把 Φ_dec 的调用次数降到了 k 次,但它没有把网络从渲染里拿掉:每枚基元每帧仍要跑 k 次网络,还有 Φ_proj。作者的量化在第 12 章:Φ_proj、Φ_dec 与光栅化的耗时比约为 9 : 2 : 1[§7, p6]。两个网络吃掉了九成以上的时间,原语数量的优势因此被掩盖。
还有一件容易被漏掉的事:内存不随 k 变。 表 2 的注文写得很明确,我们的内存占用不随 k 变化[表 2, p5]。三档里 k=2/4/8 的原语数完全一样(328K/657K/1.32M)就是这个意思。原因是第 5 章那条:k 只是运行期的采样密度,采样值是由 Φ_dec 现算的,不作为基元参数存下来。所以 k 是一个可以事后调、且不花内存的旋钮。
10.4 定性对照与两条口径限定
图 8 把「不同内存预算」下的定性对比画了出来,对手与图 7 相同(3DGS-MCMC、SSS、DBS),我们的三个 k 变体都出现[§6.1.1, p4;Fig. 8 图注, p9]。
这一节有两条口径限定要跟着写出来,否则容易把结论放大:
- 限定一:表 2 只算了体积侧。 表里七行全是体积基元(我们的三行是 k=2/4/8),平面基元的效率没有被量化。第 8 章那条「平面基元在两个场景上必须换用 RTX PRO 6000」暗示平面侧的显存成本不低,但原文没有给出数字[§6, p4]。
- 限定二:只在 Tanks & Temples 一个数据集上做。 表 2 的注文写明比较是在该数据集上进行的[表 2 注文, p5]。效率结论没有跨数据集验证。
11四个旋钮,与一个「k 看预算」的结论
这一章把散在三张表里的消融并到一处。 原文一共转了四个旋钮:Φ_proj 吃什么(表 3)、隐码维度与网络宽度(表 4)、预训练的目标剖面(表 5)、以及颜色模型(表 1 里那一行)。外加 k 这个不花内存的旋钮。
11.1 旋钮一:Φ_proj 的输入(表 3)
这一张表兑现的是第 3 章那句「多喂因子能提质量又不伤泛化」。 对象是 Tanks & Temples 与 Deep Blending 两个数据集,末行是当前选择[表 3 注文, p6]:
| Φ_proj 的输入 | Tanks & Temples PSNR↑ | Deep Blending PSNR↑ |
|---|---|---|
| z₃D | 24.92 | 29.96 |
| z₃D, ωo | 24.97 | 30.09 |
| μ^cam_3D, s, R^cam(不含 z₃D) | 24.82 | 30.49 |
| z₃D, s, R^cam | 25.37 | 30.06 |
| z₃D, μ^cam_3D, R^cam | 25.45 | 30.18 |
| z₃D, μ^cam_3D, s | 24.53 | 30.25 |
| z₃D, μ^cam_3D, s, R^cam(当前选择) | 25.42 | 30.52 |
算三处增量,能把这几个因子各自的份量分开:
- 加上 R^cam 值多少:
z₃D, μ^cam_3D, s→z₃D, μ^cam_3D, s, R^cam,T&T 上从 24.53 涨到 25.42(+0.89);DB 上从 30.25 涨到 30.52(+0.27)[表 3, p6]。这是单笔最大的一处提升,与第 3 章「R^cam 高效编码了 3D 视角信息」那句话对得上。 - 加上 z₃D 值多少:
s, R^cam→z₃D, s, R^cam,T&T 上从 24.82 涨到 25.37(+0.55)[表 3, p6]。核的隐码本身是有用的。 - 去掉 z₃D 代价多大:
z₃D, s, R^cam→s, R^cam,T&T 上从 25.37 掉到 24.82(−0.55):与上一条同源,方向一致。
但这里有一处两数据集不一致,值得点出来。 单看 T&T,最好的是 z₃D, μ^cam_3D, R^cam(25.45),比当前选择的 25.42 高 0.03;换成 Deep Blending,最好的却是当前选择(30.52),而前者只有 30.18。当前选择在 DB 上第一、在 T&T 上只差 0.03:这就是原文说它「在保持泛化能力的同时」的实测含义:默认组合不是每个单表上的最优,但它是唯一在两个表上都接近最优的。
11.2 旋钮二:隐码维度与网络宽度(表 4)
这张表把「两个隐码」与「两个网络」的规模摆在一起,还带一列内存[表 4, p6]:
| 变体 | T&T PSNR↑ | T&T Mem.(MB)↓ | DB PSNR↑ | DB Mem.(MB)↓ |
|---|---|---|---|---|
| dim(z₃D)=1 | 25.10 | 360.04 | 30.19 | 660.04 |
| dim(z₃D)=10 | 25.52 | 414.04 | 30.12 | 759.04 |
| dim(z₂D)=1 | 24.94 | 384.04 | 29.37 | 704.04 |
| dim(z₂D)=10 | 25.46 | 384.04 | 29.97 | 704.04 |
| width(Φ_proj)=32 | 25.14 | 384.01 | 30.13 | 704.01 |
| width(Φ_proj)=128 | 25.50 | 384.15 | 30.33 | 704.15 |
| width(Φ_dec)=8 | 25.47 | 384.04 | 30.48 | 704.04 |
| width(Φ_dec)=2 | 24.75 | 384.04 | 30.41 | 704.04 |
| 默认(5/5/64/4) | 25.42 | 384.04 | 30.47 | 704.04 |
先看内存那一列,它的规律比画质那一列更干净。 九行里,只有 dim(z₃D) 那两行动了内存(360.04 / 414.04),其余七行全部停在 384.04 或只差 0.01–0.15 MB[表 4, p6]。原因不难推:z₃D 是逐基元存储的参数,维度直接乘进基元存储里(9 个维度差对应 54 MB,即约 6 MB/维);而 z₂D 是 Φ_proj 在渲染时现算出来的,网络宽度是全局共享的权重,两者都不逐基元占内存。所以「想省内存就压 z₃D,想提画质就加宽网络」:这两件事的代价完全不在一个量级上。
再看画质那一列,它给出的是一条「两端都好、中间有坑」的曲线:
- dim(z₂D)=1 是最伤的一处:DB 上只有 29.37,是全表最低(比默认的 30.47 掉 1.10);T&T 上 24.94 也是全表第二低,只比最低的 width(Φ_dec)=2(24.75)好一点[表 4, p6]。投影后的隐码太窄,投影这一步就表达不出来,这与第 3 章「Φ_proj 的输出是 z₂D」的定位一致。
- width(Φ_dec)=2 是另一处:T&T 24.75,比默认的 25.42 掉 0.67[表 4, p6]。解码器再小也有底线。
- 两端加大都能换到一点:dim(z₃D)=10 在 T&T 上拿到全表最高的 25.52(+0.10,代价 +30 MB);width(Φ_proj)=128 拿到 25.50(+0.08,代价 +0.11 MB);width(Φ_dec)=8 在 DB 上拿到最高的 30.48(+0.01)[表 4, p6]。
这一处「两份数据集的赢家不同」又一次出现:dim(z₃D)=10 在 T&T 上第一,在 DB 上却是 30.12,低于默认的 30.47 不少。原文对默认组合的判词是「在质量与内存占用之间取得了良好的平衡」[§6.2, p6],上面这笔账正是它的依据。
11.3 旋钮三:预训练的目标剖面(表 5)
这是本篇最值得细看的一张消融,因为它把「预训练有没有用」与「用哪种目标」分开了。 对象是 Tanks & Temples,列为五种预训练方式 × 三档 k,单位是 PSNR[表 5, p6]:
| 预训练目标 | k = 2 | k = 4 | k = 8 |
|---|---|---|---|
| 不预训练 | 23.18 | 23.72 | 18.54 |
| Gaussian | 25.24 | 25.04 | 25.11 |
| polynomial | 25.37 | 25.37 | 25.20 |
| linear | 25.22 | 25.26 | 25.15 |
| cosine(本篇选择) | 25.42 | 25.34 | 25.42 |
把两笔差分开算,结论会很清爽:
- 「预训练 vs 不预训练」的差是 1.62–6.88 PSNR。k=2 时 25.42 − 23.18 = +2.24;k=4 时 25.34 − 23.72 = +1.62;k=8 时 25.42 − 18.54 = +6.88[表 5, p6]。这是数量级最大的一笔。 原文对这一处的限定是:在不预训练的实验中,学习率被乘了 10[§6.2, p6],也就是说这条对照已经给了「不预训练」一个更激进的步长,差距仍然这么大。
- 「四种预训练目标之间」的差最多只有 0.20–0.33。k=2 时四值落在 25.22–25.42(跨度 0.20);k=4 时 25.04–25.37(跨度 0.33);k=8 时 25.11–25.42(跨度 0.31)[表 5, p6]。
两笔并起来读,才是这张表真正说的话:要紧的是「先预训练」这件事本身,至于拿什么形状当目标,并没有那么要紧:四条曲线彼此贴得很近。原文的口径是「我们选择余弦形状,因为它带来最好的结果」[§6.2, p6];按上表,余弦在 k=2 与 k=8 两列上是第一,在 k=4 那一列上输给 polynomial 0.03。这个选择是「同类里最好」,不是「唯一能用」。
k=8 那一列的 18.54 还要单独看一眼。 不预训练时 k=8 掉得比 k=4(23.72)和 k=2(23.18)都狠,说明没有预训练打底时,把剖面采样点加密不但没帮助,反而更容易训崩。这与 13.4 节那条「k 该取多大看预算」是同一条线索的两端。
11.4 旋钮四:k,以及它为什么会转向
k 的结论藏在表 2 的后三行里(第 10 章已经摆过原始读数)。原文的判词是:在原语内存占用较小时,增大 k 会带来更高的重建质量,因为学到的核的表达力提高了;而在内存占用较大时,这个趋势观察不到[§6.2, p6]。
把三档的 k 曲线拉出来,这条判词是能量化的:
| 档(#Prim.) | k=2 | k=4 | k=8 | 趋势 |
|---|---|---|---|---|
| ~25MB(328K) | 22.80 | 24.08 | 24.19 | 递增,k=2→4 一次涨 +1.28 |
| ~50MB(657K) | 24.18 | 24.66 | 24.70 | 递增,但涨幅缩到 +0.48 / +0.04 |
| ~100MB(1.32M) | 25.22 | 25.15 | 25.04 | 反向递减,k=2 反而最好 |
原文给的理由是:随着原语数量(也就是内存占用)增加,每枚泼溅在屏幕空间里的平均尺寸变小了;于是简单的锥形帽形状的核(k = 2)已经足以产出令人满意的结果,同时还比用更大的 k 渲染更快[§6.2, p6]。
这句解释值得拆开来验证一遍。 原语越多 → 平均每枚铺得越小 → 剖面在屏幕上的「可见范围」越窄 → 用两个采样点加线性插值(一条折线,也就是锥形帽)就能把这条窄剖面描述够。反过来在 328K 那一档,每枚铺得大,折线不够,多给几个采样点确实能换到画质。原文还补了一句旁证:这个结果与[Celarek et al. 2025]的主要结论一致[§6.2, p6]。
FPS 那一列是这条结论的另一半:三档里 k 越大帧率越低(328K 档 123→96;657K 档 80→55;1.32M 档 42→28)[表 2, p5]。所以「大预算下 k=2 够用」同时意味着更快:这也是本篇在最大档取 k=2 的理由。
11.5 颜色模型那一条,与一句「不等价」
最后一项消融在表 1 里。原文说:在 Tab. 1 中,我们把基于视角相关 SH 的颜色模型换成一个每基元单一的常数颜色,记作 Ours (3D,w/o SH),结果质量更低[§6.2, p6]。
换掉颜色模型会掉多少,表 1 的 Mip-NeRF360 那一行给得很清楚:Ours (3D,w/o SH) 28.53 / 0.835 / 0.192,对照 Ours (3D+SH) 的 28.73 / 0.842 / 0.185[表 1, p5],PSNR 掉 0.20、SSIM 掉 0.007、LPIPS 升 0.007。这比 13.2 节里任何单个旋钮的影响都大,但比 13.3 节的预训练小得多。
原文紧接着给了一句判词,是这一节最该记下来的一句:颜色的视角相关性与几何的视角相关性不应被视为等价,因为它们在不同的通道上工作(也就是 RGB 与 alpha 通道)[§6.2, p6]。
这句话的用意是划定边界。 本篇标题里的「view-dependent」指的是几何(核的形状随视角变),而 SH/SB 带来的是颜色随视角变。两者都会让画质变好,但它们是两件可以独立开关的事,不能互相代替:「w/o SH」那一行正是这个说法的证据。
12边界与反例
这一章把原文自己承认的局限、与从数据里读出来的边界,放在一处。 前者以 §7 为主,后者散在第 10–13 章里。
12.1 作者自己列出的三条局限(§7)
第一条,也是最硬的一条:渲染速度低于同代方法。 原文的措辞是:如 Tab. 2 所示,我们的渲染速度低于 state-of-the-art 技术,即使在很多情况下我们能达到实时性能(> 50 fps)[§7, p6]。
原因原文给得很实:Φ_proj 与 Φ_dec 主要是为重建质量与表示效率设计的;当前在 Φ_proj、Φ_dec 与光栅化之间的耗时分解大约是 9 : 2 : 1[§7, p6]。
这个 9 : 2 : 1 是整篇最该记住的一个数。它说明本篇的瓶颈不在几何、不在光栅化,而在那两个 MLP:光栅化只占一成。第 10 章「原语更少却更慢」的谜底就在这里。
出路原文也列了两条:可以用各种加速手段把这两个 MLP 蒸馏成高性能版本(权值剪枝、切到 FP16 精度等),或者甚至用符号回归(symbolic regression)之类的方法反推出等价的解析方程[§7, p6]。第二条比第一条更要留意:它等于说:本篇学出来的核,有希望被重新写成一条手写式子,也就是回到第 1 章那条「解析核」的路上,但这次是由数据指定的式子。
第二条:没有考虑抗锯齿。 原文写:我们没有把抗锯齿纳入考虑;看起来有可能把我们的方法与相关技术(如[Yu et al. 2024a])结合起来[§7, p6]。
第三条:没有用高级编码。 原文写:Φ_proj 与 Φ_dec 的输入没有采用任何高级编码方法(比如位置编码、频率编码);我们有兴趣探索不同的编码来进一步改进性能,尤其是在 2D 泼溅上[§7, p6]。
这三条合起来读,有一个共同的形态:本篇把「核学出来」这件事先做通了,把工程上的三项常规优化(加速、抗锯齿、编码)全部留在了外面。 这不是遗漏,原文把它们逐条当作未来工作列了出来。
12.2 从数字里读出来的边界(原文没有单列)
下面这几条在原文里没有集中写,但表与正文里都摆着,读的时候要跟着结论一起带上:
| # | 边界 | 依据 |
|---|---|---|
| B1 | 「最好或次好」不等于「每格第一」。Mip-NeRF360 的 LPIPS 上 DBS 的 0.182 比我们的 0.185 更好,SSIM 上 DBS 的 0.844 也略高于我们最好的 0.842 | 表 1, p5;第 10.3 节 |
| B2 | 最小内存档(~25MB)里,k=2 的 PSNR 是全场最低(22.80),需要把 k 调大才超过对手 | 表 2, p5;第 12.2 节 |
| B3 | 表示效率只在体积侧、且只在 Tanks & Temples 一个数据集上验证 | 表 2 注文, p5;第 12.4 节 |
| B4 | 平面基元的显存成本没有被量化,而它在 Drjohnson/Treehill 上必须换用 RTX PRO 6000 才跑得动 | §6, p4;第 10.1 节 |
| B5 | 默认组合不是任何单表上的最优:T&T 上 z₃D, μ^cam_3D, R^cam 的 25.45 高于默认的 25.42;dim(z₃D)=10 的 25.52 也更高 | 表 3、表 4, p6;第 13.1–13.2 节 |
| B6 | k 的收益方向会随预算翻转(小预算递增、大预算递减),所以「增大 k」不是一条无条件正确的建议 | 表 2, p5;第 13.4 节 |
| B7 | 预训练目标的选择只影响 0.20–0.33 PSNR,而有/无预训练的差是 1.62–6.88:结论对目标形状并不敏感,但对预训练本身高度敏感 | 表 5, p6;第 13.3 节 |
| B8 | NeRF Synthetic 是合成场景,其余三个基准是实拍;该列数字(PSNR 34 以上)的量级差首先来自数据 | §6, p4;第 10.1 节 |
| B9 | 一般 2D 核在体积侧被主动放弃(径向对称是拓扑上的必需),因此体积侧的核在给定视角与给定基元下没有方向自由度;自由方向只出现在平面侧 | §5.3.2, p3;第 4 章 |
12.3 原文给未来工作的四句话
§7 后半段列了一串未来方向,其中四句照录,因为它们标出了本篇的位置[§7, p6]:
- 自动设计图形表示:希望这项工作能激发更多关于「图形表示自动设计」的研究(例如为特定类型的场景开发高效、专用的表示),甚至包括处理管线本身[Zeng et al. 2025]。
- 视角相关性到底学到了什么:分析视角相关性里究竟学到了什么,并把它与刚性的欧氏 3D 一致性作比较;学到的一致性也许能帮助其他任务,比如正则化生成式 3D 建模。
- 时序指标:希望在时间域上计算量化指标,以系统性地分析动画里的重建质量[Liang et al. 2023]。
- 与重光照结合:希望与重光照方向的 state-of-the-art 工作[Bi et al. 2024]结合,以支持新视角与新光照条件下的高效图像合成。
第一条与第二条合起来,是这篇论文最像「一个开头」的地方。 它没有声称找到了最优核,而是给了一个能学核的框架,并把「核应该按场景类型分工」与「视角相关性到底是什么」这两件事留在门口。
13这篇论文的六条贡献
- 一个绕开线积分的可微框架:不算 3D 密度沿视线的线积分,而是直接学投影之后的 2D 核,从而不再需要闭式积分、也不绑死在某类网络上(§1、§5;第 1–2 章)。
- 两个轻量全局网络:Φ_proj(4 层 64 神经元)负责 3D 核 → 2D 核的投影,Φ_dec(3 层 4 神经元)负责把 r² 解成不透明度;两者共用一套权重、与基元属性联合优化(§5.2、§5.3;第 4–5 章)。
- 学出来的视角相关性:核随视角变化,而不是像前人那样只在「基元形状」上体现视角(§2.1、§6.1.2;第 9 章)。
- 一套可落地的加速:把 1D 剖面在 k 个 r 采样点上预求值、渲染时插值,把「基元内像素数」与「网络调用数」解耦,且不占额外内存(§5.3.3;第 5 章)。
- 径向对称的一处理论依据:用 hairy ball 定理说明「任意 3D 视角 → 2D 坐标架」的映射不连续,并给出在动画里会退化成核突转的实测后果(§5.3.2;第 4 章)。
- 向平面基元的扩展:同一套办法学一般 2D 核(不对称、10 维隐码、解码器隐层翻倍),并把它与既有的可学习径向核工作区分开(§5.4;第 6 章)。
- 实验与三条口径限定:4 个基准 21 个场景上画质达到最好或次好;三档内存预算下的表示效率;以及作者自己列出的速度、抗锯齿、编码三项局限(§6、§7;第 10–14 章)。
14出处、许可与怎么读这篇
| 项 | 内容 |
|---|---|
| 标题 | Learning View-Dependent Splatting Kernels |
| 作者 | Huakeng Ding\、Zhanpeng Liu\、Fan Pei、Kun Zhou†、Hongzhi Wu†(浙江大学 CAD&CG 国家重点实验室;Kun Zhou 另兼杭州全息与人工智能技术研究院)· \* 并列第一作者,† 通讯作者 |
| 发表 | ACM SIGGRAPH Conference Papers '26(Special Interest Group on Computer Graphics and Interactive Techniques Conference Conference Papers),2026-07-19–23,Los Angeles, CA, USA · 10 页 |
| 标识 | DOI 10.1145/3799902.3811064 | ISBN 979-8-4007-2554-8/2026/07 | arXiv 2605.25426v1 [cs.GR](2026-05-25) |
| 项目页 | https://optkernel.github.io |
| 授权 | CC BY-NC-ND 4.0(依据所据 PDF 内的权利块)。PDF 首页左栏页脚(7.0 pt,y 643–684)印 This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.,同处另有 © 2026 Copyright held by the owner/author(s). 与 ACM ISBN;而 arXiv 摘要页 License 字段为 http://arxiv.org/licenses/nonexclusive-distrib/1.0/(arXiv 非独占分发),两处不一致。实测 nonacm/Engage/enable CC/ACM Engage 四关键词全部 0 命中,故不套用篇目 56 的判法(那个判法的前提是「CC 行与模板警告并存」,本篇不存在该前提)。⇒ 可原样引用、可站内托管原文 PDF,落点三件(index.html + thumb.webp + paper.pdf),卡片 chip 不带 warn;因 ND 禁演绎,封面与图件一律等比缩放、不裁切、不加标注、不施滤镜,逐图给出「图号 + 页码 + 出处 + 未修改」四字段。反向证据照录留档:若改以 abs 页为准,本篇应判非 CC(落点两件、chip 带 warn、不托管 PDF),改动面为两处。 |
| 使用说明 | 本篇正文只对原文作简短引用;摘要为英文原样引用并标页码;所有原图未裁切拼接、未加标注、未施滤镜,逐图给出「图号 + 页码 + 出处 + 未修改」四字段 |