Vince: I'm not an expert on the actual mathematics of the stuff, but I'll give it a try and post a lot of blahblah...
So, the Catmull-Clark algorythm works on any arbitrary polygon mesh. It basically turns every polygon into a small quadratic B-patch surface. The good thing is that it can work on any kinds of meshes, with any possible kinds of polygons (from3-sided to n-sided). This gives a lot more flexibility than a NURBS surface which requires a rectangular grid.
For every face, it does the following:
- insert a new vertex to the midpoint of all edges
- insert a new vertex into the center of the face
- connect new vertices
It also moves/averages the vertices at each step, and thus the resulting surface will be smoothed as well.
So, even after the first level of subdivision, the model is made of only quadrangular surfaces. A triangle is turned into 3 quads, a pentagon is turned into 5 quads.
Theoretically, subdivision is repeated to infinity, and it porduces a so-called limit surface or derived surface that is infinitely smooth. PRMan subdivides the mesh into micropolygons, other renderers have different methods.
The Doo-Sabin subdivision algorythm produces considerably different results; the subdivided surface may have 3 to n-sided polygons instead of quads only. So conversion to B-patches is not possible, and the derived surface won't be infinitely smooth.
I used to have some nice university links on the subject, but lost them in a HD crash