PAPER READING · 2404.17569v2 · SIGGRAPH 2024

MaPa

从文字到分区域程序化材料:分段生成、材质检索、可微优化与多视角补全

Shangzhan Zhang et al. · 浙江大学 / Ant Group / 深圳大学

01 · 论文身份、固定原件与补充证据

MaPa: Text-driven Photorealistic Material Painting for 3D Shapes,Shangzhan Zhang、Sida Peng、Tao Xu、Yuanbo Yang、Tianrun Chen、Nan Xue、Yujun Shen、Hujun Bao、Ruizhen Hu、Xiaowei Zhou;浙江大学、Ant Group、深圳大学;SIGGRAPH 2024 Conference Papers。本文依据用户现有的 10 页 v2 PDF,首页版本日期 2024-06-25,字节哈希已和原笔记文件匹配。

公开同版本 PDF 与用户保存的文件字节不同,因此本次以用户原 PDF维持页码与 PDF++ 锚点,公开 v2 HTML 仅作图表交叉核对。arXiv 后来有 v3,未将后续版本内容静默混进本篇。原笔记的 Xiaowei Zhou 通讯作者候选未在所读首页找到明确标记,保留 unverified。

正文反复引用补充材料。当前两个项目网址返回 404;但 arXiv v2 官方源包包含 06_supp.tex、材料数量表和相关图源。本页把这些内容明确标为官方 v2 源包中的补充文字,不伪称它们出现在用户 10 页 PDF 的某一页,也不把被注释掉的草稿段落当已发表实验设置。

固定 arXiv 记录 · v2 HTML · 官方 v2 源包

02 · 核心定位:文字→引导图像→可编辑材质图

MaPa 为一个已有 3D mesh 生成分区域的程序化材料。与只生成 RGB texture 的方法不同,它输出每个材质组的 procedural graph,通过 DiffMat 产生 albedo、normal、roughness 等纹理空间贴图,支持换灯光重新渲染,也能在 Substance Designer 中编辑。

最关键的边界:主流程没有从零自由生成任意节点拓扑。它先从一个小型材质图库检索图结构,再优化参数、UV 变换与照明。后续 GPT-4 编辑通过预定义 API 和已有图案/噪声模板进行修改;这些能力不能等同于通用的 LLM 节点图合成。

分区域表示

同材质区域共享一个图,降低优化维度并提升编辑便利性

2D 图像作桥梁

不需要大量文字—mesh—材质图配对训练集,但仍训练图像模块

检索+优化

小图库提供结构先验,参数拟合补足仅做分类检索的局限

原 Figure 1:可重新光照渲染的材料生成概览
原 Figure 1 · 可重新光照渲染的材料生成概览 · 原论文来源

03 · 动机:为什么需要分段与程序化表示?

一个物体的外观不仅是颜色:同样的 RGB 在不同光照下可能对应完全不同的反射属性。只把生成图片投影到 mesh 上,容易把光照烘进纹理,后续换灯光不自然。连续逐点的隐式材料虽然灵活,却不一定方便人类按区域修改或交换材料。

作者观察到新制造物体的许多区域内部材料相对一致,例如椅腿、坐垫、金属支撑。这让“先分段、再共享材料”成为有用的结构先验。程序化图的参数空间比任意逐像素材质更受约束,既减少不稳定拟合,也带来分辨率独立、可平铺与可编辑的好处。

但这个先验也会失败:复杂自然物体、区域内多材料混合、连续磨损或不明显的几何分界,都不一定适合强制区域一致。论文没有证明该表示覆盖一切材料与对象。

研究假设是,用分段条件生成与几何更一致的 2D 目标,再用显式图先验及可微渲染拟合,可以在没有直接图生成大数据集的情况下得到可用的 3D 材料。

04 · 端到端流程与变量

