方法逐行拆解 · 2025 — 2026

Radiance Meshes:能被显卡直接画的辐射场

Radiant Foam 用 Voronoi 泡沫做了实时光追辐射场,但 Voronoi 细胞平均有 15 个面,没法用显卡的光栅化管线画。 Radiance Meshes 换了对偶的另一半:Delaunay 四面体。四面体只有 4 个三角面——而三角形正是 GPU 硬件天生就会画的东西。于是同一个"分段常数密度"的辐射场,既能光栅化、又能光线追踪,而且体积分是 解析精确的,在 1440p 下比 3DGS 还快 32%。

预设读者:会基本的 NeRF(体渲染那条积分)、线性代数、微积分。不会 Delaunay / 四面体网格 / 可微拓扑也没关系—— 我们从头讲,并把论文每一步对到官方代码 half-potato/radiance_meshes。如果你读过隔壁的 Radiant Foam 拆解,这页就是它"四面体版的孪生兄弟",对比着读最划算。

1 篇核心论文 + 1 篇直接后续 · 4 个交互演示 · 最后更新 2026-06-01

阅读路径建议

零基础:从 §1 顺读,§4 的对偶演示先玩 30 秒。 已经懂 3DGS / Radiant Foam:直接跳 §6(外接球排序)、§7(怎么把四面体塞进光栅化管线)、§9 (外心查询的可微性)——这三节是 Radiance Meshes 和前作真正分道扬镳的地方。 只想看后续:跳到 §15。

§1一句话:它到底是什么

从带位姿的照片重建可换视角的 3D 场景,主流四条路线,Radiance Meshes 是第四条:

  • NeRF:场景 = 一个 MLP;沿光线采几十上百点、每点查一次网络做体积积分。质量高,慢。
  • 3DGS:场景 = 数百万带协方差高斯;光栅化投影 + 深度排序 + alpha 混合。极快,但是 splatting,不是光追,且排序会 popping。
  • Radiant Foam:场景 = 一团 Voronoi 泡沫;光线逐细胞穿过去,实时光追、无需 BVH。但 Voronoi 细胞面太多,上不了光栅化车道。
  • Radiance Meshes:场景 = 一堆 Delaunay 四面体(Voronoi 的对偶);每个四面体密度常数、颜色线性,光栅化和光追两条路都能精确渲染
关键想法 · 一句话

用 Delaunay 四面体(不是 Voronoi 细胞)来切场景:四面体只有 4 个三角面,显卡的光栅化管线原生就能画; 密度在每个四面体内是常数、颜色线性变化,于是体渲染积分有解析闭式;用外接球的幂排序得到 严格正确的前后顺序(连鱼眼相机都对);属性不存在顶点上,而是用一个 Instant-NGP 哈希场在每个四面体的外心处查询, 这样即使拓扑翻转,场也连续可导。

作者 Mai, Hedstrom, Kopanas, Kontkanen, Kuester, Barron(UC San Diego + Google),CVPR 2026 Highlight, 代码与 WebGPU 在线 demo 全开源(half-potato.gitlab.io/rm)。

§2核心方程:精确体渲染(密度常数、颜色线性)

还是那条发射-吸收体渲染积分,一条光线 $\mathbf{r}(t)=\mathbf{o}+t\mathbf{d}$

$$ \mathbf{C} = \int_{0}^{\infty} T(t)\,\sigma(\mathbf{r}(t))\,\mathbf{c}(\mathbf{r}(t),\mathbf{d})\,dt, \qquad T(t)=\exp\!\Big(-\!\int_0^t \sigma\,ds\Big) $$

关键差别在 $\sigma$$\mathbf{c}$ 的形状:密度在每个四面体内是常数 $\sigma_k$颜色在四面体内是线性的 $\mathbf{c}_k(\mathbf{p})=\mathbf{c}_k^0+\nabla\mathbf{c}_k\cdot(\mathbf{p}-\mathbb{O}_k)$。 于是光线穿过四面体 $k$ 的那一段(入口 $t_k^{\text{in}}$、出口 $t_k^{\text{out}}$) 的贡献有解析闭式——只用到入口颜色和出口颜色:

