Journal

Predicting Fabric Appearance Through Thread Scattering and Inversion

Mengqi (Mandy) Xia, Zhaoyang Zhang, Sumit Chaturvedi, Yutong Yi, Rundong Wu, Holly E. Rushmeier, Julie Dorsey

Yale University

Predicting Fabric Appearance Through Thread Scattering and Inversion

一句话总结

从真实物理线(thread/yarn)出发,用”多纤维散射模拟 → 紧凑可微线散射模型 → 低成本多视角拍摄反演 → 织造几何仿真 → 两尺度渲染”的端到端流水线,预测出这些线织成布之后的外观,服务于时尚设计的”所见即可造”。

研究背景

时尚设计有一个长期未被满足的需求:设计师想用打算实际使用的那批线预览布料成品的外观,确保脑海中的设计能够被物理制造出来。而今天的布料渲染要么依赖手工调参,要么依赖对已经织好的成品布做采集,都无法从”线”出发做前向预测。

现有织物外观建模按几何表示大致分三类,各有短板,都不适合”数字化物理线”这个目标:

  • 表面模型(surface-based):把布当作 2D 薄片用 BRDF/微片(microflake)表示,渲染快但缺乏纱线级细节,无法提供纱线级控制。
  • 曲线散射模型(curve-based):把纤维/股/纱表示为曲线,细节最真实,最贴合本文目标。但已有模型不合用——纤维级模型需要单根线内部的精细几何,真值难获取且拟合复杂;Zhu et al. 2023b 的聚合纱线模型因含离散的纤维根数参数而天然不可微;Montazeri et al. 2020 的模型模式繁多、参数复杂,不利于反演。
  • 微观外观模型(体积模型、纤维网格模型):versatile 但同样不适合从物理线预测外观。

最接近本文目标的前作是 Sadeghi et al. 2013:它用测角光度计测量单根线的 4D 散射分布。但其采集装置繁琐、对丝这类细线极难对焦,还需手工拟合,且最终渲染是表面模型,丢失纱线级细节。

本文的核心贡献:

  • 一个易复现的端到端流水线,能从物理线高效、准确地预测布料外观;
  • 一个从多个反射/透射视角采集的多样化线数据集(28 种线、17 个视角);
  • 一个紧凑且可微的线散射模型,基于对线内多纤维散射的蒙特卡洛模拟。

方法

整体流水线分四步:采集线 → 线 BCSDF 建模与反演 → 织造几何仿真 → 两尺度渲染。

flowchart LR
    A[物理线] --> B[多视角采集<br/>12 反射 + 5 透射]
    B --> C[可微渲染反演<br/>Mitsuba 3]
    D[多纤维散射<br/>蒙特卡洛模拟] --> E[紧凑线 BCSDF 模型<br/>3 lobe]
    E --> C
    C --> F[数字线参数]
    F --> H[两尺度渲染]
    G[织造图案] --> I[物理仿真<br/>可平铺纱线 patch]
    I --> H
    H --> J[布料外观预测]

从单纤维散射到线散射模型

单纤维散射用 BCSDF 描述,出射辐亮度是入射辐亮度乘以 BCSDF 在球坐标下的积分:

\[L_r(\omega_r) = \int L_i(\omega_i)\, S(\omega_i,\omega_r)\, \cos\theta_i\, \mathrm{d}\omega_i\]

多数模型把 BCSDF 写成若干反射/透射模式之和,每个模式分解为纵向函数 \(M_p\)、方位函数 \(N_p\) 与衰减 \(A_p\):

\[S(\theta_i,\theta_r,\phi_i,\phi_r) = \sum_{p=0}^{\infty} M_p(\theta_i,\theta_r)\, N_p(\theta_i,\phi_i,\phi_r)\, A_p(\theta_i,\phi_i)\]

其中 \(p=0\) 是反射模式 R,\(p=1\) 是透射-透射 TT,\(p=2\) 是透射-反射-透射 TRT。纵向函数沿用 d’Eon et al. 2011:

\[M_p(\theta_i,\theta_r) = \frac{1}{2v\sinh(1/v)}\, e^{-\frac{\sin\theta_i \sin\theta_r}{v}}\, I_0\!\left(\frac{\cos\theta_i \cos\theta_r}{v}\right)\]

关键观察:单根纤维无法代表一根线,因为线内有大量纤维之间的多次散射。作者在横截面平面里做模拟——在代表线的圆边界内随机放入代表纤维截面的小圆(参数:线半径 \(R\)、纤维半径 \(r\)、纤维最小间隙 \(d\)、最大尝试次数 \(M\)),每种配置发射一百万条平行光线模拟镜面反射、镜面透射与吸收(吸收按 Beer 定律),并对 500 个随机配置取平均以消除单一配置的随机性(相当于对真实布中不同线实例做平均)。

