Fast Rendering of Subdivision Surfaces: Slide 10 of 15.

Click slide for next, or goto previous, first, last slides or back to thumbnail layout.

Click slide for next, or goto previous, or back to thumbnail layout.

The fact that two triangles can be combined into a quadrangle allows us to simply store the vertices into a square 2D array. The gray color shows the proper triangles surrounded by the support edges and vertices. With this representation, we don't need any pointers for finding neighbors, and we store explicitly only the vertices --- no edges or faces --- so we get rid of almost all of the overhead usually associated with storing a polygonal mesh. We can find all such information, even the edge and vertex types, by consulting the original message and the location within the square array.

A straightforward implementation of subdividing a level at a time would require memory on the order of the number of vertices at the final level. However, this number grows up really fast: each successive level has about 4 times as many vertices as the previous one.