$$ \Delta\mathbf{C}_k = \Big(1-\tfrac{\alpha_k}{d_k}\Big)\mathbf{c}_k^{\text{in}} \;+\;\Big(\tfrac{\alpha_k}{d_k}-e^{-d_k}\Big)\mathbf{c}_k^{\text{out}}, \qquad d_k=(t_k^{\text{out}}-t_k^{\text{in}})\,\sigma_k,\quad \alpha_k=1-e^{-d_k} $$ $$ \mathbf{C}=\sum_k w_k\,\Delta\mathbf{C}_k,\qquad w_k=\prod_{l=1}^{k-1}(1-\alpha_l) $$

注意 $\Delta\mathbf{C}_k$ 同时含入口色 $\mathbf{c}_k^{\text{in}}$出口色 $\mathbf{c}_k^{\text{out}}$——这正是"颜色线性"带来的:常数颜色只需一个值,线性颜色要两端。 这个和式严格等于积分(不是 NeRF 那种数值近似,也不是高斯叠加近似)。

直觉

$d_k=\sigma_k\cdot$弦长 是这段的"光学厚度"。$\alpha_k=1-e^{-d_k}$ 是这段吃掉光的比例。 $w_k$ 是走到第 $k$ 段前还剩多少透射率。$\alpha_k/d_k$ 这个因子是积分里"线性颜色 沿程加权平均"的结果——当 $d_k\to 0$ 整段贡献趋于 0(代码里要对 $d_k$ 很小做保护)。

§3为什么是四面体,不是 Voronoi 细胞

Radiant Foam 和 Radiance Meshes 用的是同一组点的两种对偶切分:Voronoi 细胞 vs Delaunay 四面体。 选哪个,决定了你能不能用显卡的光栅化硬件。下面这张表是两篇论文的真正分水岭。

Radiant Foam(Voronoi)Radiance Meshes(Delaunay tet)
图元Voronoi 细胞Delaunay 四面体
每个图元的面数平均 ~15.5 面恰好 4 个三角面
能否硬件光栅化否(要把多边形面剖成几十个三角形)能(三角形原生支持)
渲染路径只有光线追踪光栅化 + 光线追踪 两条
密度 / 颜色常数 / 球谐常数 / 线性(颜色梯度)
属性存哪直接存在 site 上Instant-NGP 哈希场,在外心查询
可微性的解法零面积翻转外心连续 + Zip-NeRF 降权
容量(RTX 4090)~3.3M 细胞~15M 四面体

论文原话:"与 Voronoi 图不同,Delaunay 四面体剖分给出的是简单三角形,现有硬件原生支持。" 而 Radiant Foam 当初故意没用四面体,是因为"顶点位置到网格拓扑的映射不连续"(翻转)—— Radiance Meshes 的核心贡献,正是用 §9 的外心查询把这个不连续解掉了

Demo 1 · Delaunay 三角形 ↔ 对偶 Voronoi
同一组点,两种切法。默认显示 Delaunay 三角形(青色边)——每个只有 3 条边(3D 里是四面体的 4 个面), 显卡能直接画。打开"Voronoi 对偶"看另一半:每个细胞是多边形墙,边数多、栅格化要先剖成一堆三角形。 拖动任意点,看两套结构如何互为对偶地一起变。这就是 Radiance Meshes 选四面体、Radiant Foam 选 Voronoi 的全部分歧。

§4Delaunay 四面体 + 外心查询

给一组顶点 $\{\mathbf{v}_i\}$,Delaunay 四面体剖分把空间填满成不重叠的四面体 $T_k$, 满足"空外接球"性质(每个四面体的外接球内不含其它顶点)。它是 Voronoi 的对偶。

但 Radiance Meshes 有个反直觉的设计:它不把密度/颜色直接存在顶点或四面体上。而是维护一个 Instant-NGP 多分辨率哈希场 $G_\theta$(配 Mip-NeRF 360 的空间收缩),然后在每个四面体的 外心 $\mathbb{O}_k$ 处查询它,得到该四面体的特征,再解码成密度和颜色。

