篇目 62 · 单篇论文精读

不逐张发贴纸,改查一本公共字典:让每个高斯自己去算纹理

3DGS 的表达力卡在一个很朴素的地方:一个高斯只有一个核,它那一小块的颜色与不透明度分布就由这一个核说了算。前人想到的路是给每个高斯再挂一张小贴图(per-splat texture),但这条路只在「视角稠密 + 高斯数量被压得很低」的新视角合成上被验证过;一换到稀疏视角、表面重建、动态场景,效果就明显缩水。原文把原因拆成两条:贴图是印死的,从哪个角度看都一样、也不随时间变;而且每张各写各的,相邻两张接不上、容量还冗余,训练时容易背答案(表 1 里那条「训练 PSNR 更高、测试几何更差」就是证据)。本篇的改法是把「每人一张贴纸」换成「一本公共字典」:一个全局神经场(三张平面 + 神经解码器)按每个高斯的位置、朝向、视角方向与时间,现场算出它的局部 RGBA 纹理场;再用 CP 分解与外积把三张 τ×τ 的平面压成两列 4τ 维向量,模型体积因此降下来。账面口径:Blender 稀疏视角 4/6/8/10 视角平均 PSNR 由 SplatFields3D 的 22.58 提到 23.05,Owlii 动态由 27.87 提到 29.25(4 视角那一档单档 +3.10 dB);DTU 表面重建的 Chamfer Distance 由 GOF 的 0.74 降到 0.67;与 per-primitive 纹理的 SOTA(Textured-GS)相比,PSNR 更高而纹理存储小 3.4 倍(Blender)到 56.9 倍(MipNeRF360)。代价照写:推理多出 ray-Gaussian 求交与一次网络前向(表 6 有逐项时长),训练显存与时长成倍上涨(表 5/11);作者另陈两条局限,户外场景提升不明显(有界的 tri-plane 编码抓不住大范围变化),以及那两笔额外计算。

Yiming Wang、Shaofei Wang、Marko Mihajlovic、Siyu Tang(均为 ETH Zurich, Switzerland) SIGGRAPH Asia 2025 · 16 页(主文 p0–p7 + 补充材料 p12–p15)· DOI 10.1145/3757377.3763957 arXiv:2511.18873v1 [cs.CV] · 2025-11-24 · 双栏 · 栏左缘 51.8/317.7 pt · 文字层 78,422 字符 原文编号式 (1)–(11) 共 11 条 · 原文图 10 张 · 原文表 21 张 · 许可:CC BY 4.0(依据 PDF 权利块 · 站内托管原文 PDF)
14 章一级章节(按拆解点切)
11 式原文编号式 (1)–(11) 全落块
10 图 + 21 表原文图元 31 件(自绘 0)
11 条边界与反例(独立成节)
图-段配对表 10 张图 · 全部 E 类原样引用 · 自绘 0
图元角色档归属支撑的论断讲解层次状态
图 1-1E第 1 章teaser:per-primitive 神经 RGBA 场是即插即用模块,同时提升静态/动态稀疏重建、几何重建与稠密新视角合成①②图注 +③④正文原样引用 · 未修改
图 2-1E第 5 章方法总览:局部 RGBA tri-plane → 纹理化高斯泼溅渲染;下方是 checkerboard 与学习到的 RGB 纹理对照①②图注 +③④正文原样引用 · 未修改
图 3-1E第 11 章Mip-NeRF360 新视角合成定性:更好地处理视角相关效果、保住细结构①②图注 +③④正文原样引用 · 未修改
图 4-1E第 10 章Blender 稀疏视角下 PSNR/SSIM 随输入视角数(4→10)变化,始终高于 SplatFields①②图注 +③④正文原样引用 · 未修改
图 5-1E第 10 章Owlii 稀疏动态下 PSNR/SSIM 随输入视角数变化,始终高于 SplatFields①②图注 +③④正文原样引用 · 未修改
图 6-1E第 10 章Owlii 稀疏动态(4/6 视角)定性:有效减少 floater 与不准的边界①②图注 +③④正文原样引用 · 未修改
图 7-1E第 10 章Owlii 稀疏动态(10 视角)定性:细节更细①②图注 +③④正文原样引用 · 未修改
图 8-1E第 11 章DTU 表面重建定性:GOF 的两种表面提取方式(TSDF Fusion/GOF 自提)网格质量都变好①②图注 +③④正文原样引用 · 未修改
图 9-1E第 11 章Blender 100 视角定性:几何更平滑,同时保住高频外观细节①②图注 +③④正文原样引用 · 未修改
图 10-1E第 10 章Blender 稀疏(10 视角)定性:重建更锐利、几何更准①②图注 +③④正文原样引用 · 未修改
表-段配对表 21 张表(全站最高)· 与图分列(门禁的「行数 = 图数」只针对图)
表元角色档归属支撑的论断讲解层次状态
表 1-1E第 6 章过拟合证据:去掉全局神经纹理后训练 PSNR 更高、测试 CD 更差①②图注 +③复算原样引用 · 未修改
表 2-1E第 10 章Owlii 动态重建(4/6/8/10 视角平均,三指标)①②图注 +③复算原样引用 · 未修改
表 3-1E第 10 章Blender 稀疏视角重建(4/6/8/10 视角平均,三指标)①②图注 +③复算原样引用 · 未修改
表 4-1E第 11 章稠密视角重建:两条 backbone(GOF/3DGS-MCMC)在新视角合成与表面重建上都提升①②图注 +③复算原样引用 · 未修改
表 5-1E第 11 章效率基准:PSNR/高斯数/模型大小/训练显存/训练时长/渲染 FPS①②图注 +③复算原样引用 · 未修改
表 6-1E第 11 章推理耗时分解(800×800、0.3M 原语):额外开销主要来自 ray-Gaussian 求交与 NN 前向①②图注 +③复算原样引用 · 未修改
表 7-1E第 12 章模型变体消融:去掉全局网络(w/o Neural)/同模型大小下的对照(Ours (Full)†)①②图注 +③复算原样引用 · 未修改
表 8-1E第 12 章局部 RGBA 纹理的有效性:对比「预测 per-primitive RGB」与「球谐 + alpha」①②图注 +③复算原样引用 · 未修改
表 9-1E第 12 章方法组件与超参消融(Blender + GOF backbone)①②图注 +③复算原样引用 · 未修改
表 10-1E第 12 章2D 纹理 vs 3D 纹理建模:两种都优于基线①②图注 +③复算原样引用 · 未修改
表 11-1E第 11 章GOF 上的效率分析:训练时长与渲染速度(原 GOF∗ 实现;GOF∗ 新版合并 CUDA 后有 2× 提速)①②图注 +③复算原样引用 · 未修改
表 12-1E第 11 章与 per-primitive 纹理 SOTA(Textured-GS)对照:更高 PSNR 且存储更少①②图注 +③复算原样引用 · 未修改
表 13-1E第 12 章稀疏动态逐场景(Owlii,10 视角)①②图注 +③复算原样引用 · 未修改
表 14-1E第 12 章稀疏动态逐场景(8 视角)①②图注 +③复算原样引用 · 未修改
表 15-1E第 12 章稀疏动态逐场景(6 视角)①②图注 +③复算原样引用 · 未修改
表 16-1E第 12 章稀疏动态逐场景(4 视角)①②图注 +③复算原样引用 · 未修改
表 17-1E第 12 章稀疏新视角合成逐场景(Blender,10 视角)①②图注 +③复算原样引用 · 未修改
表 18-1E第 12 章稀疏新视角合成逐场景(8 视角)①②图注 +③复算原样引用 · 未修改
表 19-1E第 12 章稀疏新视角合成逐场景(6 视角)①②图注 +③复算原样引用 · 未修改
表 20-1E第 12 章稀疏新视角合成逐场景(4 视角)①②图注 +③复算原样引用 · 未修改
表 21-1E第 12 章DTU 表面重建逐场景定量(唯一「表注在表体之下」的一张)①②图注 +③复算原样引用 · 未修改
角色档:本篇 31 件图元(10 图 + 21 表)全部登记为 E 类(证据图)—— 它们承载可核对的读数(九张主结果与消融表、附录取九张逐场景表、两张效率与存储对照表、以及走势曲线与六张定性图)。按分区裁决 E 类禁止自绘,故一律引用原图,自绘 0 张,S 类配额未动用。
式:原文编号式 (1)–(11) 共 11 条,本篇全落块;篇内显示编号按行文顺序连续,每块尾注写「原文式 N」。注意:原文的 (11) 编号前带一个不可见空白,按「整行等于 (N)」普查会漏掉它,逐行复核确认是 11 条而非 10 条。
伪码:原文没有算法伪码。第 9 章那则渲染/训练流程是本站依 §4.1–§4.3 的叙述与附 A.1/A.2 的取值整理的自拟伪码,块下已注明来源,不作原文内容引用。
许可:本篇取 CC BY 4.0(依据所据 PDF 内的权利块 —— 原文 PDF 首页印 This work is licensed under a Creative Commons Attribution 4.0 International License. 且无 nonacm 提示;arXiv 摘要页 License 为 nonexclusive-distrib/1.0,两处不一致)⇒ 站内托管原文 PDF,chip 不带 warn;图件原样零加工引用 + 逐图署名。
表的读法:表 2–4、7、8、13–21 是分组表头(数据集名与指标名跨列),站内复算表已按分组还原;表 2/3 与表 13–21 的 SSIM/LPIPS 乘了 100,而表 4/7/8/9/10 是原值;表 17–20 的编号顺序与版面顺序不一致(p14 实际阅读序为 18→19→20→17),表 21 是二十一张里唯一表注在表体之下的一张。
原文摘要 Abstract, p.0(英文原样引用)

3D Gaussian Splatting (3DGS) has emerged as a leading approach for high-quality novel view synthesis, with numerous variants extending its applicability to a broad spectrum of 3D and 4D scene reconstruction tasks. Despite its success, the representational capacity of 3DGS remains limited by the use of 3D Gaussian kernels to model local variations. Recent works have proposed to augment 3DGS with additional per-primitive capacity, such as per-splat textures, to enhance its expressiveness. However, these per-splat texture approaches primarily target dense novel view synthesis with a reduced number of Gaussian primitives, and their effectiveness tends to diminish when applied to more general reconstruction scenarios. In this paper, we aim to achieve concrete performance improvement over state-of-the-art 3DGS variants across a wide range of reconstruction tasks, including novel view synthesis, geometry and dynamic reconstruction, under both sparse and dense input settings. To this end, we introduce Neural Texture Splatting (NTS). At the core of our approach is a global neural field (represented as a hybrid of a tri-plane and a neural decoder) that predicts local appearance and geometric fields for each primitive. By leveraging this shared global representation that models local texture fields across primitives, we significantly reduce model size and facilitate efficient global information exchange, demonstrating strong generalization across tasks. Furthermore, our neural modeling of local texture fields introduces expressive view- and time-dependent effects, a critical aspect that existing methods fail to account for. Extensive experiments show that Neural Texture Splatting consistently improves models and achieves state-of-the-art results across multiple benchmarks. Project website: https://19reborn.github.io/nts/.

这一篇要讲清的 14 件事
  • 3DGS 的表达力卡在哪里,以及「给每个高斯挂一张贴图」这条路为什么不够用。
  • 前人两条线:把贴图挂上去、把核改掉。
  • 稀疏视角、表面重建、动态重建这三条下游线各自缺什么。
  • 3DGS 的两个预备式子,以及高斯核投到像素上的三种求值方式。
  • 一张局部纹理场怎么挂到高斯上(式 3、4、5)。
  • 这张纹理的两个毛病:印死的、各写各的。
  • 全局神经场:为什么 N 个高斯共用一套比每人一套好(式 6、7、8)。
  • CP 分解与外积:三张平面怎么压成两列向量(式 9)。
  • 训练目标与三平面的稀疏正则(式 10、11)。
  • 稀疏视角与动态重建的定量账(表 3、表 2)。
  • 稠密视角与表面重建的账,以及两笔效率代价(表 4、5、6、11、12)。
  • 消融:哪些部件真的在干活(表 7、8、9、10)。
  • 逐场景定量、两笔补充账,以及作者自陈的两条局限。
  • 边界与反例。

1三类任务、一个被忽略的瓶颈

3DGS 这两年往外扩的速度很快,扩的方向却很单一。 原文开头把这条轨迹摆了一遍:新视角合成之后,它被搬去做表面重建、稀疏视角重建与动态场景建模[§1, p1]。这三件事都靠同一套基元,也就是那堆 3D 高斯。

问题就出在这套基元的容量上。 原文的判词很直:3DGS 中每个基元的表达能力,受制于「用高斯核建模局部变化」这一过于简单的假设,因此难以捕捉高频细节与复杂的外观/几何变化[§1, p1]。

喻体立桩(第 1 章):稀疏视角就像「照片太少」。 你手上只有几张照片,看到的角度不够;而优化器不会说「这里我不知道」,它会自己编:编出来的东西还会被画得很实。本篇要处理的正是这件事:关窍不在让模型少编一点,而在让每个基元手里有更多可用的东西。

1.1 前人给的路,以及它在哪里失灵

针对容量不足,近期工作的做法是给 3DGS 加料。 原文列了两类:加 per-splat 的 2D 纹理映射,以及改高斯核的分布本身[§1, p1]。这两类在稠密视角的新视角合成上都拿到了不小的提升。

但原文紧接着指出这条路的地基很窄:这些 per-splat 纹理方法主要是为「稠密的新视角合成 + 高斯原语数量被压得很低」设计的,换到更一般的重建场景里,效果往往会衰减[§1, p1]。

这不是推测,原文给了自己的实测:一个照搬 [Chao et al. 2024] 的、直白的 per-splat 纹理映射实现,在稠密视角设置之外并不能带来一致的提升[§1, p1]。

为什么换场景就失灵,原文把原因归成两条[§1, p1]:

#毛病原文的说法连带的后果
1贴图是印死的纹理映射缺少视角相关与时间相关的变化新视角合成里的镜面反射抓不住;动态场景里的外观随时间变化也抓不住。更要紧的是,它还会拖累表面重建:模型可能用错误的几何去补偿补不齐的视角相关外观
2每张各写各的逐个原语局部地优化纹理映射,会带来冗余的表达容量、以及相邻高斯之间糟糕的空间一致性过拟合风险上升、泛化与稳健性下降;在稀疏视角下尤其致命,因为那种场景需要全局信息才能稳住优化

这两条合起来,解释了后面所有设计。 第 6 章会用表 1 把第 2 条量化,第 7 章那套全局神经场就是为了同时治这两条。

1.2 图 1-1:一张图看完四个任务

先把这张 teaser 摆出来,因为它就是本篇的目录。 后面 12 章要讲的那几条线,在这张图上各占一块:静态稀疏、动态稀疏、几何重建、稠密新视角合成。扫这一遍图的用处是先确认「同一个模块」在四个方向上都没有掉队,并不在看清每一格的细节;这是本篇全部主张的地基。

图 1-1:teaser/多任务上的一致提升(E 类 · 证据)· 原文 Fig. 1, p0
图 1-1 teaser/多任务上的一致提升(E 类 · 证据)· 原文 Fig. 1, p0 怎么读 ①指认:图注原话是「NTS 用每个原语的神经 RGBA 场增强 3DGS,提供一个即插即用模块,在多个应用上提升性能。我们展示 NTS 显著提升静态与动态场景的稀疏视角重建质量,同时在稠密训练视角下的几何重建与新视角合成上也取得明显改进」[Neural Texture Splatting (NTS) augments 3D Gaussian Splatting (3DGS) with neural RGBA fields per primitive, offering a plug-and-play module that boosts performance across multiple applications…]。②读法:这张图的看点不在某一张对比,而在「它把四种任务摆在一起」,静态稀疏、动态稀疏、几何重建、稠密新视角合成。读法是按任务分组扫一遍,确认没有哪一个分组是凑数的;这一点很重要,因为本篇的主张正是「同一个模块在四个方向上都不掉队」,而不是「在某一项上刷了高分」。图注里 plug-and-play 这个词是全篇的定位词。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 1, p0 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

