Doo-Sabin Subdivision Surface
I implemented Doo-Sabin subdivision surface in C++ using OpenGL. I used half-edge data structure to store polygonal mesh data.

Algorithm

  1. face point : average of the vertices of the polygon
  2. edge point : midpoint of the edge
  3. new point : average of four points ( face point, two edge points, and vertex )

Results

  • Cube


  • Three-hole torus


  • Concave


Source

References