Digital replication of woven fabrics presents significant challenges across a variety of sectors, from online retail to textile design. To address this, we introduce an inverse rendering pipeline designed to estimate pattern, geometry, and appearance parameters of woven fabrics given a single close-up image as input. Our work is capable of simultaneously optimizing both discrete and continuous parameters without manual interventions. It outputs a wide array of parameters, encompassing discrete elements like weave patterns, ply and fiber number, using Simulated Annealing. It also recovers continuous parameters such as reflection and transmission components, aligning them with the target appearance through differentiable rendering. For irregularities caused by deformation and flyaways, we use 2D Gaussians to approximate them as a post-processing step. Our work does not pursue perfect matching of all fine details, it targets an automatic and end-to-end reconstruction pipeline that is robust to slight camera rotations and room light conditions within an acceptable time (15 minutes on CPU), unlike previous works which are either expensive, require manual intervention, assume given pattern, geometry or appearance, or strictly control camera and light conditions.
We apply a yarn-based model that considers not only reflection but also transmission of fabrics.
Reference | Ours | Ref zoom-in | Ours zoom-in | |
---|---|---|---|---|
(a) Front
|
![]() |
![]() |
![]() |
![]() |
(b) Back
|
![]() |
![]() |
![]() |
![]() |
(c) Both
|
![]() |
![]() |
![]() |
![]() |
Reference | Ours | Reference zoom-in | Ours zoom-in | Generated yarns | |
---|---|---|---|---|---|
(a) Synthetic data
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
(b) Captured real data
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
(c) Public real data
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Reference
|
![]() |
![]() |
![]() |
![]() |
![]() |
Ours
|
![]() |
![]() |
![]() |
![]() |
![]() |
Init | Process | Reference |
---|---|---|
![]() |
![]() |
![]() |