这张图承担的论证责任比一般 teaser 重。 一般 teaser 只证明「我们更好」,而这里要证明的是「我们换了地基之后,四个方向同时站住」,因为原文提出的批评正是「前人那条路只在一个方向上成立」。

1.3 贡献三条

原文把贡献列成三条[§1, p1],后面每一章都会落到其中一条:

#贡献落在哪几章
1NTS 这个表示:用神经的 per-primitive RGBA 纹理场增强 3DGS,作为一个跨任务稳健的表示第 5、7、8 章
2用全局 tri-plane 网络预测局部纹理场:实现富有表现力的几何与外观建模,并保证跨任务的稳健性第 7、8 章
3实验:该表示一致提升现有 SOTA 方法,覆盖稠密/稀疏新视角合成、表面重建与动态重建第 10、11、12 章

三条里第 1 条是「挂什么」,第 2 条是「谁来算」,第 3 条是「账」。 有一处措辞值得留意:第 2 条用的是预测(predict):局部纹理场说的是算出来的那种值,并不是存在那里的参数。这个区别是第 7 章那套全局场的全部要点:参数在全局场里,纹理只是它的一次求值结果。

2前人两条线:把贴图挂上去、把核改掉

这一章把本条技术路线的家底摆清楚,顺序按时间走:先是新视角合成这条线怎么一路走到 3DGS,再是 3DGS 之后为了解决容量不足而分出的两支。

2.1 新视角合成那条线:从多层平面到神经场

原文的梳理很经济:从标定的多视角图像做新视角合成(NVS),出现过一批强表示:多层平面图像、体素网格、以及神经场[§2.1, p1]。

其中 3DGS 的位置被单独点出来:它把实时光栅化与高质量的合成缝在一起,是高效体积渲染的一条突出路线[§2.1, p1]。它的灵活性随后被用到了三处:表面重建、稀疏视角重建、动态重建[§2.1, p1]。

这条线本身没有问题,问题是它的「每颗基元」能装多少。 这就引出了下面两支。

2.2 第一支:给高斯挂贴图

第一支的做法是给每个 splat 加一层纹理映射。 原文列了一串工作[§2.2, p2],其中两处能看出这条路的不同取舍:

做法代表工作关键机制与本篇的关系
显式 cubemap + 全局 3D-to-2D 映射Texture-GS[Xu et al. 2024b]用 cubemap 当纹理,再用一个全局映射把 3D 点投到 2D,主要目标是外观编辑本篇第 11 章会拿它作存储对照(表 12):本篇 PSNR 更高而存储更少
per-splat 纹理图(一族)[Chao et al. 2024]、[Huang and Gong 2024]、[Rong et al. 2024]、[Xu et al. 2024a]、[Zhang et al. 2025a] 等给每个 splat 一张局部 2D 场,直接调制颜色与不透明度照搬这一族的效果是本篇要解决的问题:原文实测「一个直白的实现,在稠密视角之外没有一致提升」[§1, p1]

2.3 第二支:改核本身

第二支更彻底:动的是高斯核的形状或分布。 原文把这一支归为修改高斯核本身,让它更好地贴合表面几何或外观分布[§2.2, p2],代表工作如 [Li et al. 2025]、[Zhu et al. 2025]。

这一支与本篇的关系,值得在正文里划清一次:它换的是那个核(核不再是各向同性/各向异性的高斯形式),而本篇完全不动核:核还是那个高斯核,本篇是在核之上再挂一层纹理,并且这层纹理由网络算出来。两篇在同一根轴上(都指向「每个原语的表达能力」),但改动的位置不同。

2.4 两条路的共同短板

原文对这两支的总结只一句,但这句话是全篇的出发点:这些方法改善了稠密输入 NVS 的表达力,但在推广到稀疏视角输入、表面重建或动态输入时,往往会过拟合、缺乏稳健性[§2.2, p2]。

把这一句与第 1 章那两条毛病对上,缺口就很清楚了:

前人做到了前人没做到本篇在哪一章接上
在稠密视角、原语数被压低的场景里把表达力拉上去视角一少就过拟合第 6 章(过拟合证据:表 1)、第 7 章(全局共享)
用纹理或改核补上了「局部的空间变化」视角相关与时间相关的变化没补上第 7 章(把视角方向与时间喂给网络)
在 NVS 这一项上拿到了提升表面重建与动态重建上「效果显著衰退」第 10、11 章(四个方向的账)

3稀疏视角、表面、动态:三条线各自缺什么

这一章看的是下游:3DGS 被搬去做的三件事,各自卡在哪里。本章没有图元(原文这三节本来就没有配图),但它决定了本篇要跟谁对接:因为本篇它并不从零搭一个方法,只是挂在几条现有 backbone 上。

3.1 表面重建:几何被「外观补不齐」拖累

这条线的起点是一个老毛病:原版 NeRF 可以用来重建表面,但它产生的几何往往是噪声的,原因是缺少显式的正则[§2.3, p2]。

于是有人把密度场换掉:换成占据场(occupancy field)或有符号距离场(SDF)这类几何上被正则化的场[§2.3, p2]。3DGS 问世之后,另一批工作做的是把神经 SDF 与 3DGS 联合优化,用学到的 SDF 去正则 3DGS 的几何[§2.3, p2]。

原文对这批工作的判词是「有效但贵」:它们受困于优化慢、以及提取表面网格时三角形数量过多[§2.3, p2]。更近的一批换了策略:只优化高斯泼溅的参数以保住效率,同时引入额外的正则项、对高斯做新的重参数化、或者换用更先进的网格提取算法[§2.3, p2]。

本篇与这条线的关系:本篇的方法与这些 3DGS 表面重建方法兼容,并且在一项最新方法之上做了验证[§2.3, p2],就是第 11 章表 4/表 21 里的 GOF。

喻体回扣(第 1 章「照片太少」):为了圆谎把墙挪了。 第 1 章说贴图补不齐视角相关的外观,这里说的是它的连带后果:模型会用错误的几何去补外观。表面重建这条线之所以对本篇重要,就在于它是「外观建模不足会污染几何」的见证者。

3.2 稀疏静态:SplatFields 是直接地基

原文先说了这条线难在哪:从少量输入视角恢复高质量的几何与外观,仍是 3DGS 的一大局限,因为它依赖优化大量互相独立的 splat;这种独立性要求密集观测才能有效约束每个原语,于是容易出现过度拟合或泛化不佳[§2.4, p2]。

前人怎么应对:引入深度学习先验(一批工作,如 [Charatan et al. 2024]、[Chen et al. 2024]、[Tang et al. 2024]、[Zhang et al. 2025b] 等)[§2.4, p2]。

而 SplatFields 走的是另一条:它避开了对这类先验的敏感性,改为从高斯的三维空间位置回归 splat 特征,由此引入一种「神经空间正则」,带来空间自相关偏置,显著提升了稀疏视角下的表现[§2.4, p2]。

本篇与它的关系写得最直白:我们的 NTS 与 SplatFields 无缝集成,并进一步提升重建质量[§2.4, p2]。换句话说,第 10 章那几张稀疏视角的表,比的这一节的落点只是「加在哪里」,并不在「SplatFields 加不加我们的模块」,本篇在它之上加了一层纹理场,而它自己提供的是空间正则。

3.3 稀疏动态:SplatFields4D 是直接地基

这条线的常规做法是学时变形变场:用 MLP 学出随时间变化的形变场,把高斯泼溅扩到动态场景[§2.5, p2]。

但它有一个前提被原文点破了:这些方法通常依赖沿变动的相机位置密集采样的视角,而这个假设在真实场景里很少成立:真实场景常用固定机架、从有限视角观察[§2.5, p2]。

本篇选的地基是 SplatFields4D:为支持稀疏视角下的动态重建,我们建立在 SplatFields4D 之上,它用富有表现力的 ResFields 架构从有限的输入建模场景形变;而我们的 NTS 与这套设置完全兼容,并进一步提升重建质量[§2.5, p2]。

3.4 三条线合起来看:本篇站在哪

把三条线并排,本篇的位置就清楚了:

线缺的是什么本篇挂在哪
表面重建外观建模不足会污染几何GOF(表 4/表 21)
稀疏静态独立 splat 多、观测少 ⇒ 过拟合SplatFields(表 3)
稀疏动态形变场需要密集视角才稳SplatFields4D(表 2)

三条线指向的是同一件事:这些 backbone 都是「空间上被正则过」的方法,但它们对每个原语的表达力束手无策:空间正则管的是「邻居之间别乱来」,管不了「单个原语内部那一小块怎么变」。本篇补的正是后者,并且是以模块的形式挂上去(原文用的词是 plug-and-play,即插即用)[Fig. 1 图注, p0]。顺带分工一句:本系列篇目 53(SpotLessSplats)处理的是「输入里混进了干扰物」,本篇处理的是「输入的视角太少」,两篇同属「输入不理想」这一端,但一个动的是数据、一个动的是容量。

4两个预备式子:高斯核与体积渲染

这一章把后面所有改动要挂上去的那两个式子铺完:一个描述「单个高斯长什么样」,一个描述「一堆高斯怎么合成一个像素」。本篇的全部改动都发生在这两条式子之间。

4.1 式 (1):一个高斯核

原文对 3DGS 基元的定义与标准写法一致:每个高斯基元由协方差矩阵 Σ ∈ R³ˣ³ 与中心位置 μ ∈ R³ 给定;为了保证协方差半正定,它被分解成旋转矩阵 R ∈ R³ˣ³ 与缩放矩阵 S ∈ R³ˣ³;第 k 个基元的高斯核因此写作[§3, p2]:

(1) Σ_k = R_k S_k Sᵀ_k Rᵀ_k, G_k(x) = exp( −½ (x − μ_k)ᵀ Σ⁻¹_k (x − μ_k) )(原文式 1 · §3, p2)

这个式子的形状值得记住:指数里那个二次型量的是「x 偏离中心多少个标准差」,前面的 −½ 让它与一维高斯同形。后面第 5 章的式 (3) 会直接拿它里面的 Rk 与 Sk 来用:变换到局部坐标系,靠的就是这两个矩阵。

4.2 式 (2):一堆高斯怎么合成一个像素

要把颜色画出来,得按前后顺序做 alpha 合成[§3, p2]:

(2) c(p) = Σ_{k=1}^{K} c_k α_k P(G_k, p) · Π_{j=1}^{k−1} ( 1 − α_j P(G_j, p) )(原文式 2 · §3, p2)

符号分工:ck ∈ R³ 与 αk ∈ [0, 1] 分别是该原语的视角相关颜色与不透明度;P(Gk, p) 把三维高斯核 Gk 求值到像素 p 对应的相机射线上;K 是像素 p 处可见的原语数[§3, p2]。颜色 ck 用球谐系数建模以承载视角相关效果[§3, p2]。

这一章真正的信息量在 P(Gk, p) 上。 原文列了三种求值方式[§3, p2]:

方式出处特点
EWA 泼溅[Zwicker et al. 2002]传统做法,把 3D 高斯近似投到屏幕
2D surfel 的精确投影[Huang et al. 2024]换成二维面向元的精确投影
射线与原语的求交[Yu et al. 2024e]本篇采用的就是这一条(第 5 章会说为什么它要紧)

为什么这三者对本篇是个关键选择:本篇要在「射线与高斯的交点」上查询纹理,所以它必须知道交点在哪儿。前两种给的是屏幕上的足迹,只有「求交」这一条给出三维空间里的那个点,这正是式 (3) 需要的输入。原文在 §4.1 里明确写了这个选择:我们采用 [Yu et al. 2024e] 的射线-高斯求交算法来获得 RGBA 纹理场的查询点[§4.1, p4]。

最后一个细节也别漏:这些属性(中心、旋转、缩放、不透明度、颜色)通过梯度下降、最小化渲染出的二维图上的光度损失来优化[§3, p2]。这一句是第 5 章那道「加法」的前提:光度损失是唯一的裁判,所以任何新加的项只要能让渲染图更接近真值,就会被留下来。

5第一步:给每个高斯挂一张局部纹理

这一章讲本篇的第一层改动,也是后面所有争论的起点。 原文对这一层的定位是把第 1 章那个瓶颈再说一遍,然后动手:3DGS 原语的表达力天生受限,因为它用单个三维高斯核来建模颜色与不透明度的分布;可真实场景在几何与外观上常有复杂得多的空间变化,比如高频的视角相关效果[§4.1, p3]。

于是本篇的做法是给每个 splat 加一个可学习的 RGBA 纹理场 F,让它与原来的高斯核 Gk 互补,从而更有效地捕捉外观与几何上细致的局部变化[§4.1, p3]。

喻体立桩(第 5 章):给每个高斯贴一张小贴纸。 原来的高斯只有一个「中心亮、边缘暗」的分布;现在在它身上再贴一张贴纸,贴纸管的是它自己那一小块里怎么变色、哪里更实。贴纸贴在哪儿、怎么查,就是式 (3)–(6) 的事。

在进入式 (3) 之前,先看这张方法总览图,它把「挂贴纸」(§4.1)与「换成一本文典」(§4.2)都画在了一张图上,第 5 章到第 8 章的路线在这张图上一眼能看完:

图 2-1:方法总览(E 类 · 证据)· 原文 Fig. 2, p3
图 2-1 方法总览(E 类 · 证据)· 原文 Fig. 2, p3 怎么读 ①指认:图注原话是「方法总览。我们的方法通过给每个 splat 引入一张局部 RGBA 三平面纹理来增强 3DGS(右上)。在采用所提出的纹理化高斯泼溅渲染时(下,§4.1),每条光线计算它与各 splat 的交点,并查询对应的 RGBA 纹理;这些纹理与原始高斯属性结合,经体积渲染得到最终结果(式 (5))。我们展示了棋盘格与学到的 RGB 纹理渲染以便观察。这个局部纹理场提升了颜色与不透明度的表达能力,但它也增加了过拟合的风险,并且不具备捕捉视角相关与时间相关变化的能力。为解这些局限,我们引入一个全局三平面神经场,以紧凑且共享的方式建模局部纹理场(上,§4.2)。」[照录,长句是原文自带的]。②读法:这是一张「两头都画上了」的总览图:右上 是「每个 splat 挂一张局部 RGBA 三平面」,下 是 §4.1 的渲染流程,上 是 §4.2 的全局神经场。读的时候先抓 top/top right/bottom 这三个方位词,再按它们把图切成三块,别当成一张方法图的两半。图注末尾那两句还藏着本篇的全部预告:前一句(提升了表达能力、但增加过拟合风险、且不具备视角与时间相关能力)就是第 6 章那两个毛病;后一句(引入全局三平面神经场,以紧凑且共享的方式建模)就是第 7、8 两章的解法。 一处供给限制要照录:这张图是位图与矢量的混合图(13 张位图 + 35 条填充路径与箭头,连线与标签是矢量),而页面显示尺寸下那张小位图的短边只有约 272 px,按原样引用未改。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 2, p3 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

顺着这张图往下走:右边那条线是本章要讲的(式 (3)–(6)),上面那一块是第 7、8 章要讲的,而图注末尾那两句判词正是第 6 章要展开的两个毛病。

5.1 式 (3):先换算到这块贴纸自己的坐标系

贴纸是贴在这个高斯身上的,所以查询要用「它的坐标系」而不是世界坐标系。 原文的表述是:RGBA 纹理场 F 定义在每个 splat 的局部坐标系里;给定世界坐标点 x̂,它在第 k 个 splat 局部坐标系中的对应点 xk = {x_k, yk, zk},由该 splat 的中心位置 μk、缩放矩阵 Sk 与旋转矩阵 Rk 算出[§4.1, p3]:

