Subdivision surface
In the field of 3D computer graphics, a subdivision surface is a curved surface represented by the specification of a coarser polygon mesh and produced by a recursive algorithmic method. The curved surface, the underlying inner mesh, can be calculated from the coarse mesh, known as the control cage or outer mesh, as the functional limit of an iterative process of subdividing each polygonal face into smaller faces that better approximate the final underlying curved surface. Less commonly, a simple algorithm is used to add geometry to a mesh by subdividing the faces into smaller ones without changing the overall shape or volume.
The opposite is reducing polygons or un-subdividing.
Overview
A subdivision surface algorithm is recursive in nature. The process starts with a base level polygonal mesh. A refinement scheme is then applied to this mesh. This process takes that mesh and subdivides it, creating new vertices and new faces. The positions of the new vertices in the mesh are computed based on the positions of nearby old vertices, edges, and/or faces. In many refinement schemes, the positions of old vertices are also altered.This process produces a denser mesh than the original one, containing more polygonal faces. This resulting mesh can be passed through the same refinement scheme again and again to produce more and more refined meshes. Each iteration is often called a subdivision level, starting at zero.
The limit subdivision surface is the surface produced from this process being iteratively applied infinitely many times. In practical use however, this algorithm is only applied a limited, and fairly small, number of times.
Mathematically, the neighborhood of an extraordinary vertex of a subdivision surface is a spline with a parametrically singular point.
Refinement schemes
Subdivision surface refinement schemes can be broadly classified into two categories: interpolating and approximating.- Interpolating schemes are required to match the original position of vertices in the original mesh.
- Approximating schemes are not; they can and will adjust these positions as needed.
Subdivision surface schemes can also be categorized by the type of polygon that they operate on: some function best for quadrilaterals, while others primarily operate on triangles.
Approximating schemes
Approximating means that the limit surfaces approximate the initial meshes, and that after subdivision the newly generated control points are not in the limit surfaces. There are five approximating subdivision schemes:- Catmull and Clark, Quads – generalizes bi-cubic uniform B-spline knot insertion. For arbitrary initial meshes, this scheme generates limit surfaces that are C2 continuous everywhere except at extraordinary vertices where they are C1 continuous.
- Doo-Sabin, Quads – The second subdivision scheme was developed by Doo and Sabin, who successfully extended Chaikin's corner-cutting method for curves to surfaces. They used the analytical expression of bi-quadratic uniform B-spline surface to generate their subdivision procedure to produce C1 limit surfaces with arbitrary topology for arbitrary initial meshes. An auxiliary point can improve the shape of Doo-Sabin subdivision. After a subdivision, all vertices have valence 4.
- Loop, Triangles – Loop proposed his subdivision scheme based on a quartic box-spline of six direction vectors to provide a rule to generate C2 continuous limit surfaces everywhere except at extraordinary vertices where they are C1 continuous.
- Mid-Edge subdivision scheme – The mid-edge subdivision scheme was proposed independently by Peters-Reif and Habib-Warren. The former used the mid-point of each edge to build the new mesh. The latter used a four-directional box spline to build the scheme. This scheme generates C1 continuous limit surfaces on initial meshes with arbitrary topology.
- √3 subdivision scheme, Triangles – This scheme was developed by Kobbelt and offers several interesting features: it handles arbitrary triangular meshes, it is C2 continuous everywhere except at extraordinary vertices where it is C1 continuous and it offers a natural adaptive refinement when required. It exhibits at least two specificities: it is a Dual scheme for triangle meshes and it has a slower refinement rate than primal ones.
Interpolating schemes
- Butterfly, Triangles – named after the scheme's shape
- Modified Butterfly, Quads – designed to overcome artifacts generated by irregular topology
- Kobbelt, Quads – a variational subdivision method that tries to overcome uniform subdivision drawbacks
Key developments
- 1978: Subdivision surfaces were described by Edwin Catmull and Jim Clark, and by Daniel Doo and Malcom Sabin.
- 1995: Ulrich Reif solved subdivision surface behaviour near extraordinary vertices.
- 1998: Jos Stam contributed a method for exact evaluation for Catmull-Clark subdivision surfaces under arbitrary parameter values.