Conference

Text-guided Controllable Mesh Refinement for Interactive 3D Modeling

Yun-Chun Chen, Selena Ling, Zhiqin Chen, Vladimir G. Kim, Matheus Gadelha, Alec Jacobson

University of Toronto; Adobe Research

一句话总结

给定一个粗糙的输入网格和一句文字描述,本文用”单视图 RGB 生成 → 多视图法线生成 → 网格优化”三段式前馈流程,在几十秒内为网格补上丰富的几何细节,同时让用户对整体结构、姿态和细节保持显式控制。

研究背景

文本到 3D 生成近年借助大规模文生图扩散模型取得快速进展,但对追求精细控制的 3D 美术师而言,主流方法有两类明显短板。一类方法直接从文字生成整个网格,用户无法约束输出形状的粗结构;另一类只给网格贴纹理,完全不改动几何。少数能在给定形状基础上修改几何的方法则普遍依赖代价高昂的分数蒸馏采样(SDS),一次生成动辄需要半小时到数小时,且往往要么几何质量差、要么偏离输入的粗结构。

本文的核心洞察来自一个现象:当用深度或法线图去控制文生图模型时,生成出来的图像会自带比原始形状更丰富的几何线索——比如仅由三个球体拼成的老鼠深度图,经扩散生成后的 RGB 图里,现成的法线估计模型都能从中读出眼睛、鼻子、耳朵对应的表面法线。作者由此想到:把这种”图像里隐含的细节”提取出来并施加到整个可见表面,就能既保留用户给定的粗结构,又用文字驱动细节生成,而且无需成对的粗-细几何训练数据。

方法

整体框架是三个可分阶段串联的流程,每一阶段的输出都是人类可读的图像或渲染结果,方便用户在中途预览、回退或改参数。前两阶段只跑预训练网络的前向推理,最后一阶段直接在网格上优化,因此整体只需数秒到几十秒。

flowchart LR
    A[输入粗网格 + 文字提示] --> B[阶段一: 单视图 RGB 生成]
    B --> C[阶段二: 多视图法线生成]
    A --> C
    C --> D[阶段三: 网格优化]
    D --> E[输出细节网格]

阶段一:单视图 RGB 生成。 用户指定一个起始视角 \(\theta_s\),系统渲染粗网格在该视角下的深度图,输入深度到 RGB 的 ControlNet,结合文字提示生成一张 RGB 图像 \(I_s = G_d(R_d[M_{coarse},\theta_s], P)\)。这张图既是最终细节效果的快速预览(约 3 秒),也为后续多视图生成提供更强的条件约束。由于扩散是逐步去噪的过程,可以通过在后段去噪步骤中关闭深度引导,来控制生成结果对输入粗形状的偏离程度。

阶段二:多视图法线生成。 只靠单一视角不够,作者定义了绕竖直轴旋转的六个视角集合 \(\Theta\)。这里提出了一个多视图 ControlNet \(G_{mv}\),它以阶段一的 RGB 图 \(I_s\) 和粗网格在各视角下的法线渲染 \(\{R_n[M_{coarse},\theta]\}\) 为条件,联合生成多视图一致的法线图 \(I_{n,\theta}\)。联合生成而非逐视图生成,能显著减少视角间不一致、得到更锐利的细节。网络在 Wonder3D 的多视图生成骨干 \(W_{mv}\)(冻结)之上,仿照 ControlNet 挂一个可训练副本 \(C_{mv}\) 和一个法线编码器,通过零初始化卷积把控制特征注入解码器的跳连接。

关键训练技巧:法线模糊。 训练数据取自 Objaverse 的 LVIS 子集(约 3.2 万个物体),每个物体用 Blenderproc 渲染 6 个视角的 RGB 与法线图。作者对输入的法线图施加核大小为 7 的高斯模糊,让模型只感知形状的粗结构而看不到具体细节,训练目标则是预测未模糊的清晰法线。这样模型学会”在遵循粗结构的前提下补出细节”,且推理时同样对输入法线做模糊。

阶段三:网格优化。 拿到多视图法线后,作者不去拟合 NeRF 或神经 SDF(慢且事后还要转网格),而是把细化直接当作网格优化问题,用可微光栅化器 nvdiffrast 从 \(M_{coarse}\) 出发做梯度下降。目标函数含三项:\(\mathcal{L} = \mathcal{L}_n + \mathcal{L}_{\nabla n} + \mathcal{L}_{sil}\)。其中 \(\mathcal{L}_n\) 是网格法线渲染与生成法线之间的 \(\ell_1\) 损失;\(\mathcal{L}_{\nabla n}\) 是二者图像梯度之间的 \(\ell_1\) 损失,作者实验发现这一项对捕捉高频细节至关重要;\(\mathcal{L}_{sil}\) 是网格轮廓渲染与用 Segment Anything 从 RGB 图预测的前景掩码之间的 \(\ell_1\) 损失。每次迭代后按连续重网格化(continuous remeshing)自适应重划分网格。整个优化跑 2000 次迭代,在单张 3080Ti 上约 20 秒完成。

实验结果

作者与三种支持输入形状引导的文本到 3D 方法(Latent-NeRF、Fantasia3D、Magic3D,均基于 SDS)对比,用 CLIP 相似度衡量结果与文字提示的一致性,并统计运行时间:

方法 CLIP 相似度 ↑ 运行时间(秒) ↓
Magic3D 0.2327 ± 0.0393 5597
Latent-NeRF 0.2367 ± 0.0415 3697
Fantasia3D 0.2556 ± 0.0335 2971
本文方法 0.2666 ± 0.0317 32

本文方法在 CLIP 相似度上最优,同时比对手快近两个数量级(至少 90 倍以上)。此外,一项覆盖 18 道题、41 名参与者的主观感知研究显示,在几何细节、视觉质量、与文字一致性三个维度上,本文结果均被大多数用户偏好——例如与 Magic3D 相比,视觉质量偏好率达到 100%,几何细节偏好率 96.35%。

亮点与局限

亮点在于把”文生图扩散模型隐含几何线索”这一观察,转化为一条纯前馈、无 SDS 的高效流水线:不对任何扩散网络反传梯度,最后一步只做可微光栅化,因此速度快出两个数量级;三个阶段输出都是可视化的中间结果,天然支持交互式预览与回退;引导强度可调(经验上 30%~75% 在可控性与细节丰富度之间取得较好平衡),并且能显式控制输出的姿态和粗结构。方法还能顺带给细化后的网格上纹理(借助 Wonder3D 的多视图 RGB 输出与 Direct2.5 的纹理代码)。

局限主要来自分辨率与视角数量:模型只生成 6 张 256×256 的法线图,这限制了可生成细节的精细程度;网格优化依赖现成图像分割模型的质量,分割出错或跨视角不一致时会产生瑕疵。

延伸思考

这项工作把”控制”重新放回文本到 3D 的中心——不追求从零生成整个物体,而是尊重艺术家已经搭好的粗胚,只补细节。这种”以粗结构为硬约束、以文字为软引导”的定位,比无约束生成更契合真实创作流程。方法用法线模糊这一简单手段解耦”结构感知”与”细节生成”,思路很值得借鉴:想让模型学会”补全”,就在输入端主动抹掉要它补的信息。作者提到的未来方向也颇具想象空间,例如图像引导的网格细化、在选定区域做局部细节生成、以及改姿态时保持身份一致——这些都指向更细粒度、更可控的交互式 3D 建模。