freeburma

subdivision on triangle meshes

Subdivison surfaces are generated from a base polygon mesh through an iterative process that smooths the mesh while increasing its density. In each iteration, the subdivision algorithm refines the mesh, increasing the number of vertices. Rather complex smoothed surfaces can be derived from relatively simple meshes.

There exists many different schemes for the actual subdivision process.
Types of subdivision schemes:

  • Interpolating schemes where the limit surface / curve will pass through the original set of points
  • Approximating schemes where the limit surface will not necessarily pass through the original set of points

Comparison of the schemes in general:

  • The continuity of a scheme determines its quality
  • Approximating schemes give best results
  • Approximating schemes shrink meshes

The subdivision schemes presented here are defined on triangle meshes only, not arbitrary polygonal meshes.

butterfly Butterfly subdivision:

  • interpolating scheme
  • produces 4^k faces (k, the subdivision level)
  • allows "tension control" through w
  • is fairly fast to compute
Dodecahedron:
Level	Faces	Vertices
0	60	32
1	240	122
2	960	482
3	3840	1922
4	15360	7682
5	61440	30722


loop Loop subdivision:

  • approximating scheme
  • produces 4^k faces
  • produces very smooth surfaces
  • is fairly fast to compute
Dodecahedron:
Level	Faces	Vertices
0	60	32
1	240	122
2	960	482
3	3840	1922
4	15360	7682
5	61440	30722


root3 Root 3 subdivision:

  • approximating scheme
  • produces the least faces (3^k)
  • similar result to loop, but fewer faces
  • not as smooth as loop at the same level
  • fast to compute
Dodecahedron:
Level	Faces	Vertices
0	60	32
1	180	92
2	540	272
3	1620	812
4	4860	2432
5	14580	7292


The zipped application (SubDs.jar) and 8 meshes can be downloaded here.