Towels, Carpet Or Grass Material Using Displacement
By Neil Blevins
Sept 1st 2008

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 Grass using displacement.

I'll use the example of a towel, here, but the same thing applies to Carpets or Grass. Also, while I'll use Mentalray for max in this example, the same technique applies to any renderer that lets you use displacement (if you don't have displacement, even a bump map using the same technique will give good results as long as the camera is far enough away).

The basic ingredients for a towel are as follows:

Real Towel

A photo of a real towel from a catalogue.

Making The Displacement Map

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 lets go into max.

Making The Material

In max, choose the mentalray renderer. Choose an Arch & Design material.
Figure 8

Figure 9

Setting Up The Renderer
Figure 10

Figure 11

And here's the result...

Figure 12

If you're getting something different on your own test object, make sure that you're tiling the map a few times, so that the noisy pattern is smaller.

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.....

Figure 15

Here's the max file, which contains both the bitmap version, as well as versions using a cellular procedural map and a noise procedural map. Requires Max 2009.


This site is ©2008 by Neil Blevins, All rights are reserved.
Back to NeilBlevins.com