为什么是外心,而不是顶点或质心

这是全篇的胜负手,留到 §9 详讲。一句话先剧透:当拓扑翻转时,参与翻转的两个四面体外心几乎重合 (翻转点附近四点近似共球)。所以"在外心查询场"这件事跨翻转是连续的——而如果把值存在顶点上, 翻转会让值突然跳变,没法求导。

§5每个 tet 算出什么

从外心查到的特征 $\mathbf{b}_k$ 解码出三样东西(论文 Eq. 9–12)。先用 Zip-NeRF 的尺度降权 $\varphi$ 按外接半径 $\mathbb{R}_k$ 压掉高频哈希特征(细长四面体半径暴涨时尤其重要):

$$ \mathbf{b}_k=\varphi(\mathbb{R}_k)\odot G_\theta(\mathbb{O}_k),\qquad \sigma_k=\exp\big(h_\sigma(\mathbf{b}_k)\big) $$ $$ \mathbf{c}_k^0=\mathrm{softplus}_{\beta=10}\!\big(h_{\text{sh}}(\mathbf{b}_k)\cdot Y(\mathbf{d}_k)\big),\qquad \nabla\mathbf{c}_k=\frac{\min \mathbf{c}_k}{\mathbb{R}_k}\cdot\frac{h_\Delta(\mathbf{b}_k)}{\sqrt{1+\lVert h_\Delta(\mathbf{b}_k)\rVert^2}} $$
怎么来含义
密度 $\sigma_k$$\exp(h_\sigma(\mathbf{b}_k))$四面体内常数
基色 $\mathbf{c}_k^0$球谐 $Y(\mathbf{d}_k)$ · softplus视角相关(SH 阶数论文未明示)
颜色梯度 $\nabla\mathbf{c}_k$受约束保证非负让颜色在四面体内线性变化

规模感:每场景约 920 万(室外)/ 420 万(室内)四面体,单卡 RTX 4090 最多可达 ~1500 万四面体 (Radiant Foam 约 330 万 Voronoi 细胞)。Web 导出配置用 --budget 250000 顶点上限以适配浏览器。

§6排序键:外接球的幂(power of the circumsphere)

要把许多四面体合成成一张图,得有正确的前后顺序。3DGS 按高斯中心到相机的距离排,会在视角变化时 突然换序(popping)。Radiance Meshes 用一个更聪明、且可证明正确的键——四面体外接球 关于光线原点 $\mathbf{o}$

$$ P(T)=\lVert \mathbb{O}(T)-\mathbf{o}\rVert^2-\mathbb{R}(T)^2 $$

其中 $\mathbb{O}(T),\mathbb{R}(T)$ 是外接球的球心和半径。按 $P$ 升序排,就是严格正确的 前→后顺序,没有 popping。而且它只依赖光线原点,不依赖光线方向——所以只要所有光线共用一个 原点(针孔、鱼眼、各种畸变相机都算),这个排序都成立。这就是 Radiance Meshes 能免费支持鱼眼的原因。

Demo 2 · 外接球幂排序 vs 朴素质心排序
四个互相重叠、大小悬殊的三角形(=四面体),数字是当前的前→后合成顺序。拖动青色相机点绕场景移动: 打开开关用外接球的幂排序(正确);关掉改成质心距离(3DGS 式)——你会看到在某些相机位置, 大三角形和小三角形的顺序判断不一样,这正是 popping 的来源。大小差越大,朴素排序越容易错。

§7光栅化路径(论文的新方法)

把"会动的几何"喂给光栅化管线很慢。Radiance Meshes 的诀窍:发送冗余但静态的几何——把每个面复制两份、 每个顶点按它连接的四面体数复制多份,让固定功能管线自己筛。每个四面体作为一个图元:顶点/网格着色器 算好 4 个面的平面方程,片元着色器用透视正确的重心插值恢复出入口/出口交点,套上 §2 的闭式。

入口/出口距离用 Cyrus–Beck 裁剪对 4 个面求交。论文 Algorithm 1 预算了 4 个顶点处的平面交点, 让每个片元只花 12 FLOPs。核心片元逻辑(已贴近 shader 写法):

