I had to come up with a titanium scale material for a recent project, so I thought I’d share a few tips about how I went about creating an entirely texture-based mat versatile enough to be used in a variety of project. The methode is not exactly original and many artists will have used it for other types of materials but it can be applied to many different scenarios. Indeed, if there is interest, I was planning to write a follow-up tutorial some time soon on how to use the same workflow to create rain drops on glass.
Before we jump in, here is a taste of what the final result looks like on low-poly geometry.
I will be using 3ds Max and Vray here, but the basic philosophy can be applied to all 3D apps and renderers. The first step is to create the base geometry that will be used to generate the displacement map. Start with one scale – an extruded plane (i.e. not a box since it’s not closed at the back). Create some edge loops in the geometry and move some of the vertices backwards and forward to create bulges and depressions on the plate. Since the scale will be subdivided, you want to have some denser edge loops close to corners of the scale to make sure it remains quite sharp there (red box). Make sure you do not move any of the vertices on the edge of the scale.
When subdivided (here two levels of Turbosmooth), the plate looks nicely distorted. Now it’s a good idea to create three to four copies of the original scale and give them some variations.
Now copy the various plates to create a reasonably large scale structure with enough variation in it.
In the next step, create a standard camera, position it perpendicular to the “wall” of scales and choose an orthographic projection. I set my render size here at 4096×4096 pixels to get a large enough texture map. Play with the camera settings to encompass an as large as possible section of the wall and position the camera so that it will be easy to make the resulting map tileable in your 2D application.
Position the far and near ranges of the camera so that the far range is just behind the back of the wall and the near range just in front of the scales. We’re interested in rendering a ZDepth pass of this scene to extract displacement values. So select the ZDepth render element and copy the near and far range values in the ZDepth settings. This will ensure the map is very precise.
Now render and save the ZDepth and the Alpha passes. Load the maps in your 2D application and crop them and edit them so that they are tileable. Using the Alpha pass as a guide, I’ve painted a reflection/glossiness map by copying and pasting photos of worn metal found on CGTextures.com. Notice how some of the scales are slightly darker. Here are the resulting three maps you should get, starting with displacement (the ZDepth map made tileable), an Alpha that we’ll use as a mask, and the reflection map.
Now you only need to apply these textures to any model, using either a standard projection map or a UVunwrap if you’re working with organic shapes.
For my render, I used a VrayBlend material, mixing a titanium material with a diffuse black material and using the alpha mask to blend between the two (so that the spaces between the scales do not reflect light). Here are my settings for the titanium material. The key here is to be subtle. My material was not supposed to be very dirty but still had to show some slight reflection and glossiness differences from scale to scale. So I was very light-handed in applying the glossiness and reflection maps.
The last step is to apply a Vray displacement modifier to your building or facade. Here, I used a 2D displacement with a very small value (the bulges, “folds”, and depressions in the scale are not too prominent).
That’s it. Let me know if this was useful. Suggestions for improving or refining this workflow are much welcome and I’d also be curious to see examples of what you come up with using this simple technique.