输入是 mesh 与文字提示;可选 IP-Adapter 图像提示。输出为材质组分配、各组图及参数、UV 变换和可用于渲染的材料贴图。照明估计主要服务于把引导图分解为材料,不等同于恢复精确真实照明。

  1. 将 mesh 过分割为三维区域:通常以连通组件分开;watertight mesh 可用 graph cut
  2. 选择能看到较多区域的初始视角,把三维分段投影为二维 mask
  3. 微调后的 segment-conditioned ControlNet 生成外观与分段对齐的 RGB 目标
  4. GPT-4v 分类材料,albedo 网络去除照明影响,按类别与颜色合并材质组
  5. 在同类图库中用 CLIP 检索初始 graph,小区域采用均匀材料
  6. DiffMat+UV 采样+微表面 BRDF 可微渲染,优化图参数、UV 与残差照明
  7. 换相邻视角,对未覆盖/此前太小的区域做条件 inpainting;复用已有组或新建材料,直到全物体覆盖
  8. 用户可直接在 Substance 编辑,或用 GPT-4 调用预定义材质编辑 API
原 Figure 2:四阶段完整流程
原 Figure 2 · 四阶段完整流程 · 原论文来源

05 · 分段条件图像生成:让目标与可表达区域对齐

\[\{\hat s_i\}_{i=1}^{M}=\mathcal P_v(\{s_i\}_{i=1}^{N})\]

\(s_i\) 为三维分段,\(\hat s_i\) 为视角 v 下可见的二维区域,\(\mathcal P_v\) 为投影。论文把条件去噪简写为:

\[z_{t-1}=\epsilon_{\theta}(z_t,t,\{\hat s_i\}_{i=1}^{M})\tag{1,原文简写}\]

这里不能把噪声预测器的输出机械当成真实 scheduler 完整更新式:常规扩散一步还包含调度系数等操作。它表达“由分段控制逆扩散”的模块关系,不是可直接执行的完整采样方程。符号上本文显式写 v 来说明投影依赖视角,属于解释补充。

初始视角在 360° 方位范围采样、仰角固定 25°、距离 2 单位,优先选二维可见分段最多的视角;并列时选物体投影面积最大的。二维区域按面积由大到小编号,背景为 0。

为什么不用普通 depth-to-image?同一几何区域内部可能被生成成多个颜色块,图优化就会把这种不一致硬拟合成纹理,产生伪影。分段条件让生成目标更贴合“每组共享材料”的表示能力。它是优化问题与目标数据之间的结构对齐,不只是让图像更漂亮。

官方源包补充的训练数据

从 Objaverse-LVIS 收集约 10K 模型,BLIP 生成文字。每个对象在随机视角渲染 16 张深度图,depth-to-image 生成 RGB,再用 SAM 得到对应分割 mask;渲染的物体 mask 用来将背景置 0。视角方位 0–360°、仰角 25–75°、距离 1.7–2.3。名义上约 160K 视图,但这不是已核验去重/过滤后的精确最终训练对数。

作者针对 object-centric、大背景为 0 时的失败微调 SAM-conditioned ControlNet。主文与补充源文字未完整给出 optimizer、LR、batch、训练轮数和采样器配置,不能默认以常见 SD 配置填空。

06 · 材质分组:类别+去光照颜色+连通分量

构造一个图:每个 mesh segment 是节点;两节点若被判为同类材料且 albedo 中位颜色足够相似,就连边。取图的 connected components 作为材质组。这里的“连通”是相似性图中的可达关系,不要求两个 mesh 部件在空间上接触。

\[(i,j)\in E\iff c_i=c_j\ \land\ \Delta_{\mathrm{CIE}}(\operatorname{med}(A_i^{\ast}),\operatorname{med}(A_j^{\ast}))\lt\lambda,\qquad\lambda=2\]

这个关系式是对正文算法的结构化表达。CIE 颜色差阈值 2 是经验选择,不能把它误读为 RGB 各通道误差 2。connected components 具有传递闭包:即使 A 与 C 的直接颜色差超过阈值,也可能通过 B 同组;这是表示的隐含行为,原文没有单独评估链式误并。