# 片元着色器:对四面体 4 个面做 Cyrus–Beck 裁剪,取入/出 t(~12 FLOPs)
d = length(ray_dir)
planeD = planeD / d
all_t  = planeN / planeD                      # 光线到 4 个面的参数
t_enter = max(all_t[planeD > 0])              # 朝前的面里最靠后的 = 入口
t_exit  = min(all_t[planeD < 0])              # 朝后的面里最靠前的 = 出口
# 然后用 §2 的闭式:d_k=(t_exit-t_enter)*sigma; alpha=1-exp(-d_k)
# dC = (1 - alpha/d_k)*c_in + (alpha/d_k - exp(-d_k))*c_out

两个 shader 变体:Mesh shader(最快,一个线程块协作生成网格数据,靠 warp shuffle 让每个四面体只加载一次); Instanced(兼容 WebGL / 移动端,每个四面体画一条实例化三角带,顶点加载 4 次)。顺序由 §6 的幂排序给出。 这条路在 MipNeRF360 上达到 240 FPS(室外)/ 384 FPS(室内),1440p 下比 3DGS 快约 32%。

§8光线追踪路径

另一条路用 OptiX,借用了 3DGRT 的透明度处理。它像 Radiant Foam 那样靠邻接逐面行走, 而是把每个四面体作为 4 个代理三角形交给 OptiX 的硬件三角求交,命中后同样用 Cyrus–Beck 算 入口/出口距离,套 §2 闭式。速度 84 FPS(室外)/ 190 FPS(室内),比 Radiant Foam 的光追器 快约 17%

两条路,同一个积分

光栅化和光线追踪算的是同一个精确闭式(§2 的 Eq.)。光栅化更快、连 WebGPU/移动端都能跑;光追更灵活, 适合二次光线/特效,并复用 3DGRT 的透明度。能二选一,正是因为图元是三角形——硬件这两条管线都认。

§9外心连续性:跨拓扑翻转可导

训练要对顶点位置 $\mathbf{v}_i$ 求导。但顶点一动,Delaunay 连接就会通过边翻转(Pachner move) 突变:四面体凭空出现/消失。这正是 Radiant Foam 当年绕开四面体的原因。Radiance Meshes 的解法和 Radiant Foam 不同—— 不是"零面积",而是:

把这句话刻进脑子

属性不存顶点,而是用哈希场在四面体外心处查询。翻转发生时,参与翻转的两个四面体 四点近似共球,所以它们的外接球几乎是同一个,外心几乎重合。于是"在外心查到的密度/颜色" 跨翻转是连续的——拓扑离散跳变,但场连续可导。再加 Zip-NeRF 降权 $\varphi(\sigma)=\mathrm{erf}\!\big(1/\sqrt{8\sigma^2 n_\ell^2}\big)$,在四面体变细长(外接半径暴涨)时 压掉高频哈希特征,稳住数值。

对照一下两兄弟的可微性策略,会更清楚它们是同一几何事实的两种用法(翻转点四点共球):

Radiant FoamRadiance Meshes
渲染的图元Voronoi 细胞Delaunay 四面体
翻转时的几何事实共享 Voronoi 面面积→0两四面体外心→重合
因此连续的原因零面积墙贡献为 0外心查询点连续移动
属性存哪直接存 site哈希场,外心采样

下面这个演示把"外心相遇"演给你看——它是 Radiance Meshes 可微性的全部秘密。

Demo 3 · 拖过翻转点,看两外心相遇
四个顶点切成两个三角形(=两个四面体),橙点/青点是各自的外心(查询哈希场的位置),细圈是外接圆。 慢慢把 T 往下推:在翻转的那一刻,四点近似共圆,两个外心相遇成一点、两外接圆并成同一个大圆。 读数里"外心间距→0"就是这一刻。所以无论对角线是 L–R 还是 T–B,在外心查到的值都连续—— 拓扑跳了,可导性没断。(对比:如果把颜色存在顶点 T 上,翻转会让它瞬间换归属、跳变。)

§10初始化:从 COLMAP 出发,gDel3D 每 10 步重建

