Procedural Cloth Fabric Material

by Tomás Correa in Surfacing


In this documentation I go over each input and output of the shader explaining its meaning, use, and default value. Default vlues used are to generate a general fabric material, however experimentation with these values can create many new kinds of materials.

Shader inputs:

  • Vector: Standard vector node to map the material coordinates onto the object. Default: UV.
  • Scale: General scale of the material, works as Scale options on most other shaders. Default: 32.
  • Displacement strength: How much the material displaces the base mesh, equivalent to Scale on Blender's native Displacement node. Default: 0.5.
  • Small bump strength: How visible the small bumps are. Small bumps are the longitudinal bumps that go across each thread multiple times. Default: 0.25.
  • Thread pointiness: How sharp the bump generated by each thread is, with 0 being perfectly flat. Indirectly affects thread width. Default: 0.75.
  • Thread width: Width that each thread occupies. Ranges from 0 (no visible thread, only gap) to 1 (thread occupies entire width, leaving no gap between threads). Default: 0.75.
  • Threads per group: How many threads are in each section of the weave. Rounds down to the nearest integer. Default: 1.
  • Roughness adjustment: Allows the user to adjust the overall roughness of the material, ranges from 0 (glossy) to higher numbers, progressively more rough. Default: 1.

Shader outputs:

  • Threads Vector: A vector map indicating the index of each thread. Each thread is labeled with an integer over the specified axis. For example, for the first thread in one direction, the Threads Vector has a value of (1, 0, 0), the second thread (2, 0, 0), etc. The first thread in the opposite direction (perpendicular to the previous example) has a Threads Vector value of (0, 1, 0), the second one (0, 2, 0), etc. With this vector map the user can alter indiviual threads as they please.
  • Roughness: Roughness of the material, to be connected to the Roughness input of the BSDF.
  • Alpha: Alpha map of the material, to be connected to the Alpha input of the BSDF. This map is responsible for the gaps between threads.
  • Normal: Normal map, to be connected to the Normal input of the BSDF. This map is responsible for the small bumps of the material.
  • Displacement: Displacement normal map, to be connected to the Displacement input of the Material Ouput node.
Sales 80+
Dev Fund Contributor
Published over 1 year ago
Blender Version 2.8, 2.81, 2.82, 2.83, 2.9, 2.91, 2.92, 2.93, 3.0, 3.1, 3.2, 3.3
Render Engine Used cycles, eevee
License Creative Commons
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message