Paper Deep Reading · ACM Transactions on Graphics 43(5)

ControlMat:
A Controlled Generative Approach to Material Capture

把单张自然光或闪光照片视为受控生成条件,从未知光照中采样一组合理的九通道 SVBRDF;再用 noise rolling、多尺度扩散、边界补绘和 patch 解码,把 512 像素训练模型扩展到可平铺的 4K 材质。

Giuseppe Vecchio et al.TOG 2024 · Article 164DOI 10.1145/3688830arXiv:2309.01700v317 页Adobe Research
01 · Research motivation

材质捕获具有固有多解性

照片像素同时混合反射率、表面几何、照明、相机响应与遮挡。单次前向回归容易把高光写进 base color,把阴影误认为 height。ControlMat 采用生成分布处理这种不确定性:同一照片可以对应多组物理上合理的材质属性。

现有方法的缺口

闪光方案提供镜面信息,却容易过曝并限制采集尺度;自然光回归方案更适合户外漫反射材料,通常弱化空间变化 roughness 与 metalness;GAN 隐空间优化需要逐样本搜索;已有扩散材质方法缺少高分辨率与严格平铺能力。

核心假设

先让 MatGen 学习完整材质分布,再用全局 CLIP 条件维持整体语义、用 ControlNet 条件保留局部布局。采样过程承担歧义,推理阶段的周期平移与尺度递进承担分辨率和平铺约束。

9
输出通道:3+2+1+1+1+1
4K
展示的最高生成分辨率
10M
合成渲染—材质训练对约数
原论文 Figure 1,ControlMat 从输入照片估计材质并应用于三维网格
Figure 1(原论文) 输入照片经 ControlMat 生成 base color、normal、height、roughness、metalness 与 opacity,材质可重新照明并映射到不同网格。图中展示视觉可行性,没有给出像素级唯一真值保证。
02 · Problem formulation

输入、输出与材质通道

输入

主要任务输入为 RGB 材质照片与二值 mask,拼接成 \(c_i\in\mathbb{R}^{H\times W\times4}\)。完整照片还经 CLIP image head 形成全局条件。纯生成模式可以使用图像提示或文本提示;文本嵌入先经过 DALL·E 2 风格 diffusion prior 转成图像 CLIP 嵌入。

输出

输出 \(\mathbf M\in\mathbb{R}^{H\times W\times9}\):base color \(b\) 三通道、normal \(n\) 两通道、height \(h\) 一通道、roughness \(r\) 一通道、metalness \(m\) 一通道、opacity \(o\) 一通道。

表示边界。 Substance graph 只用于生成训练数据。ControlMat 不生成 graph,不搜索 graph topology,也不优化 graph parameters;模型直接输出 PBR texture maps。
通道维数物理/艺术含义论文评测
Base color \(b\)3漫反射颜色;目标是剥离阴影与高光RMSE、SSIM、LPIPS
Normal \(n\)2局部方向,控制细节受光余弦距离
Height \(h\)1介观起伏与位移归一化后 RMSE
Roughness \(r\)1GGX 镜面瓣宽度;低值更光亮RMSE
Metalness \(m\)1区域是否表现为裸金属RMSE
Opacity \(o\)1透明/裁切区域正文没有定量评测
\[ z=\mathcal E(\mathbf M),\qquad \mathbf M\in\mathbb R^{H\times W\times9},\qquad z\in\mathbb R^{\frac{H}{8}\times\frac{W}{8}\times14}. \]
空间维度缩小八倍,潜变量通道 \(c=14\)。论文称 14 是经验得到的压缩与质量折衷,没有公开通道数消融。
渲染模型。 论文采用基于 GGX normal distribution 的 Cook–Torrance microfacet BRDF,按 Deschaintre et al. (2018) 计算漫反射与镜面分量。正文把精确 BRDF 写法留给补充材料;公开 arXiv v3 源文件与本地 17 页 PDF 没有包含补充文档,本页不补写未公开常数和渲染约定。
03 · Controlled generation

全局条件与局部条件分工

原论文 Figure 2,MatGen 与 ControlNet 总体结构
Figure 2(原论文) VAE 编码九通道材质,U-Net 在潜空间去噪;CLIP 通过 cross-attention 提供全局提示,ControlNet 从照片与 mask 提供空间条件;最终用 patch 解码回到材质图。
1 · Material maps训练真值 \(\mathbf M\) 含九个通道。
2 · VAE\(\mathcal E\) 压缩为 \(z_0\),\(\mathcal D\) 重建。
3 · Forward noise在时刻 \(t\) 形成 \(z_t\)。
4 · Global controlCLIP embedding 经 cross-attention 注入。
5 · Local controlControlNet 编码 RGB+mask。
6 · DecodeDDIM 去噪后输出高分辨率 SVBRDF。

