Towels, Carpet Or Grass Material Using Displacement
By Neil Blevins
Created On: Sept 1st 2008
Updated On: Dec 15th 2024
Software: Photoshop and Blender or 3dsmax (vray)

Go here to read this tutorial in Russian.

An object like a towel is made up of thousands of little fibers, all packed closely together. To replicate this is cg, the obvious solution is to use a hair system to produce those fibers. The results will look good, especially close up, but that technique is perhaps overkill, especially if the object is off in the distance. Hair can be expensive to render, and time consuming to set up. So this tutorial explains a method to do objects such as Towels, Carpets or well cut Grass using displacement.

Reference

Here's the photo the towel from a catalog we will be using as reference.

Real Towel

Software Agnostic Material

The basic ingredients are as follows: Ways to make it more realistic:
Making The Displacement Map in Photoshop

From far away, a towel looks like a bunch of chaotic bumps. So one way to produce your displacement map is to make a lot of tiny bumps using a small procedural noise.

Figure 1

Another idea is to use some sort of cellular noise for the pattern...

Figure 2

But for this example, I'm going to make a slightly more detailed texture map in photoshop. It will probably also render faster than using the Noise or the Cellular Pattern.

Open photoshop, open a new document that's 1024x1024 pixels, and has a black background color. Then get the hard brush.

Figure 3

Modify the brush and give it a little size jitter

Figure 4

Give it a scatter and increase the count.

Figure 5

Under Color Dynamics, give it a brightness jitter. This will fake each fiber of your towel being a slightly different height.

Figure 6

Now pick the color black and fill your image with the brush. Here's a small cropped area of the bitmap.

Figure 7

Use the Filter Offset Trick to make the map tilable.

Save the file. Now we have our texture map.

Blender Example

Here's the shader for Blender...


Now it's time to turn on displacement.




Remember to turn on "Rendered" as your viewport shading mode if you want to see the displacement in the viewport.

Here's the resulting render.



Looks good. But lets add that wear or brushed pattern.



Create a Noise Texture, connect it to a Texture Coordinates set to Object. Hook the noise into a Color Ramp to control the contrast of the noise. Hook that into a Math node set to Multiply, and multiply the original Towel Disp image with the noise.

Notice how the Larger Noise is set between grey and white in the Color Ramp, never black. This is to avoid any areas having no speckly displacement, or to avoid any areas of 100% wear.

Here's the larger noise by itself.



And here's the result of multiplying your original small noise by the larger noise, this looks far more organic.....



Here's the blend file, Blender 4.3: towel_material_blender.zip

3dsmax (vray) Example

In 3dsmax, choose the VrayMtl.




Here's the resulting render.



Looks good. But lets add that wear or brushed pattern.

Turn your bitmap into a Composite Map, that contains both your original bitmap, and a larger noise. The larger noise is then multiplied onto your original pattern, causing some areas to not be as strongly displaced as others, hence creating a worn pattern.

Figure 13

Figure 14

Notice how the Larger Noise never goes to black, always to a medium grey. This is to avoid any areas having no speckly displacement, or to avoid any areas of 100% wear.

Here's the larger noise by itself.

Figure 14a

And here's the result of multiplying your original small noise by the larger noise, this looks far more organic.....



Here's the max file, 3dsmax 2022: towel_material_3dsmax_vray.zip


This site is ©2024 by Neil Blevins, All rights are reserved.
NeilBlevins.com TwitterMastodonBlueskyInstagramCaraBloggerFacebookLinkedInArtStationKickstarterGumroadYouTubeIMDB