顶点 $\{\mathbf{v}_i\}$COLMAP SfM 点云初始化(初始点数论文未明确给出)。四面体剖分用 gDel3D——一个 GPU 上的 3D Delaunay 库(不是 CGAL/qhull/scipy),代码里作为子模块。 整个训练里它每 10 个迭代从头重建一次——这就是为什么"快速重建三角剖分"是设计前提:顶点一直在动, 剖分必须便宜到能频繁重算。

§11训练循环与损失

这部分论文正文给的数字偏少,下面区分"论文明说的"和"来自官方仓库 / 未公开的",照实标注:

  • distortion 损失(施加在密度上):借 Mip-NeRF360 的 distortion 思想压 floater,但作用在 密度而非 alpha 合成权重上("原版形式不适合解析积分")。权重:论文未给。
  • 哈希网格的归一化 L2 weight decay(沿用 Zip-NeRF)。系数:论文未给。
  • 光度项(L1 / L2 / SSIM 权重):正文未明确给出。
  • 致密化后的 LR 尖峰:在第 $I$ 步致密化后,对哈希网格权重和顶点坐标的学习率短暂拉高 $\propto \exp(-6(i-I)/L)$ 再衰减,帮新加的几何快速归位。
  • 迭代数:主配置未明说;仓库 web 配置用 --iterations 10000--freeze_start 8000 (后段冻结顶点)。
  • 优化器:论文未明说(推测 Adam,未确认)。

单步开销(约 120 万四面体)大致:渲染 ~19ms + 哈希查询 ~13ms + 反传 ~143ms + Delaunay 重建 ~92ms ≈ ~267ms/步。 整盘训练 RTX 4090 上 每场景约 2.6–4.5 GPU·小时——比 3DGS(~0.5h)和 Radiant Foam(~1.6h)都慢, 这是它换来"两条渲染路 + 高质量"的代价。

§12自适应密度控制

致密化每 500 步一次,用两个"分裂分数"决定哪些四面体要加点:

  • SSIM 分裂分数 $S_k$:把图像 SSIM 误差按贡献反投影到图元上,$S_k>0.5$ 的四面体分裂。
  • 总方差分裂分数 $T_k$:四面体内渲染残差的方差(抓细长结构),$T_k>2.0$ 的分裂。
  • 新点位置:取误差最大的两个视角,算它们两条光线的近似交点(最短连线中点)作为新顶点; 落在四面体外就退化为随机采样。(仓库对应 --within_thresh / --total_thresh / --budget。)

剪枝/阈值方面,正文未详述显式 prune;网格抽取时按峰值颜色贡献剔除贡献 <0.1 的四面体 (仓库另有 --alpha_threshold / --density_threshold)。

Demo 4 · 精确体积积分:分段线性颜色 vs 分段常数
青点是相机,橙线是光线,黑点是它穿过四面体(这里是三角形)的进出边界。每段套用 §2 的闭式 $\Delta C=(1-\alpha/d)c_{\text{in}}+(\alpha/d-e^{-d})c_{\text{out}}$——用到入口色和出口色两端。 打开"颜色分段线性"时每段两端颜色不同(论文做法,更平滑);关掉变成每段一个常数色。转角度、加密度,看透射率 T 怎么衰减。

§13数字与权衡

数据集 Mip-NeRF360 + Tanks&Temples + Deep Blending。一句话总结:质量稳压 Radiant Foam、略低于 3DGS, 但渲染(尤其室内/光栅化)最快,代价是训练慢。

场景组指标Radiance Mesh3DGSRadiant Foam
MipNeRF360 室外PSNR/SSIM/LPIPS24.38 / 0.721 / 0.29224.63 / 0.729 / 0.27123.90 / 0.663 / 0.366
MipNeRF360 室内PSNR/SSIM/LPIPS30.61 / 0.920 / 0.25231.05 / 0.924 / 0.23830.66 / 0.906 / 0.251
T&T + DBPSNR/SSIM/LPIPS26.45 / 0.879 / 0.28626.65 / 0.876 / 0.26319.20 / 0.590 / 0.543
场景组RM 光栅化 FPS3DGS FPSRadFoam FPSRM 光追 FPS
室外24014523484
室内384251162190
T&T + DB475535353