结果发现:多纤维散射相比单纤维,前向散射更弱、后向散射更强(纤维越多,光越容易遭遇后向散射事件而从反射方向射出);且多圆散射分布与单圆的 R、TT、TRT 三个 lobe 特征相似——每个 lobe 像是被独立地修改后再叠加。

据此提出线的 BCSDF 模型 \(S_t\),同样三个 lobe:由 R 改造的低阶后向散射、由 TT 改造的前向散射、由 TRT 改造的高阶后向散射:

\[S_t(\theta_i,\theta_r,\phi_i,\phi_r) = \sum_{p=0}^{2} M_{tp}(\alpha_p,\theta_i,\theta_r)\, N_{tp}(\beta_p,\theta_i,\phi_i,\phi_r)\, A_{tp}(\theta_i,\phi_i)\]

\[A_{t0} = \lambda_0(\theta_i), \quad A_{t1} = \lambda_1(\theta_i)\,T_r, \quad A_{t2} = \lambda_2(\theta_i)\,T_r\]

其中 \(\alpha_p,\beta_p\) 是每个 lobe 独立的纵向/方位粗糙度,\(\lambda_0,\lambda_1,\lambda_2\) 是随纵向入射角变化的尺度因子,\(T_r = e^{-\sigma_a l}\) 是单纤维透射率(\(\sigma_a\) 为吸收系数,\(l\) 为纤维内路径长度)。多纤维交互时路径长度会累积,但无法解析求出各方向在随机配置上平均的精确路径长——这个表示的巧妙之处正是用等效的尺度和宽度变化,来吸收多纤维相对单纤维的路径长差异。尺度因子按拟合出的趋势参数化:

\[\lambda_0(\theta_i) = r_{0a}\cos^2(\theta_i) + r_{0b}\cos(\theta_i) + r_{0c}\]

\[\lambda_1(\theta_i) = r_{1a}\cos(\theta_i)\]

\[\lambda_2(\theta_i) = \frac{1}{r_{2a}\cos(\theta_i) + r_{2b}} + r_{2c}\]

对比 Zhu et al. 2023b:他们把纤维级方位 R lobe 与聚合股级后向散射方位 lobe 都用均匀分布参数化,导致在斜入射时拟合成平坦曲线,无法复现随入射角增大而逐渐主导的后向散射大峰;本文模型在各入射角下都拟合得显著更准。

数字化线:采集与可微反演

采集装置极简廉价:Sony Alpha 7 II 相机 + 手机闪光灯 + 旋转平台 + 缠绕线的黑色空心盒,在暗室中以手机闪光灯为唯一光源。线以 50 圈紧密无缝地缠绕在盒上。

  • 反射:线先水平放置转平台采 6 个角度,再竖直放置采同样 6 个角度;
  • 透射:只水平放置采 5 个角度(竖直放置时透射变化可忽略)。

共采集 28 种线、17 个视角。反演用 Mitsuba 3 做可微渲染:复现采集装置,把闪光灯建模为单个球面发射体,线几何用对齐的 B 样条曲线表示;先用校准的 spectralon 估计光强,再用非零区域对参考照片做掩膜使梯度只关注渲染与照片的差异。Adam 优化器,学习率 \(1e^{-2}\),100 次迭代。损失函数为:

\[\mathcal{L} = \sum_{i=0}^{16} w_i \lVert I_i - I_i^{\text{ref}} \rVert^2 + \gamma_0 \max(0, r_{0a}+r_{0b}) + \gamma_1 \max(0, -r_{2b}) + \gamma_2 \max(0, r_{0a})\]

第一项是各视角加权 MSE,后三项为正则项:避免尺度因子为负、并偏好 \(\lambda_0\) 呈凹向下形状(符合模拟趋势),实践中 \(\gamma_0=\gamma_1=\gamma_2=1e^{-4}\)。

织造几何仿真与两尺度渲染

采用 Leaf et al. 2018 的仿真生成纱线几何:按织造图案提取一个可重复 patch,初始纱线形状由图案参数曲线定义,再用含拉伸、弯曲能量项的物理仿真松弛到形变构型(并调整纱线收缩以模拟织造张力),施加周期边界条件保证 patch 可无缝平铺。相比 Li et al. 2024 的参数曲线中心线、Montazeri et al. 2020 只在高度方向变形的简化模型,本文用完整的物理仿真更准确。