(3) x_k = S⁻¹_k R_k ( x̂ − μ_k )(原文式 3 · §4.1, p3)

这个式子是「先平移、再转回来、再除以尺度」三步连做,而三步用的全是式 (1) 里已经有的量:同一个 Rk 与 Sk,在式 (1) 里用来把单位高斯撑成各向异性的椭球,在这里用来把世界点缩回单位空间。这一步的意义在于「让贴纸跟着高斯一起转、一起变形」,高斯被优化得更扁或更斜,贴纸上的图案也随之变形,贴纸的坐标系是免费跟着走的。

5.2 式 (4):拿局部坐标去查这张贴纸

换算完坐标,取纹理值就一行:

(4) c^tex_k(x̂), α^tex_k(x̂) = F( x_k )(原文式 4 · §4.1, p3)

式中 c^tex_k(x̂) 与 α^tex_k(x̂) 是世界点 x̂ 处的纹理颜色与纹理不透明度[§4.1, p3]。原文对这两个量的解释是本篇的一处关键设定:我们把查询到的 RGBA 纹理值,理解成「整个局部纹理场在体积渲染中所作贡献的近似」[§4.1, p3]。

这句话把纹理的性质说清了:它不是「贴图上某个像素的采样值」,而是「这一小块纹理对整个合成结果贡献了多少」的一次近似,所以它可以直接加到式 (2) 的颜色与不透明度项上,不用另立一套合成规则。

5.3 式 (5):把纹理项加进体积渲染式

于是式 (2) 被改写成[§4.1, p3]:

(5) c(p) = Σ_{k=1}^{K} ( c_k + c^tex_k(x̂_k) ) ( α_k P(G_k, p) + α^tex_k(x̂_k) ) · Π_{j=1}^{k−1} ( 1 − α_j P(G_j, p) − α^tex_j(x̂_j) )(原文式 5 · §4.1, p3)

式中 x̂_k 是用于评估第 k 个高斯基元的 RGBA 纹理场的查询点[§4.1, p3]。把式 (5) 与式 (2) 对照着看,改了三处:

位置式 (2)式 (5)效果
颜色项ckck + c^tex_k(x̂_k)贴纸给的颜色加到球谐给的颜色上
不透明度项αk P(Gk, p)αk P(Gk, p) + α^tex_k(x̂_k)贴纸给的不透明度加到高斯核给的不透明度上
穿透率项Π(1 − αj P(Gj, p))Π(1 − αj P(Gj, p) − α^tex_j(x̂_j))前面的贴纸也挡光

三处都指向同一件事:贴纸是「叠」上去的,不是「换」上去的。 高斯核还在原处、还起原来的作用(plug-and-play 这个定位就落在这里),贴纸只是在它上面再添一层。

还有一条工程上的保险:式 (5) 里的不透明度项 αk P(Gk, p) + α^tex_k(x̂_k) 被截断(clamp)到 [0, 0.99],目的是保证穿透率非负[§4.1, p4]。上界取 0.99 而不取 1,原因是穿透率是连乘的:只要有一项等于 1,后面的高斯就全被挡死,梯度也就断了。这一处细节后面第 8 章还会碰面:那里讲怎么把三张平面压成两列向量时,同样是在抠「别让内存和数值一起失控」。

5.4 式 (6):这张贴纸用什么存,以及三张平面怎么取平均

贴纸得有个存法。 原文先排除了两条路,再给出选择[§4.1, p3–p4]:

第一条被排除的是「每个局部纹理场配一个小 MLP」(连续隐式表示),理由是计算效率;第二条被排除的是「直接用 τ×τ×τ 的体素网格」,理由是内存低效,分辨率一高就更明显[§4.1, p4]。

最终采用的是显式的三平面(tri-plane)压缩:第 k 个 splat 的 RGBA 体积由三张互相正交的可学习平面表示,即 F^xyk、F^xzk 与 F^yzk,每张在 R^(τ×τ×4);每张平面分辨率 τ×τ、存 4 通道的 RGBA 值[§4.1, p4]。

给定局部坐标点 xk,取值的规则是「三张平面各查一次、再取平均」[§4.1, p4]:

(6) f^xy_k(x_k) = F^xy_k(x_k, y_k),f^xz_k(x_k) = F^xz_k(x_k, z_k),f^yz_k(x_k) = F^yz_k(x_k, z_k); c^tex_k(x_k), α^tex_k(x_k) = ⅓ ( f^xy_k(x_k) + f^xz_k(x_k) + f^yz_k(x_k) )(原文式 6 · §4.1, p4)

喻体立桩(第 7 章预留,此处先立一半):三平面像「三张正投影的电照」。 从正面、侧面、上面各拍一张,任意一个点在哪张图上都能找到对应像素;三张合起来就把这个点定住了。这一招的代价是「三个值要合成一个」,本篇选的是最省的那一种:取平均。

两处工程细节[§4.1, p4]:采样时用双线性插值;落在「尺寸为 3 的局部包围盒」之外的查询点直接丢弃。后一条是防止查询跑到贴纸外面去:贴纸只对属于这个高斯的那一小块负责。

这一章到这里就把「挂了什么」讲完了:一个显式的三平面、四通道 RGBA,挂在每个高斯的局部坐标系里。 接下来的问题是它行不行:第 6 章先看它的两个毛病。

6这张纹理的两个毛病

第 5 章那套加法是通顺的,但它有两个不显眼的毛病。 原文把它们写在 §4.1 的末尾与 §4.2 的开头,两条都不是「实现得不好」,而是「设计上就带着的」。

6.1 毛病一:贴纸是印死的

原文的表述是:局部 RGBA 纹理能捕捉一个 splat 内部颜色与不透明度的空间变化,但这些变化「与视角无关、也与时间无关」,因此对建模复杂的视角相关效果与时间动态来说并非最优[§4.2, p4]。

喻体回扣(第 5 章「贴纸」):贴纸是印死的。 从哪个角度看都是同一张,今天拍和明天拍也是同一张。这带来两个具体的后果:

后果原文的说法影响的范围
镜面反射抓不住视角相关的变化是新视角合成里捕捉镜面反射的必要条件第 10、11 章的新视角合成
外观随时间的变化抓不住时间相关的变化是动态场景建模里的必要条件第 10 章的 Owlii 动态
还会反过来拖累几何「妨碍表面重建,因为模型可能诉诸错误的几何,来补偿不足的视角相关外观建模」[§1, p1]第 11 章的表面重建

第三行是最值得记住的一条:外观上的亏空不会停在外观上,它会跑到几何上去。 这也是第 3 章那个喻体「为了圆谎把墙挪了」的出处。

6.2 毛病二:各写各的(表 1-1)

第二条毛病更结构性:逐个原语地局部优化纹理映射,会带来冗余的表达容量、并让相邻 splat 之间缺少空间一致性,从而导致泛化与稳健性下降[§4.2, p4]。

原文在 §1 里还给了这条的适用条件:这个问题在稀疏视角下尤其有害,因为稀疏场景的稳健优化需要全局信息[§1, p1]。换句话说,毛病二的严重程度与视角数成反比:视角越少,越依赖「邻居之间互相照应」,而 per-splat 独立优化恰好不提供这种照应。

表 1 就是这条的量化证据(原文用 GOF 作 backbone,在 DTU 上测)[表 1, p2]:

方法Scan 24 训练 PSNR ↑Scan 24 测试 CD ↓Scan 105 训练 PSNR ↑Scan 105 测试 CD ↓
W/o Neural Texture(去掉全局神经纹理)36.050.4839.420.70
W/ Neural Texture(本篇)34.730.4438.990.64

这张表最好看的地方是「两列的方向相反」:去掉全局神经纹理之后,训练 PSNR 反而更高(36.05 对 34.73、39.42 对 38.99),而测试 CD 更差(0.48 对 0.44、0.70 对 0.64)。

逐格算一遍两组差值:

场景训练 PSNR 差(去掉全局场 − 本篇)测试 CD 差(去掉全局场 − 本篇)
Scan 24+1.32(36.05 − 34.73)+0.04(0.48 − 0.44)
Scan 105+0.43(39.42 − 38.99)+0.06(0.70 − 0.64)

训练集上高出 0.43–1.32 dB,测试几何上却差 0.04–0.06。 这正是过拟合的教科书形态:它把训练视角背得更好了,代价是新视角下的几何更不准。原文对这张表的判词是:用 per-primitive 纹理表示、而没有我们提出的全局神经纹理时,更容易在训练视角上过拟合(测试 Chamfer Distance 更差就是证据);而我们的全局神经纹理缓解了这个问题,增强了泛化[表 1 注文, p2]。

一处要留神的口径:这张表比的是同一个 backbone(GOF)上「有没有那层全局神经纹理」,而不是「本篇对某个基线」。两个被横向比较的数(训练 PSNR 与测试 CD)本身就不同源:前者在训练视角上量,后者在测试视角上量;能比的是「方向」,不是「幅度」。

6.3 原文的第三条观察:直白优化的效果在哪退坡

除了两条毛病,原文还给了一条来自实验的观察:直接优化这些纹理,在各任务上的提升是有限的:虽然它们在新视角合成上带来明显增益,但在表面重建、稀疏视角重建这类场景里,效果显著衰退(表 1 即为证)[§4.2, p4]。

这条观察把「毛病」变成了「账单」:如果只是设计上不干净,那还能靠调参糊过去;但这里说的是「换个任务就掉」,那就必须换机制。 于是原文的下一个动作是:用一个全局神经场,以紧凑且共享的方式来建模局部纹理场,从而实现信息共享、支撑稳健的优化[§4.2, p4]。

6.4 两个毛病对应的两个改法

把这一章收成一张对照:

毛病症状改法落在哪一章
贴纸是印死的视角相关与时间相关的变化抓不住;几何还会被带歪把视角方向 dk 与时间 t 喂进网络,让纹理按视角与时间重新算第 7 章(式 8)
各写各的相邻 splat 间无空间一致性,容量冗余,过拟合参数不放在每个 splat 上,而放在一套全局 tri-plane 里,每个 splat 只是去查第 7 章(式 7)

7全局神经场:把 N 张贴图压成一套

这一章是本篇的核心机制。 上一章末尾那句「紧凑且共享」是关键:紧凑是指参数别散在各处,共享是指 N 个高斯去查同一份东西。

喻体立桩(第 7 章):不发贴纸,改成一本公共字典。 前人的做法是给每个高斯发一张自己的贴纸,贴纸画什么就学什么;本篇改成整个场景共用一本字典,每个高斯带着自己的坐标去查,查出来的那几行就是它的纹理。两处差别立竿见影:字典只有一本,体积不会随高斯数线性涨;而且相邻的高斯坐标接近,查出来的纹理自然也接近,空间一致性是免费来的。

7.1 式 (7):特征的来路

全局那一侧的东西是三张可学习平面:G_xy、G_xz、G_yz ∈ R^(H×W×C)[§4.2, p4]。做法与第 5 章那三张局部平面同构,只是分辨率与用途不同:局部那三张是「每个高斯自己的」,全局这三张是「大家共用的」。

每个 splat 的全局特征 gk ∈ R^C 在它的中心位置 μk = (μx, μy, μz) 处抽取,三张平面各取一次、再拼接[§4.2, p4]:

(7) g^xy_k = G_xy(μ_k^x, μ_k^y),g^xz_k = G_xz(μ_k^x, μ_k^z),g^yz_k = G_yz(μ_k^y, μ_k^z); g_k = Concat( g^xy_k, g^xz_k, g^yz_k )(原文式 7 · §4.2, p4)

注意这里的坐标只有中心位置。 三张平面各取一次、拼起来,得到的 gk 是这个高斯在全局字典里的「索引结果」。它是按「高斯在哪儿」取的,跟这个高斯长什么样无关,也就是说,两个位置相近的高斯拿到几乎相同的特征。这条性质正是空间一致性的来源。

7.2 式 (8):浅层网络把特征解码成三张平面

拿到特征之后,与另外几样东西拼起来,送进一个浅层全局网络:gk 与该 splat 的中心位置 μk、以及附加属性(视角方向 dk,动态场景还多一个可选的时间步 t)拼接,再经过一个浅层的全局神经网络,用来预测 RGBA 体积[§4.2, p4]:

(8) { F^xy_k, F^xz_k, F^yz_k } = NN( g_k, μ_k, d_k, t )(原文式 8 · §4.2, p4)

式中 t 只用于动态场景,静态场景下省略[§4.2, p4]。这一条式子是本章的枢纽:局部那三张平面不再是被优化的参数,而是这一步的输出:第 1 章那句「第 2 条贡献用的是『预测』这个词」,落点就在这儿。

逐项释义:

输入 / 输出是什么为什么需要它
gk在中心位置取的全局特征共享的全部来源
μksplat 的中心位置让纹理知道自己在场景里的绝对位置(视野之外也能区别对待)
dk视角方向治毛病一:让纹理随视角重算,镜面反射才有地方承载
t时间步(仅动态)治毛病一的另一半:让外观随时间变化
{F^xy, F^xz, F^yz}三张局部 RGBA 平面交给第 5 章的式 (6) 去查值,最终进式 (5) 合成

把两张图放在一起看,整条流水线就通了:全局三平面 →(式 7)取特征 →(式 8)解码出局部三平面 →(式 6)查值取平均 →(式 5)合成像素。

7.3 两套网络分开,视角方向只喂一半

原文在这里给了一个分工细节,值得单列:我们为颜色纹理与不透明度纹理各用一套独立的全局 tri-plane 与独立的神经网络结构;视角方向只作为颜色网络的输入[§4.2, p4]。

这条分工的道理可以自己推一步:不透明度是几何属性,它不该随视角变,一个面朝相机更亮,但它不会「因为你看的角度不同就变得更不透明」。如果让视角方向也进不透明度网络,模型就有了一个不该有的自由度,在稀疏视角下这块自由度会立刻被过拟合吃掉。原文的这一步把「视角相关」限制在它该在的地方。

另一个来自附录的实现细节这里先记下(第 12 章会用到):颜色解码用的是带 ReLU 的标准线性 MLP,而不透明度解码用的是 SIREN 网络[附 A.1, p12]。SIREN 的强项是表示高频变化:放在不透明度上,是为了让边缘与细节被刻画得更利落。

7.4 这一章治好了什么

回到第 6 章那两条毛病,逐条对账:

毛病第 5 章的做法为什么不行第 7 章的改法为什么行
贴纸是印死的纹理是被优化的静态张量,视角与时间进不去dk 与 t 是网络输入,纹理随它们重算(式 8)
各写各的每个 splat 的纹理独立优化,彼此没有约束特征从同一套全局平面取(式 7),坐标相近则纹理相近
容量冗余参数量随高斯数线性增长参数量由全局平面与网络的规模决定,与高斯数解耦

第三条是账面上的直接后果:原文说这套共享表示「显著减小模型体积」[§1, p1],第 11 章的表 5 与表 12 会把这句话量出来。

8CP 分解与外积:内存再压一档

第 7 章解决了「参数放哪儿」,这一章解决「放得下吗」。 中间那一步是第 5 章的三张局部平面:每张 τ×τ×4 通道,三张就是 τ×τ×3×4 个数。

8.1 先看这笔账有多大

原文把这条岔路的代价写得很直:神经网络可以直接预测总维度为 τ×τ×3×4 的 RGBA 三平面纹理,但我们希望进一步降低计算成本、并让局部纹理平面能用上更高的分辨率[§4.2, p4]。

这句话里有两个诉求:算得省、以及分辨率还能往上走。而两者是冲突的:分辨率的平方直接进参数量:τ 翻一倍,要预测的数翻四倍。原文的选择是不去预测这些数,而是预测能生成它们的「因子」。

