Game Development Reference
allocations, which by default use the worst case scenario. If a mesh has
100 triangles, then the maximum number of edges is 100
3 = 300. This
implies that every triangle is a separate item and no triangles share any
edges. Clearly, in a character mesh this is not going to happen. If a mesh
has no deformations then subdivision needs to be called only once, after
which the subdivided mesh is used for all screen paints. Character
animation, however, involves mesh deformation and needs to be called
for each deformation of the mesh. Since this could be 50 times a second,
any optimizations will pay dividends in performance. It is possible to
subdivide a mesh an arbitrary number of times in a single pass with no
iteration. One technique was presented at Siggraph 1998 by Jos Stam.
The method uses the invariance of eigenvectors and eigenvalues. It is a
fairly mathematical presentation, but you are advised to refer to Appendix
C for a link to his paper.
Subdivision allows the modeller to use all the low polygon methods that
they have used in the past with the benefit that the final rendered mesh
can be as smooth as you choose. Subdivision addresses the increasing
sophistication of computer hardware while not excluding users with less
capable machines. It is fairly easy to implement and can greatly improve
the appearance of low polygon meshes. As the gap between low- and
high-end computer hardware grows wider, the requirement of scalable
solutions becomes increasingly important.