关键读数:在 T&T+DB 上 Radiant Foam 直接崩到 19.20 PSNR,Radiance Meshes 稳在 26.45——优化鲁棒性是它相对 Radiant Foam 最大的实绩。光追路比 RadFoam 快 17%。训练时间 RM 3.5–4.5h vs 3DGS ~0.5h vs RadFoam ~1.6h, 是明显短板。单卡容量 ~15M 四面体 vs RadFoam ~3.3M 细胞。

§14四面体白送的应用

  • 鱼眼 / 镜头畸变:§6 的幂排序只依赖光线原点,任何共原点相机(含鱼眼)都正确,训练时就能用。
  • 网格抽取:按峰值颜色贡献阈值(剔 <0.1)即可抽出水密的不透明三角网格,能直接拖进 Blender。
  • 物理仿真:四面体网格天然适合 Position-Based Dynamics(PBD/XPBD),可交互形变。
  • 编辑:四面体形变 = 场景编辑。
  • 无 popping:幂排序保证精确可见性顺序,视角连续变化不跳变。

(注:论文展示重光照 relighting;演示的应用是鱼眼、网格抽取、物理、编辑。)

§15后续与近邻

Radiance Meshes 才几个月(2025-12),引用集很小。诚实声明:下面每个 arXiv 编号我都逐一核对过 arXiv 页面确认存在。 真正"基于它的四面体表示往下做"的,目前确凿只有一篇;其余是外围引用或同期近邻,照实分层。

Tier 1 · 真正基于四面体表示的后续

SDFRaster — Distance Field Rasterization for End-to-End Mesh Reconstruction
SIGGRAPH 2026 Cui, Song, Niu, Zhang · 中国科学技术大学(USTC) · arXiv:2604.23537

把体积四面体表示端到端变成干净、全局一致的表面网格,而不是事后跑一遍抽取。

关键想法:沿用 Radiance Meshes 的 Delaunay 四面体基底,但在四面体格上优化一个连续 SDF, 用 alpha 合成栅格化四面体,并把可微 Marching Tetrahedra 放进优化环里,直接端到端抽出表面网格。 它在参考文献里引用 Radiance Meshes(key radiancemeshes),但摘要主打 SDF+栅格化,未在摘要点名。

Radiance Meshes 的四面体装的是密度场(为渲染);SDFRaster 把它换成 SDF(为表面),转向端到端网格重建。

Tier 2 · 外围引用(引用它,但不基于其表示)

以下三篇在引用图谱里引了 Radiance Meshes,但摘要均未涉及四面体/Delaunay,多半是相关工作里的并列一引:

  • Scalable GPU Voronoi/Power DiagramsarXiv:2605.06408,Chalmers,2026-05)—— GPU 上构建大规模 Voronoi/power diagram,主题相邻(Delaunay 机器)但不是四面体辐射场的扩展。
  • Neural Harmonic TexturesarXiv:2604.01204,NVIDIA/USI,2026-04)—— 基于图元的高质量神经重建,把 RM 当相关工作引。
  • NeRF vs Gaussian Splatting 几何精度评测arXiv:2604.18205,2026-04)—— 一篇基准评测,顺带引到 RM。

Tier 3 · 同期 / 近邻(不引用 RM,但同属三角/四面体图元)

  • Radiant Foam(arXiv:2502.01157,ICCV 2025)——本方法对标的 Voronoi 版孪生兄弟。见 隔壁拆解
  • Tetrahedron Splatting / TeT-Splatting(arXiv:2406.01579,2024-06)——四面体格上做体渲染,用于 3D 生成,早于 RM。
  • Triangle Splatting(arXiv:2505.19175,2025-05)——三角形图元实时辐射场,早于 RM。