GPT-4v 的具体角色

它做区域材料分类,不生成主流程图结构。官方源包给出视觉提示:左图是原图并以红框标兴趣区域,右图为裁剪;文字让模型扮演 CG artist,关注裁剪、上下文、粗糙度和反射,区域过小时允许根据周围推断,输出 material class。类别列表包含 wood、metal、plastic、leather、fabric、glass、stone、ceramic、rubber。

一个值得记录的不一致:分类 prompt 有 glass,共 9 类;实际图库只有 8 类且不含 glass。不能凭空补出 glass graph 或声称透明材质已被整个主流程支持。需要复现时检查分类结果遇到未支持类如何处理,论文没有在所读文字里交代兜底规则。

Albedo 估计

以 Lambda Labs 的图像条件 Stable Diffusion 为基础,在 ABO material 数据上适配 RGB→albedo,输入 RGB 经 CLIP 编码作为条件。使用 albedo 中位颜色,而非原始 RGB,可减少阴影把同材质区域错误拆开。它本身仍有自然图像/合成数据 domain gap,后面的失败例说明不能把其输出视为真值。

07 · 图库检索与小区域策略

图库缩略图在 8 个环境光照下渲染,以增强 CLIP 检索对光照差异的鲁棒性。对每个材质组裁剪目标区域,在同材料类别的 graph 候选内比较 CLIP cosine similarity,取最高分。裁剪外观、材质类别和预先定义的图库共同限定候选空间。

材质类别Graph 数量
Wood11
Metal18
Plastic12
Leather10
Fabric22
Stone5
Ceramic3
Rubber3

以上为官方 v2 源包 tab/material.tex 的完整数量表,总计 84 个 graph。不是 84 种唯一“物理材料真值”,也不是大规模程序生成语料。优化可以得到不同参数变体,却无法凭空补出模板中没有的拓扑与算子。

投影面积小于 1000 像素的组采用 homogeneous material,因为微小区域难以辨认空间变化。该阈值依赖渲染分辨率:若改变输入分辨率而保持 1000 不变,实际覆盖的相对面积会变化;论文没有给尺度不变阈值。

08 · 从材质图到像素:可微优化与光照残差

\[(A_{\mathrm{uv}},N_{\mathrm{uv}},R_{\mathrm{uv}})=\operatorname{DiffMat}(G_{\theta})\]
\[A,R=\mathcal S(A_{\mathrm{uv}},R_{\mathrm{uv}};\tau),\qquad N=\operatorname{Rot}(\mathcal S(N_{\mathrm{uv}};\tau))\]
\[I_{\mathrm{rend}}=\mathcal R(A,N,R,L)\tag{2}\]

G 是检索到的 procedural graph,\(\theta\) 为其可优化参数;DiffMat v2 生成纹理空间贴图;\(\mathcal S\) 根据 Blender 的 UV 展开和变换 \(\tau\) 采样到可见表面;法线需从纹理局部坐标转到局部 shading frame;\(\mathcal R\) 用物理微表面 BRDF 和逐像素照明计算颜色。R 在原文同时接近 roughness/renderer 记号,本页用花体区分渲染器。

渲染采用 2D spatially-varying incoming lighting,避免为优化做完整多次路径追踪。InvRenderNet 给初始 \(L_{\mathrm{init}}\),2D hash grid 及浅层 MLP 给残差 \(\widetilde L\),初始化为 0,并用 ReLU 保证总照明非负:

\[L=\operatorname{ReLU}(L_{\mathrm{init}}+\widetilde L_{\phi})\]

这是对正文残差机制的显式整理。二维随位置变化的 incoming light 不是一个完整的三维真实光源布局;它能吸收一些目标图像中的照明误差,也可能与材料拟合发生歧义。残差能力越大并不自动意味着材质更物理正确。