VAE 训练目标

\[ \mathcal L_{\mathrm{VAE}} =\lambda_{2}\lVert \mathbf M-\mathcal D(\mathcal E(\mathbf M))\rVert_2^2 +\lambda_{\mathrm{LPIPS}}\,\mathrm{LPIPS}(\mathbf M,\widehat{\mathbf M}) +\lambda_{\mathrm{adv}}\mathcal L_{\mathrm{patchGAN}} +\lambda_{\mathrm{KL}}D_{\mathrm{KL}}\!\left(q(z\mid\mathbf M)\,\|\,\mathcal N(0,I)\right). \]
该式按正文列出的四项整理。论文没有报告各 \(\lambda\) 数值;patch adversarial objective 按各材质图分别计算,第 50k 次迭代开始启用。

全局 cross-attention 与 LDM

\[ \mathrm{Attention}(Q,K,V)=\mathrm{softmax}\!\left(\frac{QK^{\mathsf T}}{\sqrt d}\right)V, \] \[ Q=W_Q^i\varphi_i(z_t),\quad K=W_K^i\tau_{\theta}(y),\quad V=W_V^i\tau_{\theta}(y), \] \[ \mathcal L_{\mathrm{LDM}}= \mathbb E_{\mathcal E(\mathbf M),y,\epsilon\sim\mathcal N(0,I),t} \left[\left\lVert\epsilon-\epsilon_{\theta}\!\left(z_t,t,\tau(y)\right)\right\rVert_2^2\right]. \]
\(\varphi_i(z_t)\) 是第 \(i\) 个 U-Net 卷积块展平后的特征;\(\tau(y)\) 为 CLIP 条件;三个 \(W\) 是可学习投影。LDM 学习预测潜变量中的噪声。

空间条件

\[ c_i\in\mathbb R^{H\times W\times4},\qquad c_f=\mathcal E_c(c_i)\in\mathbb R^{h\times w\times c}. \]
四层卷积编码器 \(\mathcal E_c\) 把 RGB+mask 降到潜空间尺寸。ControlNet 使用训练完成的 LDM 权重初始化,训练时冻结 MatGen,只更新 ControlNet。
双条件的作用。 ControlNet 负责局部位置,CLIP 负责整张图的材质语义。边界被 mask 后,局部条件缺失,全局嵌入仍可指导补绘区域保持整体一致。
04 · Tileability & scale

分辨率能力来自推理算法

Noise rolling

每一步去噪之前,把完整潜噪声沿 \(x,y\) 周期平移;把平移后的张量切成不重叠 patch 并逐块更新;重组后再反向平移。边界位置持续变化,模型无法把固定拼接缝当成稳定结构。

原论文 Figure 4,noise rolling 的周期平移
Figure 4(原论文) 周期平移等价于在 2×2 重复图上移动裁剪窗口,随后用相反位移恢复坐标。
输入:步数 T,最大平移 max_roll,潜空间 patch 大小 p
z ← sample_noise()
for t = 0 … T-1:
    r_x, r_y ← random(0, max_roll)
    z ← roll(z, (r_x, r_y))
    patches ← patch_noise(z, p)
    patches ← sample(patches, t)
    z ← unpatch_noise(patches)
    z ← roll(z, (-r_x, -r_y))
return z
伪代码与评测配置。 Algorithm 1 把 \(T\) 写成 100、潜空间 patch \(p=32\);实验推理说明使用 50 个 DDIM steps。两个数字属于不同上下文,伪代码默认值不等于最终评测配置。

边界补绘

原论文 Figure 5,边界补绘与 noise rolling 共同实现平铺
Figure 5(原论文) 输入边缘宽度为图像尺寸的 (1/16) 时被 mask;ControlNet 训练期间每步随机遮挡 0%–40% 区域。补绘提供可修改区域,rolling 提供跨边一致性。

多尺度扩散

\[ z^{(s+1)}_{t_s}=\sqrt{\bar\alpha_{t_s}}\,\mathrm{Up}\!\left(z^{(s)}_0\right) +\sqrt{1-\bar\alpha_{t_s}}\,\epsilon_s, \qquad \epsilon_s\sim\mathcal N(0,I). \]
该式表达正文的“低分辨率完整去噪、上采样并重新加噪、更高分辨率去噪”。论文未给出重新加噪时刻 \(t_s\) 或噪声日程细节,因此它是流程的数学化表达。4K 生成依次完成 512、1024、2048、4096 四个尺度。

Patch 解码