喻体立桩(第 8 章):一列乘一行。 一张表的每个格子都填上,要存 τ×τ 个数;但如果这张表恰好是「一列数乘一行数」得到的,那就只存两列(一列 τ 个、一行 τ 个)。本篇赌的就是「纹理平面差不多可以被这样分解」,这在数学上叫 Canonical Polyadic(CP)分解。

8.2 式 (9):网络输出向量对,外积还原平面

原文的表述是:我们采用 CP 分解来表示这三张局部平面;具体做法是让网络输出一维向量,再通过外积产生平面[§4.2, p4]。

对第 k 个 splat,网络对每张平面 uv ∈ {xy, xz, yz} 预测一对 RGBA 向量 v0^uvk ∈ R^(4τ) 与 v1^uvk ∈ R^(4τ),每张平面的纹理再由对应那一对向量的外积算出[§4.2, p4]:

(9) { v0^xy_k, v1^xy_k, v0^xz_k, v1^xz_k, v0^yz_k, v1^yz_k } = NN( g_k, R_k, μ_k, r, t ); F^xy_k = v0^xy_k ⊗ v1^xy_k,F^xz_k = v0^xz_k ⊗ v1^xz_k,F^yz_k = v0^yz_k ⊗ v1^yz_k(原文式 9 · §4.2, p4)

参数账自己算一遍(设平面分辨率 τ):

走法每次要产出的数的个数以 τ = 192 计
直接回归三张平面3 × τ × τ × 4 = 12τ²442,368
CP 分解(三对向量)3 × 2 × 4τ = 24τ4,608
比值τ / 2约 96 倍

这就是外积的全部好处:每张平面从 τ² 个数降到 2τ 个数,倍数正好是 τ/2。 原文用 further reduce computational cost and enable the use of higher-resolution local texture planes 概括的,就是这一笔。

但账不能只算这一半。 表 9 里有一行是对这条的直接检验[表 9, p7]:

变体PSNR ↑(Blender)模型大小(MB)
Ours34.0968.2
W/o CP Decomposition34.0375.1

去掉 CP 分解,画质几乎不动(−0.06),体积涨了 6.9 MB。 两件事要同时读出来:

  • CP 分解买的是体积,不是画质。 它掉的 0.06 PSNR 在噪声量级,换来的是 10% 的模型缩减。
  • 6.9 MB 与上面那个 96 倍不是同一个尺度上的数。 因为整个模型的大小不由纹理参数单独决定:高斯自身的属性、全局平面与网络权重都占位置。「τ/2 倍」说的是「每个 splat 的纹理参数量」这一个局部账,把它当成全局模型体积的倍数会算错。

8.3 式 (9) 的输入里有两处要看清楚

把式 (9) 与第 7 章的式 (8) 并排,输入项换了两个:

式 (8)(直接预测平面)式 (9)(CP 分解)
全局特征gkgk
中心位置μkμk
视角相关那一项dk(视角方向)Rk(旋转矩阵)
其他t(动态场景)r、t(动态场景)

Rk 替换 dk 是有道理的:CP 分解要在「这个高斯自己的坐标系」里生成向量对,而坐标系的朝向正是 Rk 定义的(与第 5 章式 (3) 用的是同一个矩阵)[式 (3)(9), p3–p4]。

一处必须照录、不能猜的:式 (9) 的输入里还有一个 r,而原文的正文没有给出 r 的定义。本节按式体原样照录,不代它补解释,这是本篇记账时要自己核的一处(第 12 章的边界表里会再列一次)。这类「式体里有、正文没讲」的符号,比数字对不上更容易被漏掉,因为读者会默认它已经在别处定义过了。

8.4 两处工程细节,以及「什么在买画质、什么在买体积」

细节沿用第 5 章那两条:采样时用双线性插值;落在尺寸为 3 的局部包围盒之外的查询点丢弃[§4.1, p4]。前者让纹理在平面上连续,后者把查询限制在这个高斯负责的那一小块里。

表 9 剩下的几行,正好把「谁买画质、谁买体积」摊开[表 9, p7]:

变体PSNR ↑模型大小(MB)这一行说明什么
Ours34.0968.2基准
W/o CP Decomposition34.0375.1CP 分解买体积(画质基本不动)
W/o Sparsity Loss34.0973.2稀疏正则也买体积(画质一点不动,体积涨 5.0)
W/o View-dependence33.7468.5视角相关性买画质(全表最大跌幅 0.35,体积几乎不变)
W/ Tri-plane Resolution 12834.0863.1分辨率降到 128,画质几乎不动,省 5.1 MB
W/ Tri-plane Resolution 25634.0077.7分辨率升到 256,画质反而降 0.09,体积涨 9.5 MB
W/ NN Depth 334.0368.5网络加深,略降
W/ NN Width 25634.0668.9网络加宽,略降

这张表里有三处值得单独圈出来:

第一,唯一「掉画质掉得看得见」的那一行是「去掉视角相关性」(34.09 → 33.74,−0.35),而它的体积几乎没变(68.5 对 68.2)。这从账面确认了第 6 章那条毛病一的重要性:视角相关不是锦上添花,它扛的是最大的一块跌幅。

第二,两条正则(CP 分解与稀疏损失)都是「花体积买画质」的反面,它们是「省体积不损画质」。 去掉稀疏损失时 PSNR 一点没动(34.09),体积却涨 5.0 MB。这类项的价值不体现在 PSNR 上,只能看体积,只看画质表会误判它没用。

第三,分辨率那一对给出的答案与直觉相反:降到 128 几乎不损失(34.08),升到 256 反而更差(34.00)且更贵。 换句话说,默认那个分辨率已经过了收益拐点。 原文没有给局部平面分辨率的取值,但从这一对读数可以反推默认值落在 128 与 256 之间(本篇实测默认下模型 68.2 MB,正夹在 63.1 与 77.7 之间)。

9训练目标与稀疏正则

所有部件到齐了,剩下的是「拿什么目标去训」。 原文在这里保持了克制:主损失照抄 3DGS,只在末尾加了一条针对新组件的正则。

9.1 式 (10):沿用 3DGS 的目标

原文的表述是:我们采用 3DGS 原始的优化目标,即 L1 距离与 D-SSIM 项的组合[§4.3, p4]:

(10) L_c = L_MSE( Î, I ) + λ · L_D-SSIM( Î, I )(原文式 10 · §4.3, p4)

式中 Î 是真值目标图、I 是对应的渲染图;λ 取 0.2[§4.3, p4]。

这里有一处要照录的:正文说的是「L1 距离与 D-SSIM 的组合」,而式体写的是 L_MSE。 两者指的不是同一个量(一个是 L1、一个是 MSE)。本书按原文照录,不替它改;第 12 章的边界表会把这处不一致列进去。这类「正文与式体对不上」的细节,通常不影响复现(λ 与两项的配比都没变),但它是一处值得记下的原文瑕疵。

9.2 式 (11):给三张平面加一条稀疏正则

除了主损失,原文还加了一条专门针对新组件的正则:为了鼓励稀疏,我们对三平面 RGBA 纹理引入一条 L1 正则[§4.3, p4]:

(11) L_norm = 1 / ( N · τ² ) · Σ_{(u,v)} ( ‖F_xy(u, v)‖ + ‖F_xz(u, v)‖ + ‖F_yz(u, v)‖ )(原文式 11 · §4.3, p4)

符号:N 是 splat 的数量,τ 是每张纹理平面的分辨率,(u, v) 是纹理平面上的网格坐标[§4.3, p4]。这条损失与 Lc 以 0.01 的权重组合[§4.3, p4]。

逐项读这条式子:

部分作用
Σ(u,v) 遍历平面的所有格子逐格累加
三张平面的 L1 相加三个方向一起压
除以 N · τ²按「splat 数 × 每张平面的格子数」归一,让损失与规模无关
权重 0.01比主损失小两个数量级,属于轻微推一把

它买的是体积,不是画质。 表 9 那一行给了直接证据:去掉这条稀疏损失,PSNR 一点没变(34.09),而模型从 68.2 MB 涨到 73.2 MB[表 9, p7]。换句话说,这条正则的作用是「把纹理平面里那些多余的格子压成 0」,压掉的是存储,不是图像质量。

为什么纹理平面会「多余」:三平面是对整个 RGBA 体积的过度参数化(三张平面本来就能表示比一个体积更多的自由度),不加约束时网络会随手填一些用不上的值。L1 在这里干的是「让用不上的格子归零」这件事。

9.3 一次渲染与训练走一遍(原文无伪码,本章依正文与附 A.1 整理)

先说清楚来源:原文没有给出算法伪码(全篇 Algorithm/pseudocode 均 0 命中)。下面的伪码是按 §4.1–§4.3 的叙述、配合附录 A.1 的网络配置整理出来的,不是原文照搬;两处前提写在块首。

前提 1:全局三平面 G_xy/G_xz/G_yz ∈ R^(192×192×16),浅层网络宽度 128、两个隐藏层;
 颜色解码用带 ReLU 的线性 MLP,不透明度解码用 SIREN(附 A.1)。
前提 2:颜色与不透明度各用一套全局三平面与网络;视角方向只作为颜色网络的输入(§4.2)。

# == 渲染一个像素 p ==
对像素 p 对应的相机射线:
 用 ray-Gaussian 求交算法([Yu et al. 2024e])取得各原语的查询点 x̂_k # §4.1
 对每个原语 k:
 x_k = S_k⁻¹ R_k (x̂_k − μ_k) # 式 (3) 换算到局部坐标
 g_k = Concat(G_xy(μ_kˣ,μ_kʸ), G_xz(μ_kˣ,μ_kᶻ), G_yz(μ_kʸ,μ_kᶻ)) # 式 (7)
 {v0,v1} = NN(g_k, R_k, μ_k, r, t) # 式 (9) 预测向量对
 {F_xy, F_xz, F_yz} = 三个外积 # 式 (9) 还原三张平面
 c_tex, α_tex = ⅓(f_xy + f_xz + f_yz) # 式 (6) 双向插值后取平均
 α_total = clamp(α_k·P(G_k,p) + α_tex, 0, 0.99) # §4.1 防穿透率为负
 按式 (5) 做 alpha 合成,得到像素颜色 c(p)

# == 一次训练迭代 ==
损失 = L_c(式 10,λ=0.2) + 0.01 · L_norm(式 11) # §4.3
若与 GOF 等基线集成,另保留其原有损失项 # §4.3
反向传播更新:全局三平面、两个解码网络、以及原高斯的各项属性

这段伪码里有三处是「本篇特有」的,读的时候值得对上号:

  • g_k 只按中心位置 μk 取(式 7 那一行),这是空间一致性的来源,也是它与「每个 splat 自己一张贴图」的分水岭。
  • 视角相关只出现在颜色那一支(前提 2),不透明度那一支拿不到 dk,这条约束是刻意的(第 7.3 节)。
  • 外积在渲染循环里做,而不是预存(式 9 那一行),这是第 8 章那笔内存账的落点:省下来的是存储,付出的是一次外积。

9.4 训练配置:三条线各有一套挂法

附录 A.2 把三套训练方案写清了[附 A.2, p12],这里集中列出,因为它决定了第 10、11 章那些表怎么读:

任务总迭代与本模块的关系
稀疏视角(Blender)40k(两者同配置)从 SplatFields 的 20k 检查点初始化,联合训练剩余 20k
稀疏动态(Owlii)200k从 SplatFields 的 100k 检查点初始化,联合训练额外 100k
稠密视角(Blender/Mip-NeRF360)30k先预训练 backbone 5k,再与本模块联合训练 25k

这张表里最要紧的一列是「初始化」:稀疏与动态两条线都是「先跑一半、再从检查点接着跑」,也就是本篇的模块是在一个已经成形的 backbone 上加挂的,而不是从零重训。这一点直接决定了账的读法:第 10 章那几组数比的是「同一个 20k 检查点,之后 20k 带不带这个模块」,并不在「两种方法各自从头训 40k」,这是模块的净贡献,也解释了为什么提升幅度看起来比换一个方法要小而干净。

另有一条渠道也要照录:所有实验使用相同的超参与优化设置,以保证公平比较[附 A.2, p12]。

10稀疏视角与动态重建的账

从这一章开始看账。 本章管的是最吃香的一端:输入视角少的时候,那个「公共字典」到底帮上多少忙。

10.1 口径:这些数是在什么条件下拿到的

先摆清三条[§5.1, p5;附 A.2, p12]:

项内容
数据集稀疏静态用 Blender,稀疏动态用 Owlii(四个序列,100 帧训练/100 帧测试,旋转相机轨迹)
backbone稀疏视角用 SplatFields(静态)/SplatFields4D(动态),本篇是挂上去的模块
训练静态 40k(从 20k 检查点接 20k);动态 200k(从 100k 检查点接 100k);两边超参一致
指标PSNR、SSIM、LPIPS

第 9.4 节那句话在这里要兑现:这些数比的是「同一个检查点之后,带不带这个模块」,不是两种方法各自从零训。下面所有差值都要按这个口径读。

另有两处口径写在表注里,读表前先记住:表 3 与表 2 都是「4/6/8/10 视角平均」的结果;表 2 与表 3 的 SSIM/LPIPS 值被乘了 100(表 3 的表注说「为清晰起见」)[表 2/3 注文, p4–p5]。第二个尤其容易看错:表里写的 87.70 不是 87.7%,而是 0.8770。

10.2 表 3-1:Blender 稀疏视角(4/6/8/10 视角平均)

原文读数(PSNR/SSIM/LPIPS 三组各 9 行,这里取关键行)[表 3, p5]:

方法PSNR ↑SSIM ↑(×100)LPIPS ↓(×100)
SparseNeRF20.8884.0813.49
SuGaR19.4380.51:(原文此格见原表)
3DGS21.2684.15:
2DGS21.4485.23:
SplatFields3D(backbone)22.5887.0413.49
SplatFields3D + Ours23.0587.7013.50

逐格算一遍「模块值多少」(对照它自己的 backbone):

指标SplatFields3D+ Ours差值
PSNR ↑22.5823.05+0.47
SSIM ↑(×100)87.0487.70+0.66
LPIPS ↓(×100)13.4913.50−0.01(略退)

这张表里有一处值得单独圈出来:LPIPS 上本篇比自己的 backbone 还差了 0.01。 原文并没有回避这个数(它就摆在表里),但也没有专门解释。本书照录:在稀疏静态这条线上,PSNR 与 SSIM 是清楚的提升(+0.47/+0.66),LPIPS 是打平略退。

另一处是视野问题:SplatFields3D 的 22.58 已经比表里最强的稀疏方法(2DGS 的 21.44)高出 1.14 dB,本篇再往上加 0.47,所以这张表要读的重点这一张表要读的重点在「它在一个已经领先的 backbone 上还能再加多少」,并不在「本篇第一」**。这也正是「模块」这个定位的账面含义。

10.3 表 2-1:Owlii 稀疏动态(4/6/8/10 视角平均)

这张表的对手更多(含三个专门的动态方法)[表 2, p4]:

方法PSNR ↑SSIM ↑(×100)LPIPS ↓(×100)
4D-GS23.2788.817.18
Deformable3DGS24.5891.05:
4DGaussians26.4593.57:
SplatFields4D(backbone)27.8795.097.18
SplatFields4D + Ours29.2595.866.70

逐格算差值:

指标SplatFields4D+ Ours差值
PSNR ↑27.8729.25+1.38
SSIM ↑(×100)95.0995.86+0.77
LPIPS ↓(×100)7.186.70−0.48

三个指标在这条线上全是同向的,而且幅度是稀疏静态那组的三倍(PSNR +1.38 对 +0.47)。原文把这条线的提升放在摘要与贡献里(significantly enhances the quality of sparse-view reconstruction for static and dynamic scenes)[Fig. 1 图注, p0],从这两张表的对比看,「动态那一边的收益更厚」这件事是成立的。