补充源文字中的损失

\[\mathcal L_{\mathrm{albedo}}=\left\|\mu(A\odot M)-\mu(A^{\ast}\odot M)\right\|\]

\(M\) 是材质组 mask,\(A^{\ast}\) 是网络预测 albedo,\(\mu\) 取平均。它约束颜色均值,不是逐像素强制图案相同;原文没有在这个公式里明确除以 mask 面积还是整图平均的实现细节,因此复现需检查归一化,不可自行声称已确定。

\[\mathcal L_{\mathrm{render}}=\mathcal L_{L1}^{\mathrm{masked}}+\mathcal L_{\mathrm{style}}^{\mathrm{masked}},\qquad\mathcal L=\mathcal L_{\mathrm{albedo}}+\mathcal L_{\mathrm{render}}\]

style loss 使用 VGG 特征的 Gram 矩阵。L1 约束像素接近,Gram 约束纹理统计,albedo 均值限制把阴影误烘进材料。补充公式没有列额外加权系数,本页不虚构权重、VGG 层或归一化细节。

UV 初始化在尺度 0.5–8.0、方向 -45°、0°、45°、90° 下比较 Gram loss,选择较优组合,随后 UV 变换也参与优化。原文只给尺度范围,未列每个离散尺度采样点;不能假定等距、二倍序列或给出虚假的总搜索次数。

主文说三阶段优化,总计 300 iteration,使用 Adam,A6000 通常整体少于 10 分钟。未完整公布各阶段分配、learning rate、beta、收敛条件。源包有被注释的草稿阶段描述,本页不把那些注释提升为最终实验协议。

09 · 多视角补全与材料共享

单个初始视角看不到背面。方法从候选视角中选相邻视角,检查哪些 segment 尚未赋材料,或此前投影面积小于当前面积的四分之一。满足任一条件就需要重新处理:

\[\operatorname{needs}(s)=\operatorname{unassigned}(s)\ \lor\ \bigl(\operatorname{area}_{\mathrm{prev}}(s)\lt\tfrac14\operatorname{area}_{\mathrm{cur}}(s)\bigr)\]

该式是正文条件的重写。系统用 Blender Cycles 渲染先前视角和当前视角的部分着色结果,将它们拼接给 SAM-conditioned inpainting;只有待赋材质区域允许重绘,其他区域的 inpainting mask 为 0。然后重复分类、分组、检索及优化。

如果新区域和已有区域归到同一个材质组,则直接复制已有 graph,而不是从零再拟合。循环直到所有区域分配完成。该共享机制能提升跨视角一致性,但依赖分组和初始视角结果;错误分类或颜色分组可能传播到后续视角。

原 Figure 9:watertight mesh 分割与材料生成
原 Figure 9 · watertight mesh 分割与材料生成 · 原论文来源

同一提示的多样性与图像条件

改变2D扩散随机种子可产生不同的外观目标,之后拟合得到不同材料参数;这类多样性仍受已检索图的表达能力约束。IP-Adapter可将参考图像作为条件,先合成目标mesh的相似外观,再进入相同材质恢复流程。它并非直接把参考图的节点图迁移到新对象,因为输入示例只有图像。

原 Figure 5:同一提示的多样性
原 Figure 5 · 同一提示的多样性 · 原论文来源
原 Figure 6:图像提示的外观迁移
原 Figure 6 · 图像提示的外观迁移 · 原论文来源

10 · 实验协议与完整 Table 1

测试使用 TMT 的 300 把椅子与 ABO 随机 30 个对象。椅子每个均匀采 10 个方位视角,仰角 45°、距离 1.5 单位。提示由 BLIP 从原物体渲染中提取,各 baseline 共享提示;输入分割按连通组件得到。实验视角参数与算法初始化视角的 25°/2 单位不同,不能混用。

