Subdivision Surfaces with
Displacement Mapping

Rhinork design ©
Wizards of the Coast. Used with permission
Figure 1
The Fantasy Engine uses subdivision surfaces with displacement mapping
to render
complex geometry in real-time. The model in Figure 1
contains about 500,000 quadrilaterals (quads). It is not practical to
rig and animate such a model directly. It is not a treat to UV map it
either. Instead we make a low resolution version of the model with
about 1,700 quads and triangles. See Figure
2.

Figure 2
This low resolution model is much easier to rig
and animate (and UV map). We can also afford to make blend shapes
(morph targets) for more complex deformations since it is a pretty
light mesh. We could displacement
map this version of the model directly, but it would not deform
properly when animated and ugly points and flat edges would appear. It
is much better to displace a nice smooth model like we have in Figure 3.

Figure 3
Here we have a smoothed version of the model created
by treating the low resolution model as a subdivision surface. It
deforms naturally when animated, never introducing any flat edges or
jutting vertices. Also, it gets a closer fit to the high-resolution
model than the polygon version so we can get by with a fairly
low-resolution displacement map with fewer bits per pixel.

Figure 4
We use a mapping program to create a displacement
map that gives the difference between the smoothed model and the high
resolution model. The displacement map tells the renderer
how much to displace the surface in the direction of the low resolution
model’s normal. Figure 4 is
the displacement map used to change the smoothed model into the
displaced model shown in Figure 5.
If the displacement mapping is done properly the displaced low
resolution model will be virtually indistinguishable from the original
high resolution model.

Figure 5
TM
& © 2005 - 2006 Fantasy Lab, Inc. All Rights Reserved.