Wickr - A Procedural Wicker Texture

by Erin Woodford in Materials, Shaders, Textures

Wickr is a procedural material created using Blender’s node system which means that by changing a few parameters, you can totally change how the material looks.


A huge thank you to Lance Phan for his video called “Procedural fabric fiber in Blender” which inspired me to create this material.

A brief overview:

Wickr considers the two parts of a basket individually and allows you to input settings specific to both the STAKES (the uprights) and the WEAVING (the horizontals).

The Wickr Config node group is where you set up the way the wicker weave works and the Wickr Texture node group is where you can set the individual textures, colours roughness etc.

If you’re working with the full WICKR material, you’ll find it comes set up with the UV Map node, four image texture, the Wickr Config, Wickr Texture and a Principled BSDF node all plugged together. This was how the setup I designed Wickr to be used in as it keeps as much as possible inside the groups while having a lot of control from the inputs alone.

It’s important to note that the top two image nodes (Stake diffuse texture and stake bump texture) should have their grain running vertically, whereas the bottom two (weaving diffuse and weaving bump) should be horizontal. Use the Z-rotation in the mapping node if you need to change the direction of your chosen image textures. Textures are completely optional and you can unplug them to just set the colour.

Wickr Config Node

AO: Can be multiplied with colour to fake ambient occlusion.

Masks: Separate the various elements of the wicker for more control over texturing.

Alpha: A mask to make the gaps transparent.

Height and Scale: These can be plugged straight into a displacement node.

Viewer Node: If you’re working inside the group, plug a viewer node into here and then inside the group you can pass through for immediate feedback on changes.

Iterations: Defines the number of weaves.

Offset: Allows fine-tuning of stakes as different settings change.

Strands: Define how many strands per row.

Strand Pattern: Allows changing the “alt strand tint” pattern between 3 options.

Spacing: Creates space between individual strands

Group Spacing: Creates space between groups of verticals (adds strand spaces so growth is logarithmic).

Compression: Compresses the texture in each direction. Minimum of 1 to prevent artifacts and breaking.

Displacement Scale: This gives fine tuning to the scale of displacement. It should scale fine with iterations already but this gives more control if needed.

UV Map: Plug a UV Map node in here.

^ The three Weaving Strand Patterns

Wickr Texture Node

Diffuse: Plug into base colour of a shader node

Roughness: Plug into Roughness of shader node

Alpha: Plug into Alpha of shader node

Normal: Plug into Normal of shader node

Displacement: Plug into Displacement of Material Output node

Diffuse: Texture or colour input

Tint: Adds a tint (multiply function so only darker)

AO Multiplier: Changes amount of fake ambient occlusion is added to colour

Roughness: Changes the roughness of the stakes and weaving individually

Bump Factor: Changes the bump amount for stakes and weaving individually

Bump Height, Strength, Distance: Changes overall bump settings

WICKR CONFIG NODE: Spacer – leave this empty

The sockets at the bottom of here are designed to be used with the Wickr Config node and can just be tied straight across from that.

Please make changes and feel free to release your own versions!

If your versions still resemble what I’ve done, please consider referencing me!