对照包括 TEXTure、Text2tex、Fantasia3D。MaPa 和 Fantasia3D 用环境光渲染;TEXTure 和 Text2tex 取 Blender diffuse color pass,因为两者主要是颜色纹理表示。因此实验反映不同表示系统的最终效果,并非完全同 BRDF 表达能力的参数受控比较。

原 Table 1

Dataset Methods FID↓\downarrow KID↓\downarrow Overall quality↑\uparrow Fidelity↑\uparrow
Chair TEXTure 94.6 0.044 2.43 2.41
Text2tex 102.1 0.048 2.35 2.51
Fantasia3D 113.7 0.055 1.98 2.08
Ours 88.3 0.037 4.33 3.35
ABO TEXTure 118.0 0.027 2.65 2.41
Text2tex 109.8 0.020 3.10 2.94
Fantasia3D 138.1 0.034 1.51 1.80
Ours 87.3 0.014 4.10 3.22

原表来源

Chair FID:88.3 对最强对照 TEXTure 94.6,降低 6.3(约 6.7%);ABO FID:87.3 对 Text2tex 109.8,降低 22.5(约 20.5%)。KID 分别 0.037 对 0.044、0.014 对 0.020。FID/KID 是图像分布指标,不能单独证明每个 mesh 的材料参数正确,尤其 ABO 只有 30 个对象,分布估计与渲染视角数量应谨慎解释。

用户研究有 40 人(16 位专业艺术家、24 位普通参与者),每人 60 条评价,按 1–5 分评 overall quality 与 text fidelity。Chair 整体质量 4.33,fidelity 3.35;ABO 分别 4.10、3.22。这里是平均评分,不是胜率;未给出置信区间和评审者间一致性,不把小差异说成统计显著。

原 Figure 4:TEXTure、Text2tex、Fantasia3D 对照
原 Figure 4 · TEXTure、Text2tex、Fantasia3D 对照 · 原论文来源

速度:正文称整体通常少于10分钟/A6000,对照 Text2tex 15分钟、Fantasia3D 25分钟;分组消融报告优化平均7分钟。两处时间统计的范围不同,7分钟不自动等于包含所有分类/API/图像生成前处理的端到端时间。论文未给 token/API 成本或完整多seed耗时分布。

11 · 消融与失败:哪一环真正贡献什么?

移除项观察可支持结论与边界
Albedo 网络阴影影响颜色分组;渲染颜色偏离目标去光照近似有用,不证明预测 albedo 为物理真值
Material grouping视觉相近,优化平均7→33分钟分组主要提高效率与共享;不是每张图必然更好
Graph 参数优化仅检索的外观与目标不够接近固定拓扑参数可产生变体,但不能创造缺失的图算子
Residual lighting初始光照域差导致纹理拟合偏差残差有助拟合,不等同于真实照明已恢复
Segment ControlNet 改为 depth-to-image同一分段出现多个颜色块,引发拟合伪影来自补充源文字的定性对照;没有对应完整定量表

7→33 分钟对应约 4.71 倍时间比;启用分组相对不分组减少约 78.8% 的该项优化时间。这是给定实验的耗时差,不能承诺所有对象同样加速。

原 Figure 10:albedo 与分组消融
原 Figure 10 · albedo 与分组消融 · 原论文来源
原 Figure 11:参数优化与残差光照消融
原 Figure 11 · 参数优化与残差光照消融 · 原论文来源
原 Figure 8:异常光照导致 albedo 失败
原 Figure 8 · 异常光照导致 albedo 失败 · 原论文来源

Figure 8 的银色金属在异常黄色照明下使 albedo 网络误判,材料随之偏离。自然图像扩散与合成 ABO albedo 网络之间的 domain gap 是整个链条的重要脆弱点。图参数空间虽限制过拟合,也可能使某个目标根本无法表达。

12 · 下游 GPT-4 编辑:预定义工具,不是任意图合成