原论文 Figure 6,低分辨率 mean matching 与重叠 patch 解码
Figure 6(原论文) 先一次性解码低分辨率材质;高分辨率 patch 的均值匹配到对应低分辨率区域;再以截断 Gaussian 权重混合重叠 patch,边缘权重为零。论文使用 512 像素解码 patch。
\[ \widehat{\mathbf M}(x)= \frac{\sum_{k\in\mathcal P(x)}w_k(x)\,\widetilde{\mathbf M}_k(x)} {\sum_{k\in\mathcal P(x)}w_k(x)}, \qquad w_k(x)\rightarrow0\ \mathrm{at\ patch\ borders}. \]
\(\widetilde{\mathbf M}_k\) 是经过低分辨率均值匹配的第 \(k\) 个解码 patch;\(\mathcal P(x)\) 是覆盖像素 \(x\) 的 patch 集合。正文没有公开 Gaussian 核宽与 overlap 数值。
05 · Reproduction details

训练资产、优化配置与推理成本

训练数据

  • 8,615 个 Adobe Substance 3D 参数化材质 graph。
  • 约 126,000 个参数变化;每份 2048×2048 SVBRDF。
  • 每份变化渲染 14 个 IBL/ray-tracing 视图,室内外 HDR 按类别选择。
  • 旋转、缩放、裁剪到 512×512,得到约 800k 材质 crop 与约 10M 渲染—材质对。
  • VAE 使用约 800k;LDM 使用约 10M;ControlNet 使用约 2.5M。

独立测试数据

  • 66 个未使用 Substance 3D 库资产的材质:AmbientCG 27、PolyHaven 26、Textures.com 13。
  • 每个材质使用四个训练阶段未出现的 environment illumination 渲染,共 264 个输入。
  • 真实照片来自 smartphone、DSLR 与 Web;论文没有报告数量与正式 split。
组件优化器学习率每 GPU batch迭代硬件时间说明
KL-VAEAdam\(4.5\times10^{-6}\)9390k8×A100 40GB240h50k 后启用 adversarial loss
LDMAdam\(2\times10^{-7}\)44300k8×A100 40GB180hU-Net base channels 320
ControlNetAdam\(2\times10^{-7}\)44350k8×A100 40GB240h冻结 LDM;10% condition dropout
缺失设置。 正文没有公开 Adam 的 \(\beta_1,\beta_2\)、weight decay、scheduler、warmup、gradient accumulation、precision、classifier-free guidance scale、DDIM \(\eta\)、noise schedule、mask 形状分布、patch overlap、max_roll 与全部 loss 权重。没有完整配置时无法逐数值复现。
输出分辨率推理时间显存备注
512×5123 秒未单列50-step DDIM,fixed seed
1024×102418 秒12 GB多尺度
2048×204843 秒18 GB最多并行 8 个 patch
4096×4096350 秒20 GB完成全部较低尺度

速度在单张 A10G 24GB 上测量。减少并行 patch batch 可以继续节省显存,同时增加推理时间。

06 · Experiments

定量结果支持材质估计优势

SurfaceNet 在本文合成训练集上重新训练;MaterIA 使用 Substance Sampler 中已发布模型,它只在同源 procedural assets 的 outdoor 子集上训练,也不输出 metalness。基线训练范围存在差异。

Table 1 · RMSE 与 normal cosine distance(越低越好)

Image typeSurfaceNetMaterIAControlMat
Renderings0.114 ± 0.0050.123 ± 0.0060.097 ± 0.004
Base color0.108 ± 0.0080.103 ± 0.0080.067 ± 0.005
Normal(Cos dist)0.308 ± 0.0260.318 ± 0.0230.280 ± 0.022
Height0.258 ± 0.0140.251 ± 0.0140.216 ± 0.012
Roughness0.378 ± 0.0140.368 ± 0.0280.304 ± 0.013
Metallic0.108 ± 0.028未输出0.076 ± 0.023

Rendering RMSE 对四种环境光取平均;± 为跨光照 RMSE 的 95% confidence interval。高度图先归一化到 \([0,1]\)。论文没有给出逐材质方差、统计检验或 effect size。

Table 2 · 感知指标

Image typeMetricSurfaceNetMaterIAControlMat
RenderingsSSIM ↑0.6770.7190.729
LPIPS ↓0.2390.2110.184
Base ColorSSIM ↑0.6250.6500.677
LPIPS ↓0.2740.2560.239

Table 2 依据 arXiv TeX 重建,避免 PDF 双栏文字抽取造成 Renderings 与 Base Color 行错位。

Figure 7 · 生成模型比较

MatGen 与 MatFuse 用类别名作为全局条件;TileGen 使用类别专门模型。80 个样本上的 CLIP-score 为 MatGen 26.15、MatFuse 23.19。该指标衡量文本类别匹配,无法单独证明 SVBRDF 物理正确性;MatFuse 对比版本来自作者并限制为 256×256、不可平铺。

Figures 12–14 · 推理设计消融