两尺度渲染(沿用 Li et al. 2024)解决人体尺度布料无法暴力平铺的问题:宏观尺度把布面表示为三角网格,微观尺度是纱线 patch,内存里只需存一份 patch。渲染时先从相机发射光线与宏观面求交,采样光照方向后把交点和方向变换到局部 patch 空间做微观求交与路径追踪,直到光线离开微观面再变换回世界空间继续全局路径追踪。效果显著:渲染 \(1\,m^2\) 大丝绸布,暴力平铺需 6.6 GB 内存,两尺度只需 6.6 KB。

实验结果

内存与速度:\(1\,m^2\) 丝绸布内存从暴力法的 6.6 GB 降到 6.6 KB。teaser 图三张渲染(2000 × 2200 分辨率,256 spp)在 RTX 4090 上每张 7.8 秒;纹理图案示例同分辨率同 spp 为 9.0 秒。

线反演:在丝、人造丝(rayon)、棉、涤纶(polyester)、金属纤维等多色多材质线上做反演,与”单纤维散射模型”(把线当单根纤维)和 Zhu et al. 2023b 对比。本文方法由模拟驱动、能拟合线内多次散射,在颜色和亮度变化上重建都显著更准;单纤维模型缺乏后向散射,Zhu et al. 2023b 是对真实多次散射的各种近似。

合成数据验证:每根线内随机放 10 根纤维、按真实设置渲染同样 17 个视角作为真值,把纤维束反演成单根线,所有视角均达到高精度。

布料外观预测:采集 16 个织物样本及其对应的织造用线,涵盖平纹、斜纹、缎纹、篮纹四种织法,每种 4 种配色(纬纱统一黄色,经纱分别为蓝、黄、紫、橙)。样本缠绕在半径 4.1 cm、高 17.1 cm 的黑色圆柱上,用与反射相同的视角配置拍摄。流水线先反演对应线,再按织法跑纱线仿真生成可平铺 patch,并按物理长度调整经纬纱周期。模型复现出中部带黄色调的高光带(高光宽度取决于底层纱线的斜率,通过调整 patch 高度变化实现),比单纤维模型和 Zhu et al. 2023b 忠实得多,后两者会产生错误的颜色和亮度。

设计应用:预测了三种配置、分别配缎/平/斜纹织法的莎丽(sari)外观;展示了用四种不同颜色线以不同经纬排序织成的裙子——整体色相似但高光颜色各异。

纹理图案与刺绣:不用 Chiang et al. 2015 的颜色重参数化,而用可微渲染只反演吸收系数 \(\sigma_a\) 来生成目标图案(示例为一件中式传统婚服);刺绣预览则把 motif 转成分层线曲线,同样只反演各线组的 \(\sigma_a\) 而保持其他材质参数不变。

亮点与局限

亮点:

  • 面向真实需求的正向问题:从”物理线”预测”成品布”,直接对接时尚设计”所见即可造”的痛点,而非从已织成的布反推。
  • 模拟驱动 + 紧凑可微:用横截面多纤维蒙特卡洛模拟揭示”弱前向、强后向”规律,再用等效的尺度/宽度变化把复杂路径长差异压进三 lobe 模型,既物理有据又天然可微,利于反演。
  • 低成本采集:普通相机 + 手机闪光灯 + 空心盒 + 旋转台,暗室即可,易复现。
  • 两尺度渲染的巨大内存收益:GB 到 KB 的量级压缩,让人体尺度布料快速预览成为可能。

局限(作者自述):

  • 纱线仿真未建模织入布料时截面的压缩,更精确的仿真能带来更忠实的预测;
  • 目前只用 RGB 表示,升级到光谱渲染可能改善颜色预测(如蓝色布样本);
  • 未来希望表达外观中的不规则性,并为正向/反向过程建模波动光学效应。

延伸思考

这项工作把”可微渲染 + 物理模拟先验”这套组合用在了一个非常具体的工业环节上:它没有追求纤维级的完全精确几何,而是接受”对随机纤维配置取统计平均”的抽象,把不可解析的多次散射路径长变化,折叠进几个带角度依赖尺度因子的 lobe。这种”用等效参数吸收难以建模的物理复杂度”的思路,本质上和很多神经外观模型的动机一致,但这里保持了解析可微与物理可解释性,反演更稳、也更易嵌入现有路径追踪管线。

值得关注的延伸方向:一是把 RGB 升级到光谱后,配合可微反演能否解决染料金属线等强色偏材质的预测;二是波动光学效应(作者此前在纤维散射上有波动光学工作)与统计平均散射模型如何统一到同一个可微框架;三是”只反演吸收系数即可迁移图案/刺绣”的做法,暗示了一条低数据成本的外观迁移路径——在材质结构相似、仅颜色不同的假设下,把昂贵的散射参数一次标定、颜色按需反演,这对布料设计工具的产品化很有价值。