为什么动态那边收益更厚,可以自己推一步:第 6 章说过毛病一是「贴纸是印死的」,它同时丢掉了视角相关与时间相关两样东西。静态场景只需要补回「视角」这一维,动态场景要补回「视角 + 时间」两维,而后者的亏空本来就更大。LPIPS 那一格最能看出差别:静态上 −0.01(几乎无感),动态上 −0.48(清楚可见)。

10.4 两条曲线:随视角数增加的走势(图 4-1、图 5-1)

这两张图是同一天平的两端:一张静态、一张动态,横轴都是输入视角数 4→10。

图 4-1:静态稀疏的走势(E 类 · 证据)· 原文 Fig. 4, p10
图 4-1 静态稀疏的走势(E 类 · 证据)· 原文 Fig. 4, p10 怎么读 ①指认:图注原话是「Blender 上稀疏视角设置下、随输入视角数变化的平均 PSNR 与 SSIM 曲线。我们的方法在 4 到 10 个输入视角范围内一致优于 SplatFields」[Average PSNR and SSIM curves with varying input views on Blender under the sparse-view setup. Our method consistently improves upon SplatFields across input views ranging from 4 to 10.]。②读法:横轴视角数、纵轴指标,两条线分别是 SplatFields 与本篇。要看三件事:① 两条线是否始终不交叉(图注用的词是 consistently,所以交叉就是反证);② 间距随横轴怎么变(间距收窄=收益被摊薄;这里值得注意的是端点:4 视角处是差距最大的一端,还是最小的一端);③ 曲线是单调的吗(若有回落,那两个视角档之间就有别的因素在起作用)。这是「并排两栏」的图,与图 5-1 各占半栏,读的时候要两张对着看。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 4, p10 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

图 4-1 是这条天平的一端,下面这张是同一天平的另一端:把数据集从 Blender(合成静态)换成 Owlii(真实动态),横轴仍是输入视角数 4→10。两张图的图注只差 Blender/Owlii 与 static/dynamic 两组词,所以差别全落在两条线的间距上。

图 5-1:动态稀疏的走势(E 类 · 证据)· 原文 Fig. 5, p10
图 5-1 动态稀疏的走势(E 类 · 证据)· 原文 Fig. 5, p10 怎么读 ①指认:图注原话是「Owlii 上稀疏视角动态设置下、随输入视角数变化的平均 PSNR 与 SSIM 曲线。我们的方法在 4 到 10 个输入视角范围内一致优于 SplatFields」[…on Owlii under the sparse-view dynamic setup…]。②读法:读法与图 4-1 相同,但要与它比对着读:两张图的图注只差 Blender/Owlii 与 static/dynamic 两个词,差别全在间距上。这一对图是本篇「动态收益更厚」那句话的图形证据:如果图 5-1 的两条线间距明显大于图 4-1,第 10.3 节那张表的结论就得到了第二个来源的支持。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 5, p10 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

原文对这两张图的判词合在一起是一句:如图 4 所示(它给出 SplatFields、SplatFields+Ours 与 3DGS 随输入视角数的表现),我们的方法在不同视角数下一致优于当前最好的 SplatFields[§5.2, p5]。注意这条判词里出现的第三个对象是 3DGS,也就是说这两张图上其实还有第三条线(未加任何稀疏机制的 3DGS),它在这类图上通常是一条更低的基准线。

10.5 四张定性图:三张动态、一张静态

接下来的一组图看画面。 原文对动态那三张的统称引用是:「在 4/6/8/10 视角设置下平均后的定量结果报告在表 2;图 5 进一步展示随输入视角数从 4 增加到 10 的性能走势」[§5.2, p5]。

图 6-1:动态稀疏(4/6 视角)的定性(E 类 · 证据)· 原文 Fig. 6, p10
图 6-1 动态稀疏(4/6 视角)的定性(E 类 · 证据)· 原文 Fig. 6, p10 怎么读 ①指认:图注原话是「Owlii 上稀疏视角动态重建的定性结果,使用 4 与 6 个输入视角。与 SplatFields 相比,我们的方法有效减少了 floater 与不准确的边界」[Our method effectively reduces floaters and inaccurate boundaries compared to SplatFields.]。②读法:这张图给了两类失败模式:floater(悬空的碎屑)与 inaccurate boundaries(不准的边界)。读的时候分开看:floater 是多出来的东西,边界不准是该有的东西没描清;前者看画面里有没有不属于场景的斑点,后者看轮廓线是不是发虚。动态场景的难点在于「每帧都要对」,所以还要留意不同帧之间这些瑕疵是否稳定地出现。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 6, p10 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

上面这张是 4 与 6 视角档,下面这张把视角加到 10。 两档并排看的用处是回答一个问题:视角变多之后,对手会不会追上来。

图 7-1:动态稀疏(10 视角)的定性(E 类 · 证据)· 原文 Fig. 7, p10
图 7-1 动态稀疏(10 视角)的定性(E 类 · 证据)· 原文 Fig. 7, p10 怎么读 ①指认:图注原话是「Owlii 上稀疏视角动态重建的定性结果,使用 10 个输入视角。与 SplatFields 相比,我们的方法能捕捉更细的细节」[Our method can capture finer details compared to SplatFields.]。②读法:这张图与图 6-1 是同一场景的两个视角档(4/6 对 10),并排读能看出「视角变多之后,对手是否追上来」。这一对与前一张的分工是:图 6-1 的看点是伪影少了(数量维度),图 7-1 的看点是细节多了(质量维度)。注意这里的措辞已经从 reduces floaters 变成 captures finer details:图注自己在换论点,读的时候跟着换。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 7, p10 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

动态那两张看完了,最后回到静态。 下面这张是 Blender 稀疏视角的定性,它是第 10 章唯一的静态画面证据:把「动态那一边差距更容易看出来」这句话放到同一双眼睛下对照,靠的就是它。

图 10-1:静态稀疏(10 视角)的定性(E 类 · 证据)· 原文 Fig. 10, p11
图 10-1 静态稀疏(10 视角)的定性(E 类 · 证据)· 原文 Fig. 10, p11 怎么读 ①指认:图注原话是「Blender 上稀疏视角重建的定性结果,使用 10 个输入视角。我们的方法给出更锐利的重建与更准确的几何」[Our method yields sharper reconstructions with more accurate geometry.]。②读法:这张图是第 10 章唯一的静态定性(图 4-1 是曲线,本图是画面)。盯「锐利(sharper)」与「几何更准(more accurate geometry)」这两个词:前者看边缘是否发虚,后者看形状有没有被拉歪。它与图 6-1/7-1 的分工很清楚:那两张是动态(还要管时间这一维),本图是静态。第 10.3 节那个「动态收益更厚」的结论,在画面上就该表现为「动态那两张的差距比本图更容易看出来」,这是可以对着看的。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 10, p11 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

原文还给了一句画面侧的判词,用来收这三张图:在 10 输入视角设置下,本篇与 SplatFields 的定性对比展示在图 10 中,我们的方法产生更锐利的重建、且 floater 伪影更少[§5.2, p5]。

10.6 这一章的三条结论

  1. 稀疏静态上,模块的净贡献是 PSNR +0.47、SSIM +0.66(×100),LPIPS 打平略退(−0.01),三选二;
  2. 稀疏动态上三项全部同向且幅度约为静态的三倍(PSNR +1.38、SSIM +0.77、LPIPS −0.48),动态那一边的收益更厚,且这一点与「贴纸同时丢了视角与时间两维」的解释自洽;
  3. 两张走势图的论点落在 consistently 这个词上(4→10 全程不交叉),而它们的画面证据是四张定性图。

11稠密视角、表面重建与效率账

上一章看的是最吃香的一端;这一章看另外两件事:视角给到稠密的时候,那个「公共字典」还能加多少分:以及它每个月要收多少手续费。

11.1 口径:稠密这条线怎么训、怎么比

第 10 章那套口径在这里要换掉[§5.1, p5;§5.3, p6;附 A.2, p12]:

项稀疏/动态(第 10 章)稠密(本章)
backboneSplatFields(静态)/SplatFields4D(动态)GOF(几何那条最强)与 3DGS-MCMC(稠密新视角合成那条最强)
迭代静态 40k(自 20k 检查点接 20k);动态 200k(自 100k 接 100k)30k = 预训练 backbone 5k + 挂上本模块联合训练 25k
数据集Blender(稀疏静态)、Owlii(动态)Blender、MipNeRF360(新视角合成)+ DTU(表面重建)
指标PSNR/SSIM/LPIPS同上,另加 Chamfer Distance(CD)

三条口径先记住:

  1. 「30k」里只有 25k 是挂着模块训的:与第 10 章「从检查点接着跑」同一个思路,比的仍是净贡献[附 A.2, p12];
  2. CD 是在「抽出来的网格」上量的,不是在渲染图上量的[§5.1, p5]:所以它管的是几何,不是画质;
  3. 本章的 SSIM/LPIPS 不乘 100(写成 0.9698/0.0307 这样的原值),而表 2/3 与附录表 13–21 乘了 100[表 4 表体 vs 表 2/3 表体]。同一篇论文里两种刻度并存,读表第一眼看表注。

另有一处原文自己写岔了、本书照录:表 5 的表注与表体把 3DGS-MCMC 写成 3DSG-MCMC(多一个 S,共 5 处;表注里还有一处 3DSG-MCMC),而表 4 与正文写作 3DGS-MCMC[表 5, p6 对照表 4, p5]。同一个方法名两种拼法,读者自己认。

11.2 表 4-1(上):两条 backbone 的新视角合成

先看这张表的前六列(Blender 与 MipNeRF360 各三个指标)[表 4, p5]:

方法Blender PSNR↑SSIM↑LPIPS↓MipNeRF360 PSNR↑SSIM↑LPIPS↓
MipNeRF36030.340.95100.060027.690.79200.2370
Instant-NGP32.200.95900.055025.300.67100.3710
3DGS33.080.96710.044027.260.83180.1871
TexturedGaussians33.240.96740.042827.350.82740.1858
2DGS33.080.96800.033226.810.79670.2520
GOF33.440.96980.030727.450.82720.1945
GOF + Ours34.090.97100.028627.710.82570.1964
3DGS-MCMC33.810.97180.028428.140.84270.1755
3DGS-MCMC + Ours34.060.97240.027528.240.84290.1748

这张表的作用是「两条 backbone 都被抬起来」,并不在争「第一名」:原文的判词是我们的方法在两条 backbone、两个数据集上都持续提升,其中 PSNR 的增益尤其明显,并且我们这些挂载变体在先前工作里取得最好的表现[§5.3, p6]。

逐格算差值(每条 backbone 只跟它自己的基线比):

对照数据集PSNR↑SSIM↑LPIPS↓
GOF → GOF + OursBlender+0.65+0.0012−0.0021
GOF → GOF + OursMipNeRF360+0.26−0.0015+0.0019
3DGS-MCMC → + OursBlender+0.25+0.0006−0.0009
3DGS-MCMC → + OursMipNeRF360+0.10+0.0002−0.0007

两个方向完全不同的现象,必须分开说:

① GOF 在 Blender 那一组是「三项全进」(+0.65/+0.0012/−0.0021),而它在 MipNeRF360 那一组只有 PSNR 进(+0.26),SSIM 退了 0.0015、LPIPS 退了 0.0019。这是本篇在稠密端第一处「三选一」。 原文那段判词里写的正是在两条基准上都持续提升,其中 PSNR 上的增益尤其明显[§5.3, p6]:「尤其明显」这四个字的另一面,就是另外两个指标并不总是跟着走。

② 3DGS-MCMC 那一组是四条里最整齐的:六个格子(两个数据集 × 三个指标)全部同向,但幅度都在 0.25 dB / 0.0006 / 0.0009 这个量级:比 GOF 那一条更整齐,也更小。 这一条与第 9.4 节的口径自洽:基线本身越强,可加的空间越小(3DGS-MCMC 在 MipNeRF360 上是 28.14,比 GOF 的 27.45 高)。

还有一处值得圈的是「排序变了」:Blender 上,挂上模块之后的 GOF(34.09)超过了没挂模块的 3DGS-MCMC(33.81);而 MipNeRF360 上,GOF 挂完(27.71)仍然低于没挂的 3DGS-MCMC(28.14)。所以「哪个 backbone 更强」在两张数据集上答案不同,而模块的作用是「把各自抬一点」,不是「抹平 backbone 之间的差」。

11.3 表 4-1(下)与图 8-1:DTU 表面重建

这张表的最后一列是本章唯一的几何账[表 4, p5]:

方法CD↓(DTU 15 个 scan 平均)
3DGS1.96
SuGaR1.33
GaussianSurfels0.88
2DGS0.80
GOF0.74
GOF + Ours0.67

GOF 的 0.74 降到 0.67,差 0.07。 这个幅度放在这张表里不算大(GOF 一次就比 2DGS 低了 0.06),但它的位置很重要:0.67 是这张表的全局最好值,而且它是从「已经最好的那个」再往下压出来的。

逐 scan 算一遍,好在哪里、差在哪里[表 21, p15]:

Scan243740556365698397105106110114118122平均
GOF0.500.820.370.371.120.740.731.181.290.680.770.900.420.660.490.74
GOF + Ours0.440.700.380.370.920.770.671.141.240.640.620.780.370.590.450.67
差−0.06−0.12+0.010−0.20+0.03−0.06−0.04−0.05−0.04−0.15−0.12−0.05−0.07−0.04−0.064

15 格里 12 格更好、1 格持平(scan 55)、2 格更差(scan 40 的 +0.01 与 scan 65 的 +0.03),两处「更差」都小到 0.03 以内,而最好的两处到了 0.20(scan 63)与 0.15(scan 106)。

「钱花在哪里」这一条也读得出来:改善最大的四格是 scan 63(−0.20)、scan 106(−0.15)、scan 37 与 scan 110(各 −0.12);按 GOF 这一列的难易排位,scan 63/110/37 分别处在第 3/4/5 位(1.12/0.90/0.82),scan 106 处在第 6 位(0.77),四格里有三格落在 GOF 最吃力的那一半。反方向:两处微退里的 scan 40 是这一列的并列最低值(0.37),scan 65 的 0.74 正落在均值上。 一句话:大钱花在短板上,微亏出在本来就不差的地方。 这条规律在逐格表里很常见,它也解释了为什么平均值只动 0.07:两头互相抵掉了一部分。

原文对这张表的判词:我们进一步验证模型更准确地恢复表面的能力:方法建立在当前最好的 3DGS 表面重建方法 GOF 之上,在 DTU 数据集上按表 4 评测,我们的方法相对原方法展现出更好的表面重建表现。逐场景的细目与更多基线对比在附录里;图 8 的定性结果显示我们的模型产生更准确、更平滑的表面,受益于高斯基元在几何与外观上增强的局部表达力。此外,我们建模视角相关效果的能力,在恢复镜面表面区域时尤其有效,洞更少:正如文中苹果那个例子所示[§5.3, p6]。表 21 的注文另补一句:我们的方法增强了 GOF 并取得当前最好的表现[表 21 注文, p15]。

这里有一处要单独拎出来:正文那句判词里出现了 the apple example(苹果那个例子),但 DTU 的 15 个 scan 是按编号(24/37/……/122)出现的,全篇没有叫 apple 的场景。 按第 11.1 节口径②,CD 量的是抽出的网格;而这句话里点名的例子在图 8 上:图 8 的列头写的是 Reference/GOF/GOF + Ours,没有场景名。 本书照录这句话,并把这一处指认留作读者可自行核对的一项:它不影响 CD 的读数,但影响「苹果」这个指点到底落在哪一格上。