Naïve patch 产生明显断层;overlap 缓解断层,增加 patch 数量并残留低频差异;rolling 使用与 naïve 相同 patch 数量,同时改善接缝与整体平铺。论文没有提供 seam error 数值。

2K 一次性解码峰值显存 20GB,patch 解码为 14GB;4K 一次性解码出现 OOM,patch 解码仍为 14GB,每个解码 patch 约 150ms。论文没有报告图像质量数值消融。

07 · Paper vs. implementation

公开材料只能核查算法说明

可以核查

  • arXiv v3 提供完整正文 TeX、原始图表和数值表。
  • 论文声明实现基于 lllyasviel/ControlNet。
  • 复制权重初始化、冻结 LDM、10% condition dropout 与四通道条件都在正文明确给出。
  • DOI、卷期、作者顺序与 17 页页数可由正式版本核实。

无法核查

  • 作者公开 GitHub 没有 ControlMat 代码仓库。
  • 项目页 gvecchio.com/controlmat/ 当前返回 404。
  • 模型权重、数据生成器、完整配置和 supplemental 没有公开可复查副本。
  • 内部 diffusion prior 的训练集规模、架构细节与授权边界没有公开。
复现结论。 可以复现架构意图与推理算法原型,无法执行论文等价训练,也无法检查 max_roll、重新加噪强度、Gaussian blend 参数、loss 权重与数据过滤规则。这些缺口会影响平铺质量、通道解耦与定量结果。
08 · Evidence & review

结论强度取决于证据类型

Paper verified在 66 个独立材质、四种新环境光的合成测试上,ControlMat 在报告的全部 map 与 rerendering 指标上优于 SurfaceNet 和 MaterIA;patch 解码把 4K 解码从 OOM 降到可运行;原表数值完整列于本页。
Author claim作者把窄 confidence interval 解释为对光照变化更加稳健,并称 noise rolling 能自然推动生成分布走向平铺。消融图支持视觉现象,缺少 seam、周期误差和结构保持的量化指标。
Our interpretationControlMat 的主要贡献位于采样与解码过程:基础 VAE、LDM、CLIP、ControlNet 都来自已有构件,论文把它们组织为九通道材质生成系统,并把周期一致性与多尺度低频保真编码到推理程序中。
Research extension可以把生成后验显式化为多候选分布,使用可微渲染、多光照一致性和周期边界误差进行 test-time reranking;结构化砖墙可以增加 lattice-aware border constraints;metalness 误判可以用 illumination latent 与 material latent 分离训练。

Strengths

表示完整

一次生成九个相互关联的通道,覆盖 diffuse、specular、mesostructure 与 opacity,保留 normal 与 height 的艺术语义差异。

系统连贯

全局条件处理语义,局部条件处理布局,rolling 处理周期边界,多尺度处理低频,patch 解码处理显存。

实验清晰

提供分通道数值、rerendering、多种感知指标、真实照片、生成对比和三组关键消融。

Weaknesses

监督数据与资源无法获得

核心 10M 合成对来自 Adobe Substance 3D Assets 与内部生成流程。公开读者无法重建同一训练分布,完整训练包含多个 8×A100 长周期阶段。

真实场景缺少数值评测

真实照片只有定性比较;样本数量、筛选方法与拍摄条件没有报告。自然光输入没有物理真值,多解性允许合理偏差,仍需多视图或实物测量验证。

基线范围有限

SurfaceNet 获得全量重训练,MaterIA 使用户外子集模型且不预测 metalness。MaterialGAN 等优化型方法在讨论中出现,没有进入主定量表。

关键消融只有图片

rolling、multi-scale、mean matching 缺少周期误差、normal consistency、frequency preservation 与感知质量数值,难以量化各组件收益。

Figure 15 · 已确认限制

可以实施的研究延伸

09 · Sources

一手资料与核查范围

  1. Vecchio, G. et al. “ControlMat: A Controlled Generative Approach to Material Capture.” ACM Transactions on Graphics 43(5), Article 164, 2024. DOI: 10.1145/3688830.
  2. arXiv:2309.01700v3:公开正文、TeX、图表源文件与版本身份。
  3. lllyasviel/ControlNet:论文明确声明使用的官方 ControlNet 基础实现。
  4. Adobe Research 作者页面:出版年份、期刊与作者关联。
  5. 本地固定 PDF:Reading/Papers/2309.01700v3.pdf,17 页,SHA-256 88267dfbb81ae9dc153d2fd3582504c79d157781905a0f7d02bd26672c895a20。
来源状态。 论文项目页在 2026-09-28 核查时返回 404;公开 arXiv 包含正文图表,没有包含论文所称 supplemental PDF。BRDF 细节、更多结果与真实输入来源保持未核实状态。