ZBrushCentral

Displacements: What is the PURPOSE of a displacement map?

Displacement maps take bump mapping to the next level. The problem with bump mapping is that it only performs displacements toward the camera. As a result, the profile of your model is not changed. Displacement mapping can move points or pixels in any direction, which changes the silhouette of the model and creates a more realistic effect. In addition, animation packages can’t handle the huge numbers of polygons that ZBrush supports. Displacement maps are the key to overcoming this weakness. You would rig and animate a low poly version of your model with very little drain on your system resources. At render time, you would then apply a displacement map to make the finished scene look like you’d actually animated the ultra high resolution ZBrush version of your model. In short, displacement maps make it possible to greatly increase the realism of your scenes with minimal impact on your system resources.

As I understand it, when the displacement map is applied, the model is subdivided, and the new vertices are moved outwards from the normals of the polys they came from.

But if this is the case, then don’t you still end up rendering a crapload of new polys? how is a low-poly model with a displacement map different from a highpoly model by itself?

It depends upon your rendering engine.

There are basically three ways that rendering engines can work with displacement maps:

  1. Vertex displacement. This only moves points, and as you suggest requires a very high number of them to get good detail. It’s not used much anymore.

  2. Tesselation. In this case, you animate a low poly model, which is then subdivided at render time to have a high number of points. This is much more wieldly than vertex displacement, but still requires a lot of RAM to do the final displacements. A much more sophisticated version of this is called sub-poly displacement. This approach selectively subdivides the model at render time, only adding points where necessary to create the detail called for by the displacement map.

  3. Sub-pixel displacement. In this case, the model isn’t divided at all. It is strictly a rendering effect, moving each rendered pixel according to the map. It is generally the fastest and highest quality version of displacement mapping, and has the lowest system overhead.

Because every render engine is unique, it is important for you to understand the ins and outs of the engine that you use.

hi aurick, do you happen to know how to do a precise displacement in Softimage|XSI? We’ve tried many many different methods, but it always seems to lose a bunch of detail when applied. Can you help me??? tHANks, you’d be a life-saver.

That’s a really great explanation to understand. Thanks a lot. Does this mean that displacement maps and normal maps go in the standard bump mapping channel in a program like maya