Game Development Reference
Figure 7.8 Smoothing the object with subdivision.
edges it contains represent the basis of how to make a model, not the
model itself. In code we can take each triangle and split it into four
triangles by dividing each edge into two, or split the triangle into nine
by dividing each edge by 3, or divide each triangle into n 2 triangles by
dividing each edge by n , using an algorithm to position the new
vertices to result in a smoother looking mesh. Figure 7.8 shows the
effect of doing just this using the Lightwave 6.5 subdivision option.
There are many options to subdivision. Some methods retain the
shape of the control mesh with better accuracy than others. You can
see from the diagram that the method adopted by Lightwave has the
effect of shrinking the mesh so that the arms and legs appear slimmer.
The artist modelling the original cage can accommodate for this when
creating the original geometry, designing the cage so that the sub-
divided mesh looks correct at the expense of the control cage. In
Chapter 15 we explore the options for subdivision and look at the full
implementation of one system, butterfly subdivision. This method uses
interpolation, so the rendered subdivided mesh uses vertices from the
original cage in addition to the added vertices. Using butterfly subdivi-
sion with a subdivision of zero, the rendered mesh and the control
mesh are the same. With a subdivision of 1 it has a slight swelling
effect for a convex polygonal mesh, which can be controlled to a
certain degree using a weight parameter. Overall, butterfly subdivision
has the effect, with relatively low polygon cages, of retaining the shape
of the original more accurately.