§A还没解决的问题

  • 训练慢。3.5–4.5 GPU·小时/场景,是 3DGS 的 ~7×、Radiant Foam 的 ~2–3×;每 10 步重建 Delaunay 是大头之一。
  • 原始质量略输 3DGS。各项 PSNR/SSIM 仍稍低于 3DGS,差距虽小但一致。
  • 哈希场 + 外心查询的开销。每四面体一次 Instant-NGP 查询,反传贵;不像 Radiant Foam 把参数直接挂在 site 上那么轻。
  • 动态 / 4D / SLAM。截至 2026-06 没有可核实的时变版本;四面体物理仿真已展示,但联合重建+形变的 4D 还没人做。
  • 训练超参不透明。论文正文未公开光度损失形式、各项权重、优化器、LR、总迭代数——要复现得读仓库默认值。
  • 重光照。没有 relighting / 逆渲染分解;颜色是 SH 烘焙的外观,不是材质×光照。
总结一句话

Radiance Meshes 的全部聪明可以压成两句:(a) 把场景切成 Delaunay 四面体而不是 Voronoi 细胞——四面体只有 4 个三角面, 所以显卡的光栅化和光追两条管线都能精确画,再靠"外接球的幂"得到无 popping 的正确顺序;(b) 属性不存顶点、而是用哈希场在四面体 外心处查询——翻转时两外心相遇,于是拓扑离散跳变、场却连续可导。它是 Radiant Foam 的对偶版:用对偶结构换来了硬件友好与 优化鲁棒,代价是训练更慢。

§B名词表 · Glossary

术语解释
Delaunay 四面体剖分把空间填满成四面体、满足"空外接球"性质;Voronoi 的对偶。
外心 circumcenter四面体外接球的球心;属性在此处查询,跨翻转连续。
外接球的幂 power$P=\lVert\mathbb{O}-\mathbf{o}\rVert^2-\mathbb{R}^2$;排序键,给出正确前后序。
边翻转 / Pachner move顶点移动时 Delaunay 连接的离散突变。
分段常数密度每个四面体内密度为常数,使体积分有闭式。
分段线性颜色颜色在四面体内线性变化(基色 + 梯度),闭式要用入/出两端色。
Instant-NGP 哈希场多分辨率哈希网格,存外观/密度;在外心采样。
Zip-NeRF 降权$\varphi=\mathrm{erf}(\cdot)$ 按尺度压高频哈希特征,稳住细长四面体。
Cyrus–Beck 裁剪光线对凸体(4 个面)求入/出参数的经典算法。
gDel3DGPU 上的 3D Delaunay 库;每 10 步重建一次剖分。
Mesh shader现代 GPU 几何管线阶段;RM 最快的栅格化变体。
Marching Tetrahedra从四面体标量场抽等值面网格;SDFRaster 用其端到端抽表面。

§C推荐阅读顺序

按理解台阶排,不按时间:

  1. NeRF 的体渲染那一节——确认 §2 那条积分在脑子里。
  2. 本页 §3 + Demo 1——先把"四面体 vs Voronoi、为什么三角形能栅格化"这件事玩明白。
  3. Radiant Foam 拆解——理解对偶的另一半,对比着看选型分歧。
  4. Radiance Meshes 正文 §3–§4(渲染)——配本页 §6/§7/§8 的排序 + 两条路读。
  5. 本页 §9 + Demo 3——外心连续性是它和 Radiant Foam 真正不同的可微性故事。
  6. 官方仓库 half-potato/radiance_meshes——把 §11/§12 的未公开超参对到 train.py 的 argparse 默认值。
  7. SDFRaster——看四面体基底怎么被接力到 SDF 表面重建。

Made for learning. 方法解读基于 Radiance Meshes (arXiv:2512.04076, CVPR 2026 Highlight) 论文、项目页 half-potato.gitlab.io/rm 与官方代码仓 half-potato/radiance_meshes(+ vkrm / webrm)。 完整 BibTeX、勘误、补遗欢迎 issue。最后更新 2026-06-01。

交互演示是 Canvas2D 的二维教学玩具,传达机制直觉,数值不代表论文实际三维性能。论文正文未公开的训练超参(损失权重、LR、 总迭代数等)在文中已照实标注为"未给出 / 来自仓库"。§15 后续工作均已逐一核对 arXiv 存在性,与 RM 的关系按各自摘要/正文据实分层。