Game Development Reference

In-Depth Information

15
Using subdivision

surfaces

Real-time 3D applications are limited to relatively few polygons to

describe a model. On some machines displaying 5000 triangles, 25-30

times a second is the limit of the processor and graphic card capabilities;

on other systems, a 50 000-polygon limit could be achieved. How do we

scale the display to suit the hardware? One popular technique is to use

subdivision surfaces. Using this method the original polygonal mesh is

used as the basis for the model. With one pass of subdivision every edge

is divided in two, so that each triangle is replaced with four triangles. If the

new vertices are placed simply at the mid-point of the edge then the

surface would not be smoothed, but if we could devise a way of placing

the vertices at the optimum place to smooth the mesh then the effect is a

smoothly refined mesh. It is equally possible to subdivide the new mesh

again, thereby replacing the original triangle with 16 new triangles. As you

can see, each level of subdivision replaces the original triangles with four

times the number of triangles, so the polygon count ramps up at a rate of

4
n
, where
n
is the subdivision count. Subdividing four times gives 4
4
= 256

times the original polygon count. A 1000-polygon character now has a

staggering 256 000 polygons. For most real-time applications, one level of

subdivision, or two at the most, will be the limit. So that is the principle, but

the real cunning of any subdivision scheme is deciding where to place the

new vertices. Let's look at the options.

An overview of subdivision

We must decide first whether the original vertices feature in the

subdivided mesh or not. If we choose a scheme that retains the original

vertices, then we know that the new surface will go through the original

mesh. A scheme that retains the original vertices and adds to the vertex

list is described as interpolating, while a scheme that creates all new

vertices is called
approximating
. For low resolution meshes, this decision

Search Nedrilad ::

Custom Search