用户输入“添加奢华感图案”等指令;系统把 API 描述、若干指令—程序例子、材料类型交给 GPT-4,模型检索合适图案/噪声模板并输出 Python 命令,用户在本地执行。图案描述包含高层语义/感受及低层几何排列。

官方补充源列出的功能包括:织物添加/更换纹理、陶瓷添加/更换纹理、皮革 patinated 效果、木材 painted 或 patinated 效果、金属 patinated 效果,以及 dust、dirt、scratches、water stains。API 基于 filter 节点,通过新增/替换输入修改图;对已有图案记录需要替换的 noise 节点。有些 filter 需要颜色,可用默认值、用户输入或 GPT 建议。

PMG 研究中尤其需要保留的限制:正文结论明确承认多数材料图缺少可优化空间变化节点;Figure 7 的复杂图案主要来自下游检索的预定义 patterns。不可把这些例子当作主优化流程从零“发现”了复杂程序图,更不能声称完全摆脱外部图案资产。

原 Figure 3:预定义 API 的下游编辑
原 Figure 3 · 预定义 API 的下游编辑 · 原论文来源
原 Figure 7:检索图案支持的编辑结果
原 Figure 7 · 检索图案支持的编辑结果 · 原论文来源

没有看到完整可执行 API 实现、全部 few-shot 内容、错误处理/重试/沙箱执行协议,因此本次只核实论文公布的工具机制,不补造 agent 的 reflection、tree search 或 evaluator 循环。

13 · Reviewer 与 PMG 可检验扩展

优势:把自然语言、图像先验和行业可编辑材质图串起来;分组在可控表示内共享参数,显著减少优化开销;渲染条件可变,区别于把单次光照烘进 RGB;明确披露小图库和复杂图案的来源限制。

不足:图库只有8类84图,表达上界受检索模板约束;区域一致假设对复杂对象不稳;图像与 albedo/光照网络跨域误差可串联放大;残差光照与材料存在不可辨识性;GPT-4v 分类依赖闭源模型且 prompt/类别库不完全一致;部分训练超参和全部工具实现未可核验。

Research Extension 1:用“表达能力不足”的 evaluator 决定何时仅调参数、何时换 graph、何时扩展拓扑。对照固定模板优化、候选模板搜索和拓扑编辑,控制 render 调用预算,评价目标匹配、图复杂度与合法率。

Research Extension 2:不把生成图无条件当真值;由多视角/光照一致性评估器检查“银色金属+黄色光”等混杂。让主 agent 区分应该改材料、改目标图还是改光照拟合,避免用错误目标逼迫材质图产生伪纹理。

Research Extension 3:将分类置信度、区域尺度与颜色证据显式作为 context。对小区域不只靠 GPT 猜测,而比较共享邻近材质、请求更好视角和保持未知三种策略。需要按对象来源隔离测试,不能只优化单个展示案例。

这些是后续研究建议,不是 MaPa 原文已经实现的模块。其已验证主流程是“分段目标图+分组检索+参数/UV/光照优化+多视角补全”。

14 · 归档、可复现边界与阅读资料

已读用户固定 PDF 全文、对应 v2 HTML 及官方源包中未注释的补充正文和材料数量表。没有运行作者算法、重训 ControlNet 或重算 FID/KID;当前项目页失效,未获得可审计的完整实现仓库。材料图库公开可用性、全部 graph 节点支持、训练权重和 API 密钥调用流程仍需后续复现时核验。

新增 Markdown 将原笔记完整保留为前缀,保留图像/PDF锚点与用户原有理解;对 venue 和方法边界添加证据说明,不覆盖原属性。当前交付为云端生成文件,未写入用户 Obsidian、未更新 People 或共享索引。

原图表归 Zhang et al., 2024。公式的符号整理、参数解释、审稿评论和研究建议为本次解读。联网原图与本地完整正文/表格共同组成单文件精读页;浏览器验收按用户最新指令留到下载后进行。