图 8-1:DTU 表面重建的定性(E 类 · 证据)· 原文 Fig. 8, p11
图 8-1 DTU 表面重建的定性(E 类 · 证据)· 原文 Fig. 8, p11 怎么读 ①指认:图注原话是「DTU 数据集上表面重建结果的定性对比。我们的方法改善了 GOF 所用的两种表面提取方式的网格质量:TSDF Fusion(第一行)与 GOF 提出的方法(第二行)」[Our method improves the mesh quality for both surface extraction approaches used in GOF: TSDF Fusion (first row) and GOF's proposed method (second row).]。②读法:这张图有一个别处没有的特点:GOF 出网格有两条路(TSDF Fusion 与 GOF 自提),而本篇两条路都改善。读的时候按行看(第一行 TSDF Fusion、第二行 GOF 自提),列是 Reference/GOF/GOF + Ours。要盯的是两样东西:「洞」与「毛刺」,CD 那个数就是在这两样上量的(第 11.1 节口径②:量的是抽出来的网格,不是渲染图)。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 8, p11 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

11.4 图 3-1 与图 9-1:两张新视角合成的定性

稠密端的画面证据也是两张:一张真实(MipNeRF360)、一张合成(Blender)。

图 3-1:真实大场景(MipNeRF360)的新视角合成(E 类 · 证据)· 原文 Fig. 3, p6
图 3-1 真实大场景(MipNeRF360)的新视角合成(E 类 · 证据)· 原文 Fig. 3, p6 怎么读 ①指认:图注原话是「MipNeRF360 数据集上新视角合成的定性对比。我们的方法通过更好地处理视角相关效果、并保住细粒度结构,增强了基线」[Our method enhances baselines by better handling view-dependent effects and preserving fine-grained structures.]。②读法:这张图里有两条 backbone 的两组对比:GT/GOF/GOF + Ours 与 GT/3DGS-MCMC/3DGS-MCMC + Ours,所以要按组分开看,别把两组连成一条链。图注里那两个短语各对应一类观察:view-dependent effects 是高光、反射这类只有从特定角度才看得到的东西;fine-grained structures 是细结构。正文把第二样点名了:它有效保住基线因局部表达力有限而常漏掉的细粒度结构(例如图中所示的线缆)[§5.3, p6]:所以这张图上要找的是一根线缆。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 3, p6 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

上面那张是真实大场景(MipNeRF360),下面换到合成场景(Blender 100 视角)。 两张要合起来看,因为图注末尾那两个要求在这两处不是同一件事:真实场景的难点是「高频与视角相关」抓不抓得住,合成场景的难点是「平滑与细节能不能同时要」。

图 9-1:稠密合成场景(Blender 100 视角)的定性(E 类 · 证据)· 原文 Fig. 9, p11
图 9-1 稠密合成场景(Blender 100 视角)的定性(E 类 · 证据)· 原文 Fig. 9, p11 怎么读 ①指认:图注原话是「Blender 上使用 100 个输入视角的定性对比。所提出的神经纹理表示产生更平滑的几何,同时抓住高频外观细节」[The proposed neural texture representation produces smoother geometry while capturing high-frequency appearance details.]。②读法:这张图的看点是一对本来会打架的东西被同时要到了:smoother geometry(几何更平滑,也就是不要毛刺)与 high-frequency appearance details(外观细节更高频,也就是不要糊)。在稀疏端这两件事是互相拆台的:把几何抹平,往往把细节一起抹掉。所以这张图是「视角给足之后才成立」的兑现,它是表 4-1 Blender 那一格 34.09 在画面上的对应。列同样分两组(GT/3DGS-MCMC/3DGS-MCMC + Ours 与 GT/GOF/GOF + Ours),同样要分开看。 来源:Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction, Fig. 9, p11 · © 2025 the owner/author(s)(CC BY 4.0,逐图署名引用)· 原样引用,未修改

原文对这两张的统称引用是一句:定性结果显示在图 9 与图 3 中,我们的方法增强了基线捕捉高频、视角相关效果(如镜面高光)的能力,并有效保住那些常被基线漏掉的细粒度结构(例如图中所示的线缆)[§5.3, p6]。这一句把两张图的分工说清了:图 3-1 在真实大场景上交待「高频与视角相关」,图 9-1 在合成场景上交待「平滑与细节同时要」。

11.5 表 5-1:账单正面

从这一节开始换话题:它要收多少钱。 先看总表[表 5, p6]:

数据集方法PSNR#GSizeVRAMTimeFPS
Blender3DSG-MCMC33.810.29M69MB6GB5min380
Blender3DSG-MCMC + Ours34.060.29M87MB15GB36min85
MipNeRF3603DSG-MCMC28.143.56M842MB15GB15min135
MipNeRF3603DSG-MCMC + Ours28.243.56M860MB43GB75min37
BlenderSplatFields22.580.30M74MB8GB80min430
BlenderSplatFields + Ours23.050.33M86MB17GB135min150
OwliiSplatFields27.870.10M28MB7GB14h38
OwliiSplatFields + Ours29.250.10M31MB11GB23h15

逐格算倍率,这是本章最该记住的一组数:

数据集(backbone)项基线+ Ours变化
Blender(3DGS-MCMC)训练显存6 GB15 GB2.5×
训练时长5 min36 min7.2×
渲染 FPS38085降到 1/4.5
MipNeRF360(3DGS-MCMC)训练显存15 GB43 GB2.9×
训练时长15 min75 min5.0×
渲染 FPS13537降到 1/3.6
Blender(SplatFields)训练显存8 GB17 GB2.1×
训练时长80 min135 min1.7×
渲染 FPS430150降到 1/2.9
Owlii(SplatFields)训练显存7 GB11 GB1.6×
训练时长14 h23 h1.6×
渲染 FPS3815降到 1/2.5

除了这组倍率,表里另有三列值得单独说:

  • #G(高斯数)几乎不动:四条里有三条完全相同(0.29M/3.56M/0.10M),只有 SplatFields/Blender 从 0.30M 增到 0.33M(+10%)。这说明本篇不是靠「多撒高斯」赢的,这一点后面第 12.1 节表 7 的 † 行会再证一次。
  • Size(整模型体积)涨得不多:69 → 87 MB(+18,+26%)/842 → 860 MB(+18,+2.1%)/74 → 86 MB(+12,+16%)/28 → 31 MB(+3,+11%)。原文对这条的解释是:同样的原语数下能保持相当的模型体积,靠的是全局神经场把 per-primitive 的局部 RGBA 纹理压掉了[§5.4, p7]:所以它涨的那十几 MB,基本就是那套全局场自己的体积。
  • VRAM 与 Time 涨得都不少,而原文明说了来路:训练显存上升主要来自「要存 RGBA 纹理的梯度」;渲染阶段的前向里额外多出约 1 GB 显存(百万级原语时);而渲染 FPS 的下降主要来自自 GOF 沿用过来的 ray–Gaussian 求交算法、以及全局神经场的前向[§5.4, p7]。

11.6 表 6-1:把那个 85 FPS 拆开到毫秒

「FPS 为什么掉」这件事,表 6 拆到了毫秒级[表 6, p7]。口径:Blender 数据集、单张 800×800 图、0.3M 原语[表 6 注文, p7]。

组件栅格化Ray-Gaussian 求交纹理查询NN 前向合计
时长(ms)2.64.20.24.711.7

这张表有两处可以交叉验证,而且两处都对得上:

  • 1 ÷ 2.6 ms ≈ 385 FPS,与表 5 里 3DSG-MCMC 的 380 FPS 对得上:表 6 的「栅格化」这一列,就是 vanilla 3DGS 的全部开销;
  • 1 ÷ 11.7 ms ≈ 85 FPS,与表 5 里 3DSG-MCMC + Ours 的 85 FPS 对得上:所以这张表不是另起一套账,它把表 5 里那个 85 拆开了。

拆开之后最要紧的一条:两笔新增开销(求交 4.2 + 网络前向 4.7 = 8.9 ms)占总时长 11.7 ms 的 76%;而纹理查询只花 0.2 ms,占 1.7%。 原文的判词是与 vanilla 3DGS(只有栅格化)相比,本篇新增的计算开销主要来自 ray-Gaussian 求交与神经网络前向[表 6 注文, p7]。换成一句人话:贵的是「怎么找到那个高斯」和「算那张贴纸」,不是「读那张贴纸」。 这一条也提前预告了下一节的结果:它压的是「存」与「读」,没压「找」与「算」。

11.7 表 11-1 与表 12-1:另一条 backbone 上的账,以及存储这一仗

表 11 把同样的几笔开销在 GOF 这条 backbone 上再算了一遍[表 11, p12]。一处记号先说明:原文把这一栏记作 GOF*(带星号,指论文发表时放出的原版实现),本页照录这个记号,只在显示上把星号写成 ∗(U+2217),含义不变。

方法CD↓PSNR↑SSIM↑LPIPS↓训练(min)FPS
GOF∗0.7433.440.96980.030739.5028.32
GOF∗ + Ours0.6734.090.97100.028661.7820.82

训练时长 39.50 → 61.78 min = 1.56×;渲染 FPS 28.32 → 20.82 = 降到 1/1.36(降 26.5%)。

这张表里有一条附注必须一起读:这里的 GOF∗ 是「论文发表时放出的原版实现」;GOF∗ 的最新版合并了 CUDA 操作、有 2× 提速,而这个优化同样适用于本篇[表 11 注文, p12]。照录:也就是说 61.78 min 这个数是在「没吃到那次提速」的前提下测出来的;而原文对这笔交易自己的判词是:虽然我们的模块相对 GOF∗ 引入了额外计算开销,但这个取舍在 Blender 的新视角合成指标与 DTU 的表面重建精度(CD)上都换来了显著更好的表现[表 11 注文, p12]。

两处口径提醒(这两组数经常被拿来横向比,其实不可比):

  • 表 11 的 GOF∗ 训练 39.50 min 与表 5 的 3DGS-MCMC 5 min 不可直接比:两条 backbone 不同、实现也不同;
  • 表 5 的 85 FPS 与表 11 的 20.82 FPS 也不可比:前者是 3DGS-MCMC,后者是 GOF∗,而 GOF∗ 本身就要跑 ray-Gaussian 求交。要横向比,只能跟「同一张表里的那个基线」比。

接下来是本章唯一一处「账面上全面赢」的东西:存储[表 12, p12]:

方法Blender PSNR↑Blender 纹理存储MipNeRF360 PSNR↑MipNeRF360 纹理存储
Textured Gaussians33.24∼51M27.35∼854M
GOF + Ours34.09∼15M27.69∼15M
3DGS-MCMC + Ours34.06∼15M28.24∼15M

先说这张表的口径,它跟第 12.3 节表 9 不是同一件事:这一列量的是「存纹理所需的磁盘空间」,不是整模型体积[表 12 注文, p12];整模型体积在表 9 里(GOF + Ours 是 68.2 MB)。两个口径不能混着读。

逐格算差值:

数据集PSNR↑ 变化纹理存储变化倍数
Blender33.24 → 34.09(+0.85)51M → 15M(−36M)小 3.4 倍
MipNeRF36027.35 → 28.24(+0.89)854M → 15M(−839M)小 56.9 倍

那个 ∼854M 是本条最扎眼的地方。 MipNeRF360 是真实世界的大场景、原语多,per-primitive 纹理的存储随原语数线性上涨;而全局神经场的尺寸与场景规模无关,它就是那三张平面加一个小网络。所以场景越大,这笔账的差距越大:Blender 上 3.4 倍,MipNeRF360 上 56.9 倍。 这正是第 2.2 节埋下的那句「per-splat 纹理一族只在稠密视角 + 少原语的前提下被验证过」在存储维度上的兑现。

原文对这张表的判词:我们进一步通过与同期工作 Textured Gaussians 对比来展示神经纹理建模的优势,它用 per-primitive 的 2D RGBA 纹理增强 3DGS。我们按原文报告它的指标,并依据其报告的原语数与纹理分辨率估算它的模型体积。如表 12 所示,我们的方法在体积小得多的情况下取得显著更高的表现,从而带来存储开销上的大幅下降[§5.4, p12];表注再补一句:我们的 NTS 取得更高 PSNR 而使用更少存储[表 12 注文, p12]。

最后交代一处原文的坦白:它自己写了「依据报告的原语数与纹理分辨率估算」[§5.4, p12]:也就是说那个 ∼854M 是估算值,不是直接量出来的。量级可信,末位不能抠。

11.8 这一章的四条结论

  1. 稠密端两条 backbone 都被抬起来,但幅度与整齐度不同:GOF 在 Blender 上三项全进(+0.65/+0.0012/−0.0021),在 MipNeRF360 上只有 PSNR 进(+0.26);3DGS-MCMC 那条六个格子全部同向,但幅度都在 0.25 dB 以内。基线越强,可加的空间越小。
  2. DTU 的 CD 由 0.74 降到 0.67(逐格差的和 ÷15 = −0.064):15 格里 12 格更好、1 格持平、2 格微退(≤0.03),而且大钱花在短板那一半上。
  3. 账单落得很实在,落点也明确:显存 1.6–2.9×、训练时长 1.6–7.2×、FPS 降到 1/2.5–1/4.5;新增推理时间的 76% 出在「ray-Gaussian 求交 + 网络前向」,而纹理查询本身只占 1.7%;#G 几乎不动(四条里三条完全相同),说明它不是靠多撒高斯赢的。
  4. 存储是唯一一处账面上全面赢的地方:与同类的 per-primitive 纹理方法相比,PSNR 更高(+0.85/+0.89)而纹理存储小 3.4 倍(Blender)到 56.9 倍(MipNeRF360),而这个倍数随原语规模上涨,正是「全局场不随场景长大」的直接后果。

12消融、补充定量与边界

这一章把两件事放在一起:哪些部件真的在干活(消融四张,§5.5),以及这篇论文到哪里就不管用了(附录九张逐场景表 + 11 条边界)。

12.1 表 7-1:把全局网络拿掉会怎样

这张表是全部消融里最要紧的一张[表 7, p7]:

方法Blender(100 视角)PSNR↑/SSIM↑Blender(4 视角)PSNR↑/SSIM↑Owlii(4 视角)PSNR↑/SSIM↑DTU CD↓
Baseline(GOF)33.44/0.969819.16/0.822721.95/0.91600.74
+ Ours(w/o Neural)33.63/0.969619.14/0.814422.64/0.90720.72
+ Ours(Full)†(同模型大小)34.00/0.972120.00/0.835025.01/0.93080.68
+ Ours(Full)34.09/0.971019.98/0.835125.05/0.93190.67

w/o Neural 这一行是本章的核心,因为它就是第 6 章那两条毛病的「只治一半」版本:只挂局部 RGBA 纹理、不挂全局神经场(表 7 注文把它称作 naive per-primitive RGBA textures)。逐格跟 Baseline 比:

项Baselinew/o Neural差
Blender(100 视角)PSNR33.4433.63+0.19
Blender(100 视角)SSIM0.96980.9696−0.0002
Blender(4 视角)PSNR19.1619.14−0.02
Blender(4 视角)SSIM0.82270.8144−0.0083
Owlii(4 视角)PSNR21.9522.64+0.69
Owlii(4 视角)SSIM0.91600.9072−0.0088
DTU CD0.740.72−0.02

四个数据集上,它只在一处明显加分(Owlii 4 视角 +0.69),其余三处要么几乎不动、要么退。 三条要单独圈:

  • Blender(4 视角)是全篇最直接的一处「不划算」:PSNR 不进反退 0.02、SSIM 退 0.0083:加了参数反而更差。
  • 两处 SSIM 的退(−0.0083/−0.0088)比两处 PSNR 的进(+0.19/+0.69)更整齐,说明去掉全局场之后,掉的主要是结构一致性,不是亮度层次。
  • DTU 的 CD 反而变好一点(0.74 → 0.72),这与第 6 章表 1-1 是同一个现象:per-primitive 纹理在几何上不吃亏,甚至更贴合训练视角(表 1-1 里去掉全局神经纹理后训练 PSNR 更高、测试 CD 更差)。表 7 这两个格子,是那条「过拟合」证据在另一个数据集上的复现。

原文对这一行的判词:与朴素的 per-primitive RGBA 纹理(表中 w/o Neural)相比,我们的神经纹理泼溅方法在所有评测基准上取得显著且一致的提升;尤其在 Owlii(4 视角)的动态场景重建上取得约 3 dB 的 PSNR 提升,这主要归因于我们的神经纹理建模能捕捉时间相关的变化,而 per-primitive RGBA 纹理缺这个能力[§5.5, p7]。

那句「约 3 dB」有两个口径,要分开算:

算法算式结果
Full 对 Baseline25.05 − 21.95+3.10 dB √ 与「约 3 dB」一致
Full 对 w/o Neural25.05 − 22.64+2.41 dB

两个都能站住,但差 0.7 dB。 按「取整到 3」这件事看,原文用的是「对 Baseline」那个口径:因为这一行的判词主题是「有全局场 vs 没全局场」,但数值取的却是「有全局场 vs 完全不加纹理」。

† 那一行(Full†)是消融里最容易读错的一行:它是「把模型压到与基线同样大小」之后的版本[表 7 注文, p7]。数值上它跟 Full 几乎没有差别:PSNR 34.00 对 34.09(−0.09)、Owlii 25.01 对 25.05(−0.04)、DTU 0.68 对 0.67(+0.01),唯一反超的是 Blender(100 视角)的 SSIM(0.9721 对 0.9710)。这一行的用处是回答「是不是靠变大才赢的」:在同一模型大小下,它仍然四个数据集全面优于 Baseline(34.00 > 33.44、20.00 > 19.16、25.01 > 21.95、0.68 < 0.74)。原文把这个自证写进了两处:表注里的 at the same model size[表 7 注文, p7],以及 §5.4 那句尽管有额外开销,我们的方法仍取得更好的重建质量,并在同样的模型大小下持续优于基线(见表 7 的 Ours (Full)†)[§5.4, p7]。

12.2 表 8-1:局部 RGBA 纹理比「逐原语 RGB 值/球谐」好在哪

这一节问的是另一个问题:就算要用纹理,「纹理里装什么」有没有讲究? 原文试了两种替代装法:让全局网络预测 per-primitive 的 RGB 值(Neural RGBA),或预测球谐加一个 alpha 通道(Neural SHA)[表 8 注文, p7;§5.5, p7]。

方法Blender PSNR↑SSIM↑LPIPS↓MipNeRF360 PSNR↑SSIM↑LPIPS↓
Baseline33.440.96980.030728.140.84270.1755
+ Neural RGBA33.790.97030.030028.170.84130.1799
+ Neural SHA33.850.97030.029628.200.84150.1806
+ Ours34.090.97100.028628.240.84290.1748

这张表要按两列分开读,因为两列的方向不一样。

Blender 那一列:三个变体全都比 Baseline 好,本篇最好:RGBA +0.35/SHA +0.41/Ours +0.65(PSNR),而且三种装法在 SSIM 与 LPIPS 上也都同向改善。

MipNeRF360 那一列:只有 PSNR 三个都进,SSIM 与 LPIPS 两个退、一个进:

变体PSNR↑SSIM↑LPIPS↓
Neural RGBA+0.03−0.0014+0.0044
Neural SHA+0.06−0.0012+0.0051
Ours+0.10+0.0002−0.0007

「纹理比 RGB 值/球谐强」这句话的准确边界就在这里:在 Blender(合成、局部、视角相关强)上,怎么给都比基线强;换到 MipNeRF360(真实、大场景)上,「给什么」就分出高下了,只有那个「局部 RGBA 场」是三项全进,另外两种装法在结构指标与感知指标上反而退了。 原文的判词是我们的局部纹理场在不同数据集与 backbone 上持续取得更好的结果[§5.5, p7]:这句话在 PSNR 上无条件成立,在 SSIM/LPIPS 上要加上「只有本篇」这个限定。

另有一句自证的前半句不能漏读:表 7 里 w/o Neural 那一行本身就说明「不靠全局网络,局部 RGBA 纹理表示也能提升基线表现」[§5.5, p7]。但那一行的读数是「四个数据集只在一处明显加分」(12.1 节),自证与数字之间,读者要自己合上。

12.3 表 9-1:组件与超参,以及「哪一档最划算」

这一节的问题最实用:这套东西里,哪个部件在买画质、哪个在买体积?[表 9, p7]

方法PSNR↑SSIM↑LPIPS↓模型体积 (MB)
Ours(默认:全局三平面 192、NN 双隐层宽 128)34.090.97100.028668.2
W/o CP Decomposition34.030.97080.028475.1
W/o Sparsity Loss34.090.97080.028773.2
W/o View-dependence33.740.97040.029368.5
W/ Tri-plane Resolution 12834.080.97100.028663.1
W/ Tri-plane Resolution 25634.000.97080.028777.7
W/ NN Depth 334.030.97100.028668.5
W/ NN Width 25634.060.97090.028768.9

八个配置里,只有 W/o View-dependence 这一行是「明显掉」:PSNR 34.09 → 33.74 = −0.35、SSIM −0.0006、LPIPS +0.0007。这 0.35 是本章全部消融里最大的一处落差,而且它掉在唯一一个「机制性」的部件上:第 6 章的两条毛病里,毛病一(贴纸是印死的)对应的正是「视角相关」;把它去掉,画面直接掉 0.35 dB。 原文的判词:纳入视角相关的纹理表示提升了重建质量[§5.5, p7]。

另两项组件(CP 分解、稀疏正则)的作用主要落在体积,不在画质:

去掉的部件PSNR 差SSIM 差LPIPS 差模型体积变化
CP 分解(式 9)−0.06−0.0002−0.0002(反而更好)68.2 → 75.1 MB(+6.9,+10.1%)
稀疏正则(式 11)0−0.0002+0.000168.2 → 73.2 MB(+5.0,+7.3%)

稀疏正则那一行最干净:PSNR 与默认完全一样(都是 34.09),它买到的是 5.0 MB 体积。原文的判词正是这个意思:纳入 CP 分解(式 9)与稀疏损失(式 11)有助于减小模型体积[§5.5, p7]:照录,而且表里的读数与这句话对得上:这两项买的是体积,画质那一列基本不参与。 第 8 章那笔「12τ² 对 24τ」的账,在这里落成了一个 10.1% 的体积差。

超参那一组里藏着表里最实用的一条读数:

  • 三平面分辨率 128:PSNR 34.08(只掉 0.01)、SSIM 与 LPIPS 完全不动,而体积从 68.2 降到 63.1 MB(−7.5%);
  • 三平面分辨率 256:体积涨到 77.7 MB(+13.9%),PSNR 反而掉到 34.00(−0.09);
  • NN 深度降到 3:PSNR 掉 0.06(34.03),体积只涨 0.3 MB(68.2 → 68.5);
  • NN 宽度加到 256:PSNR 掉 0.03(34.06),体积涨 0.7 MB(68.2 → 68.9)。

这一组读数的意思是:全局三平面的分辨率往下调几乎免费(−7.5% 体积换 −0.01 dB),往上调没有回报(+13.9% 体积换 −0.09 dB);而网络的深度宽度两头都不划算。 原文说的只是我们的设计选择在不同架构变化下都保持高质量[§5.5, p7]:照录;而表里的读法更具体:192 不是画质的最优点,128 才是性价比点。

12.4 表 10-1:2D 纹理与 3D 纹理

最后一个设计选择:这张贴纸要不要真的是「立体的」?[表 10, p12;附 B, p12]

方法PSNR↑SSIM↑LPIPS↓
GoF33.440.96980.0307
+ Ours(2D Texture)33.930.97050.0290
+ Ours(3D Texture)34.090.97100.0286

2D 那一行的来历要交代:原文在附录 B 里说,他们探索过一个简化的近似:用「单个 2D 平面、对齐 splat 的主轴」来建模 RGBA 体[附 B, p12]。结果是两种表示结合神经纹理方法后都优于基线[附 B, p12;表 10 注文, p12]:

表示PSNR↑ 差SSIM↑ 差LPIPS↓ 差
2D 平面+0.49+0.0007−0.0017
3D 三平面+0.65+0.0012−0.0021

3D 比 2D 再好 0.16 dB,所以全篇采用 3D 三平面[附 B, p12]。这张表的用处是把一个设计选择变成一笔可读的小账:「用 2D 行不行」,行,但每差 0.16 dB。 它顺带说明了方法的核心不是「三平面」这个具体形状,而是「一张按坐标查的、共享的、可微的纹理场」这件事本身:把三维换成对齐主轴的一个二维平面,照样有效,只是少一点。

12.5 附录九张:逐场景账,以及那些「平均是怎么来的」

附录 C 只有一句交代用途:我们提供了 Blender 与 Owlii 上静态场景稀疏视角重建的完整基准[附 C, p13]。这九张表(表 13–21)就是这句话的内容:Owlii 动态四个视角档(10/8/6/4)+ Blender 静态稀疏四个视角档(10/8/6/4)+ DTU 一张逐 scan。

它们最直接的用处,是把第 10 章那个「LPIPS 略退 0.01」拆开。 表 3 里 SplatFields3D → + Ours 的 LPIPS 平均是 13.49 → 13.50(+0.01)。这四个视角档各自的平均是:

视角档表SplatFields3D+ Ours差
10 视角表 1710.9611.05+0.09
8 视角表 1811.9212.70+0.78
6 视角表 1913.5013.32−0.18
4 视角表 2017.5616.93−0.63

四档平均:(+0.09 + 0.78 − 0.18 − 0.63) ÷ 4 = +0.015 ⇒ +0.01 √ 与表 3 对得上。

这一拆,就把「略退」从「几乎无感」改写成「一处坏、两处好」:4 视角上 LPIPS 好了 0.63、6 视角好了 0.18,而 8 视角上差了 0.78:8 视角那一档单独吃掉了另外两档的好。 再细一层:8 视角那张表里,8 个场景有 7 个 LPIPS 变差(只有 Toy 好 0.12)[表 18, p14];而 4 视角那张表里 8 个场景的 LPIPS 全部变好[表 20, p14]。原文没有解释 8 视角这个坑,本书照录。

Blender 四张的 PSNR/SSIM 也同样是「平均掩盖逐格」:

视角档PSNR↑ 平均差SSIM↑ 平均差该档的逐场景反例
10 视角(表 17)+0.49+0.41PSNR 与 SSIM 的 8 个场景全部同向变好(四档里最干净的一张)
8 视角(表 18)+0.11+0.20Ficus 的 PSNR 掉 0.81、Chair 掉 0.34;Ficus 的 SSIM 掉 0.68、Chair 掉 0.53、Mic 掉 0.21
6 视角(表 19)+0.46+0.78Chair 的 PSNR 掉 0.72;Chair 的 SSIM 掉 0.30、Mic 掉 0.01、Materials 掉 0.02
4 视角(表 20)+0.82+1.25Hotdog 的 PSNR 掉 0.52;Toy 的 SSIM 掉 0.90、Hotdog 掉 0.18

注意 4 视角那一行的反差:它的平均最高(PSNR +0.82、SSIM +1.25),但它同时是四档里单格落差最大的一档(Toy 的 SSIM −0.90)。 这两件事不矛盾:在一档提升很大的数据上,个别场景掉一点也会被平均值盖住。

Owlii 那四张(表 13–16)比 Blender 干净得多,但同一个规律也在:

视角档表PSNR↑ 平均差SSIM↑ 平均差LPIPS↓ 平均差
10 视角表 13+0.77+0.53−0.56
8 视角表 14+0.83+0.47−0.20
6 视角表 15+0.83+0.47−0.24
4 视角表 16+3.10+1.59−0.95

表 16 那一行是全篇最陡的一档:4 视角上 PSNR 平均 +3.10(21.95 → 25.05),而且它是四档里唯一一档「三个指标幅度全面翻倍以上」的(其余三档 PSNR 都在 +0.77–+0.83 之间)。逐场景看,4 视角上四个序列的 PSNR 增益是 Dancer +3.36、Exercise +3.78、Model +1.82、Basketball +3.42:Model 是唯一没跟上 3 dB 的那一个(+1.82)。

四档平均与表 2 的核对(三行都能对上):

指标四档平均算式结果表 2 印的
PSNR ↑(0.77 + 0.83 + 0.83 + 3.10) ÷ 4+1.3825+1.38 √
SSIM ↑(×100)(0.53 + 0.47 + 0.47 + 1.59) ÷ 4+0.765+0.77 √
LPIPS ↓(×100)(−0.56 − 0.20 − 0.24 − 0.95) ÷ 4−0.4875−0.48 √

由此可以量出一句话:表 2 里那个 +1.38 dB,有 0.57 是 4 视角那一档拉起来的(去掉 4 视角后,剩下三档的平均只有 +0.81 dB)。这与第 10.3 节「动态那边收益更厚」不冲突,但把「厚」的来处钉在了一个具体档位上。

DTU 那一张(表 21)在第 11.3 节已经逐格算过,这里只补它的反例位置:15 格里 12 格更好、1 格持平(scan 55)、2 格更差(scan 40 的 +0.01 与 scan 65 的 +0.03);平均 0.74 → 0.67(逐格差的和 ÷15 = −0.064)[表 21, p15]。

最后交代一处版面上的拼接事实:表 13 的方法名列在原文排印里混进了竖排或折叠的分组标签碎片(sF/R/eN/D/4/g/n it/ta/lp/S 被按行并进了方法名那一列)。本书按原文语义重建为 DyNeRF/TNeRF/DNeRF/Nerfies/HyperNeRF/4D-GS/Deformable 3DGS/4DGaussians/SplatFields4D/SplatFields4D + Ours[表 13, p13]。这一处不影响数值读数,但读者若去对照原表,会看到那一列的碎片。

12.6 边界与反例(11 条)

这一节按惯例独立成节。 前四条是作者自陈(§6 Conclusion 两条 + 附 D Limitation 两条),后七条是从各表读数里读出来的(每条给出处)。

先把三条口径边界摆在这里当地基:

  • 稠密端那 30k 里只有 25k 是挂着模块训的[附 A.2, p12];
  • 几何用「抽出的网格上的 Chamfer Distance」量,不是渲染图[§5.1, p5];
  • 超参是按数据集固定的,不是按场景调(Blender 与 DTU 的局部三平面分辨率 τ = 8,其余实验 τ = 4;所有实验使用相同超参与优化设置以保证公平比较)[附 A.1/A.2, p12]:也就是说它不承诺在某个特定场景上调到最好。

作者自陈的四条[§6, p7–p8;附 D, p15]:

  1. 两类额外开销:编码 per-primitive 纹理场的神经网络,以及 ray-Gaussian 求交那一步额外的计算。 原话把这两样点得很清楚,并把「优化这两块」列为未来工作[附 D, p15]。账面读数见第 11 章:显存 1.6–2.9×、训练时长 1.6–7.2×、FPS 降到 1/2.5–1/4.5[表 5, p6;表 11, p12],其中 76% 的新增推理时间出在「求交 + 网络前向」这两步上[表 6, p7]。
  2. 户外场景提升不明显,这是本篇最要紧的一条自陈。 原话是「在室内数据集上取得强劲表现,但在 Mip-NeRF 360 这类户外基准上提升不那么明显」,归因于「当前有界 tri-plane 编码在捕捉复杂、大尺度户外变化上的局限」,未来方向是「更富表现力或分层的神经编码方案」[附 D, p15]。这条与第 11.2 节的读数完全对得上:MipNeRF360 上 GOF 那条 backbone 的 SSIM 与 LPIPS 各退了一点,也是全篇唯一一处「只有 PSNR 进」的稠密格子。
  3. 它最擅长的是稀疏视角这条线。 原文说 NTS 在解决稀疏视角重建问题时最有效[§6, p7]。这条既是自陈也是排序:四档视角的平均增益里,4 视角那一档贡献了大半(12.5 节:去掉 4 视角后其余三档平均只剩 +0.81 dB)。
  4. 未来工作指向效率,不指向画质。 结论段给的三个方向是 ray-Gaussian 求交算法(引 Bulo et al. 2025)与更快的神经架构(引 Müller et al. 2022)[§6, p8]:画质这一侧,作者没有留口子。

从各表读数里读出来的七条:

  1. 「提升」在稠密端的幅度比稀疏端小一个量级。 稠密端 GOF 上 +0.65(Blender)/+0.26(MipNeRF360)、3DGS-MCMC 上 +0.25/+0.10[表 4, p5];而稀疏静态 +0.47、稀疏动态 +1.38、4 视角动态 +3.10[表 2/3;表 16]。基线越强、场景越规整,可加的空间越小。
  2. 稠密端出现「三选一」,而不是三项全进。 GOF + MipNeRF360 那组是「PSNR +0.26、SSIM −0.0015、LPIPS +0.0019」[表 4, p5];表 8 里 Neural RGBA 与 Neural SHA 在 MipNeRF360 上同样是「PSNR 进、SSIM 与 LPIPS 退」[表 8, p7]。「更高 PSNR」与「更好看」在真实大场景上不是同一件事。
  3. 平均领先不等于逐格领先,Blender 8 视角那一档最明显。 LPIPS 8 个场景 7 个变差、平均 +0.78;PSNR 平均只有 +0.11;Ficus 掉 0.81 dB[表 18, p14]。而 4 视角那一档 LPIPS 8 个场景全部变好[表 20, p14]:同一套方法在两个视角档上的 LPIPS 行为相反。
  4. 动态线上也有一处 LPIPS 反例。 Owlii 8 视角的 Basketball 从 5.44 退到 5.60[表 14, p13]:这是 Owlii 四张表共 16 个 LPIPS 格里唯一后退的一格(其余 15 格全部同向)。
  5. 几何那侧的逐格也不是全胜。 DTU 15 个 scan 里 scan 40(0.37 → 0.38)与 scan 65(0.74 → 0.77)各退一点点[表 21, p15]。量级很小(≤0.03),但它说明 CD 的平均增益也是「多数格子贡献、少数格子抵消」得来的:而两处微退恰好落在 GOF 本来就不差的位置上(0.37 是该列并列最低值)。
  6. 消融里唯一掉得明显的只有「去掉视角相关」这一项。 其余七项(去 CP 分解、去稀疏正则、换三平面分辨率、换网络深度宽度)的 PSNR 差全部在 0.09 dB 以内[表 9, p7]:换句话说,这套方法里真正在买画质的只有「视角相关」这一件事,其余都在买体积与性价比。
  7. 「更高 PSNR 且存储更少」这句话有一个前提:原语规模越大,优势越大。 Blender 上纹理存储 51M → 15M(小 3.4 倍)、MipNeRF360 上 854M → 15M(小 56.9 倍)[表 12, p12]。56.9 倍这个数只在真实大场景上成立;换到原语少、场景小的 Blender,倍数掉到 3.4。 这条既是优势也是适用范围:per-primitive 纹理的成本随原语数线性上涨,全局场不随场景上涨:场景越大,本篇这笔账越好。

把 11 条收成一句话:本篇是一套「给每个原语加一层共享纹理场」的方法,它的强项在稀疏端(视角越少越吃香,4 视角动态 PSNR +3.10)、在动态线(补回时间那一维)、在存储(大场景纹理存储小到 1/57);它的账单在训练与推理两侧(显存、时长、FPS)、在户外场景(有界 tri-plane 抓不住大尺度变化);它买到的是「原语更会表达」,不是「算得更快」;而它自己承认,那两笔额外计算是它目前最贵的地方。

12.7 这张清单与第 1 章那句判词的关系

回到第 1 章那句判词:3DGS 的表达力,卡在「一个高斯只能用「一个核」描述它那一小块的颜色与不透明度分布」;以及第 6 章那两条毛病:印死的、各写各的。

这 11 条边界里,有 7 条直接落在这两句上:

  • 第 5、10 条(稠密端幅度小一个量级、只有「视角相关」在买画质)说明「加表达力」这件事的回报随基线强度递减,而且真正付钱的是「让贴纸不再是印死的」这一条;
  • 第 6、7、8 条(稠密端三选一、8 视角 LPIPS 反例、动态线一处反例)说明「更高 PSNR」不等于「更好看」,而且这两件事的分歧恰好出现在真实大场景与中等视角档上;
  • 第 1、2 条(两笔额外开销、户外提升不明显)是方法自身的代价与适用边界:它换的是表达力,付的是算力;而这份代价在户外场景上还要再打一次折;
  • 第 9 条(几何上的两格微退)说明连它最稳的那条线(表面重建)也是「平均意义上的赢」。

剩下 4 条属于「任何单一方法都会有」那一类:第 3 条(最擅长稀疏端)、第 4 条(未来工作在效率)、第 11 条(存储优势与原语规模同向),加上第 6 条里那条「大场景上指标会分歧」的一般情形。 它们的共同点是不构成缺陷,只是划出了范围。

这两类要分开读:前一类是「这套设计的代价」(用来判断值不值),后一类是「这篇论文的适用范围」(用来判断能不能用)。 而第 1 章那句「一个高斯一个核」的判词,在这一章的读数是:这句话本身被证实了:把「视角相关」那一项一去掉,PSNR 就掉 0.35 dB、成为全部消融里唯一明显的一处;但补它的代价也一并被证实了:显存与训练时长成倍上涨,FPS 掉到 1/4。

13这篇论文的三条贡献

原文在 §1 末尾把贡献列成三条[§1, p1]:

  • 推出 NTS 这个表示:一种用「神经 per-primitive RGBA 纹理场」增强 3DGS 的新表示,定位是「一套能增强各类 3DGS 方法的稳健表示」[§1, p1]。落地形态:每个高斯挂一张局部 RGBA 纹理场:式 (3) 换到局部坐标、式 (4) 与式 (6) 查值、式 (5) 加进体积渲染式(第 5 章)。这是三条里唯一的骨架,也是第 5 章那张「贴纸」的实体。
  • 用一套全局 tri-plane 网络来预测局部纹理场:原文对这条的措辞里同时装了两件事:一是「让几何与外观的表达力上去」,二是「保证跨任务的稳健性」[§1, p1]。落地形态:纹理场的参数不在原语上,在一套全局 tri-plane 里;式 (7) 取全局特征、式 (8) 用浅层网络解码成三张平面、式 (9) 用 CP 分解与外积把平面压成两列向量(第 7、8 章);视角方向与时间只喂颜色那一套网络(第 7 章)。兑现:这一条既是「省」(第 2 条贡献里那个「稳健」),也是「补」(第 3 条贡献里那个「视角与时间相关」),容量的压缩与表达的恢复,是同一套共享参数的两个后果。
  • 在大范围任务上持续提升现有 SOTA:涵盖稠密与稀疏视角的新视角合成、表面重建、动态重建[§1, p1]。落地形态:四条 backbone(SplatFields/SplatFields4D/GOF/3DGS-MCMC)+ 四个数据集(Blender/MipNeRF360/DTU/Owlii),共 9 张主表(表 1–9)+ 12 张附录表(表 10–21,其中表 13–21 是九张逐场景表)(第 10、11、12 章)。

三条里,第 1 条是「改什么」,第 2 条是「怎么给」,第 3 条是「赢多少」。 有三处要单独拎出来:

① 第 2 条与第 3 条其实是同一枚硬币的两面。 正因为参数不放在每个原语上(第 2 条),网络才能按「当前这一点、这个角度、这个时刻」现算(第 3 条的视角与时间相关);也正因为共享,才能把 per-primitive 纹理那笔存储压掉(第 11.7 节)。 第 6 章那两条毛病与这两条贡献是一一对应的:毛病一(印死的)→ 第 3 条;毛病二(各写各的)→ 第 2 条。 本篇没有第四条贡献,也没有第三条毛病。

② 三条贡献里,只有第 2 条带了一个「机制」层面的具体承诺,另外两条是「表示」与「结果」。 这这算不上缺点,它是这篇论文的写法:它把自己定位成「模块」而不是「方法」,原文在 §4.2 末尾的定位是这种做法大幅提升了表达力与泛化性,使 NTS 成为对现有 3DGS 管线的一个即插即用升级,可用在多种任务上[§4.2, p4]。第 10、11 两章里那三条 backbone(SplatFields/SplatFields4D/GOF/3DGS-MCMC 共四条)就是「即插即用」这四个字的实验形态。

③ 第 3 条那句「持续提升」,在第 11、12 两章的读数里要加限定。 它在平均意义与多数格子上成立(稀疏静态 PSNR +0.47/+0.66、稀疏动态 +1.38/+0.77/−0.48、DTU CD 0.74 → 0.67、稠密两条 backbone 都抬起来);但它不是逐格保证:Blender 8 视角的 LPIPS 是 8 个场景 7 个变差(第 12.5 节),DTU 有 2 个 scan 微退(第 11.3 节),MipNeRF360 上 GOF 那条是「只进 PSNR」(第 11.2 节)。「持续」这个词在原文里的依据是那两张走势图(图 4-1/图 5-1 的 consistently)[§5.2, p5]:而它是关于「随视角数变化不交叉」的陈述,不是关于「每一格都更好」的陈述。

另有一条不属于贡献、但属于本篇地基的判断:「一个高斯只能用「一个核」描述它那一小块」这个限制,是「局部表达力」的限制,不是「渲染管线」的限制[§1, p1;§4.2, p4]。本篇改的是每个原语能表达什么,没有改光栅化、没有改致密化、也没有改核的形状。

这条界定了它与相邻三篇的分界:

篇目改的是哪一层网络学的是什么
篇目 52(DBS)核的形状(用可变形 Beta 核替换高斯核):
篇目 59(LVDK)核本身由网络学出来核的形状参数
篇目 61(AD-GS)训练过程里致密化的节奏:(不改表示)
本篇(NTS)核之外再挂一层纹理场核之外的局部 RGBA 纹理

也正因为没动渲染管线、也没动核,它才能以「即插即用模块」的形态挂到 GOF/3DGS-MCMC/SplatFields 三条 backbone 上(第 10、11 章)。四条线合起来是「表示自由度」这条轴上的一次分工:前两篇动核,后两篇一个动节奏、一个动核之外的挂件。

14出处、许可与怎么读这篇

项内容
标题Neural Texture Splatting: Expressive 3D Gaussian Splatting for View Synthesis, Geometry, and Dynamic Reconstruction
作者Yiming Wang、Shaofei Wang、Marko Mihajlovic、Siyu Tang(全部 ETH Zurich, Switzerland)
发表SIGGRAPH Asia 2025(arXiv 摘要页 Comments 字段印 SIGGRAPH Asia 2025 (conference track);页眉印 SA Conference Papers '25, December 15–18, 2025, Hong Kong, Hong Kong)· 原文自印 ACM Reference Format:… In SIGGRAPH Asia 2025 Conference Papers (SA Conference Papers '25), December 15–18, 2025, Hong Kong, Hong Kong. ACM, New York, NY, USA, 16 pages.(照录;卷期页无占位式,与篇目 61 不同)· 16 页(主文 §1–§6 在 p0–p7;参考文献自 p8 起、与图 4–10 所在的 p10–p11 同页并存;补充材料附录 A–D 与表 10–21 在 p12–p15)
标识DOI 10.1145/3757377.3763957 · ACM ISBN 979-8-4007-2137-3/2025/12 · arXiv:2511.18873v1 [cs.CV](2025-11-24 提交,目前只有 v1)
关键词原文 Additional Key Words and Phrases:Novel View Synthesis、3D Gaussian Splatting、Static Reconstruction、Sparse-view Reconstruction、Dynamic Reconstruction · CCS Concepts:• Computing methodologies → Rendering; Point-based models.
文字层规模78,422 字符 | 编号式 (1)–(11) | 图 10 张 | 表 21 张(全站最高)| 无算法伪码(第 9 章那则渲染/训练流程由本站自拟,块下已注明)
授权CC BY 4.0(依据所据 PDF 内的权利块)。PDF 首页脚部(p0 y652.7,6.91 pt)明印 This work is licensed under a Creative Commons Attribution 4.0 International License.,且同处没有 Please use nonacm option or ACM Engage class to enable CC licenses 那句「未启用」提示(全篇 nonacm 0 命中);而 arXiv 摘要页 License 字段为 http://arxiv.org/licenses/nonexclusive-distrib/1.0/(arXiv 非独占分发),两处不一致。⇒ 可原样引用、可站内托管原文 PDF。落点三件(index.html + thumb.webp + paper.pdf),卡片许可 chip 不带 warn,图件原样零加工引用 + 逐图署名。与篇目 59(lvdk)同型(abs 页非 CC + PDF 印 CC),但两篇 PDF 印的 CC 档不同:本篇 CC BY 4.0、篇目 59 CC BY-NC-ND 4.0
使用说明正文只对原文作简短引用;摘要为英文原样引用并标页码;31 件图元全部原样零加工引用(未裁切拼接、未加标注、未施滤镜),逐图给出「图号 + 页码 + 出处 + 未修改」四字段署名 · 站内托管原文 PDF(paper.pdf),文末另给 arXiv 规范链接(https://arxiv.org/abs/2511.18873)· 项目页:https://19reborn.github.io/nts/
本篇图元清单(31 件,均 E 类原样引用):图 10 张:图 1-1(p0)|图 2-1(p3)|图 3-1(p6)|图 4-1(p10)|图 5-1(p10)|图 6-1(p10)|图 7-1(p10)|图 8-1(p11)|图 9-1(p11)|图 10-1(p11);表 21 张:表 1-1(p2)|表 2-1(p4)|表 3-1(p5)|表 4-1(p5)|表 5-1(p6)|表 6-1(p7)|表 7-1(p7)|表 8-1(p7)|表 9-1(p7)|表 10-1(p12)|表 11-1(p12)|表 12-1(p12)|表 13-1(p13)|表 14-1(p13)|表 15-1(p13)|表 16-1(p13)|表 17-1(p14)|表 18-1(p14)|表 19-1(p14)|表 20-1(p14)|表 21-1(p15)。 式(11 条全部逐步重推):(1)(2) 第 4 章|(3)(4)(5)(6) 第 5 章|(7)(8) 第 7 章|(9) 第 8 章|(10)(11) 第 9 章。 自绘:0 张。 伪码(1 则):第 9 章:原文无算法伪码(Algorithm/Alg./pseudocode 全文 0 命中),该则依 §4.1–§4.3 的叙述(求交取点 → 查局部纹理 → 全局神经场解码 → 合成 → 损失)与附 A.1/A.2 的取值整理,块下已注明来源。 四处排印事实(照录不改):① 参考文献与附录交错(图 4–10 落在 p10–p11 的参考文献页区,表 10–21 落在 p12–p15 的附录页区);② 表 17–20 的编号顺序与版面顺序不一致(p14 实际阅读序为 18 → 19 → 20 → 17);③ 章标题仅 9.96 pt(只比正文 8.97 pt 大 1 pt);④ 式号 (11) 的编号前带一个不可见空白,按「整行等于 (N)」普查会漏掉它(首扫只测到 10 条,逐行复核确认为 11 条)。另:文字层含 4 个非法控制字符(0x00/0x01/0x10/0x11),读文一律用清理后的副本。