sdlib < products < home

related links

 

SDLib™ - The subdivision surface source code library1

Product Overview

The subdivision surface source code library provided by SMS gives the ability to easily model complex shapes with hierarchical Catmull-Clark surfaces. Click to see graphic examples.

  • SDLib offers:
    • Portable C++ libraries
    • Affordability and royalty-free use
    • Full source code
    • Quick response – most bugs are fixed in just a few days
  • SDLib input:
    • A polygon representation
  • SDLib output may be either:
    • A NURBS representation of the subdivision surface fully compatible with SMLib
    • Polygonal tessellation of the subdivision surface
  • SDLib’s high-level class design:
    • Fully object-oriented approach: dozens of classes targeted to Surface, Face, Edge, Vertex, Iterators, Tessellators, etc.
    • Evaluation gives positions, normals, or derivatives at any point on the surface
  • SDLib editing gives power over:
    • Control points at any level of the hierarchy
    • Crease information at any level, for selected discontinuity of edges or points
  • SDLib subdivision surface features:
    • Can convert an arbitrary topology polygonal mesh to a smooth surface.
    • Surfaces are built to be everywhere smooth, and C2 most places.
    • Surfaces may be edited using control points, just as with NURBS.
    • Surfaces may be edited at different levels of detail: fine, coarse, medium.
    • Surface is exactly equivalent to bicubic NURBS patches nearly everywhere.
    • Surface easily converts to polygons or NURBS.
    • Surface can be evaluated everywhere.

Key Benefits

Back To Top

Subdivision surface functionality available in SDLib includes:

  • Subdivision surface creation from a polygonal mesh:
    • An input polygonal representation is read to give the basic topological layout of the subdivision surface.
    • Any manifold mesh may be used, giving a wide range of shape possibilities.
    • Resulting subdivision surface contains faces, edges, vertices at every level.
  • Face, edge, and vertex operations. All faces, edges, and vertices in the subdivision surface are features at every level of the surface. These features all support:
    • Adjacency queries: adjacent face, vertex, edge at the same level.
    • Hierarchy: parent faces, finer-level feature access.
    • Boundary queries.
    • Ordering among features supports STL or other higher-level data structures.
  • Additional vertex operations:
    • Access CV position at this vertex.
    • Set edit information at this vertex.
    • Compute influence of all coarser-level vertices on this vertex, for convenience in recomputing position after edits.
    • Compute position where this vertex maps on the surface.
    • Compute normal at this vertex on the surface.
  • Additional edge operations:
    • Adjacency: adjacent face, vertex, edge.
    • Hierarchy: sub edge access.
    • Boundary queries.
    • Crease management for the vertex: set and query crease information.
  • Additional face operations:
    • Compute position or normal at a (u,v) parameter within this face.
  • Surface level operations. Each level of the subdivision surface can be set up as an object with:
    • Provides iterators over all faces, edges, and vertices at this level.
    • Counting of faces, edges and vertices at this level.
    • Subdivide entire level to get a finer level.
    • Compute coarser-level influence on all vertices at this level.
  • Subdivision surface operations:
    • Provides iterators over all base-level faces, edges, and vertices.
    • Access to base-level faces, edges, and vertices.
    • Access to vertices, faces, and edges at any level.
  • Tessellation:
    • Limit positions at any level may be output as a watertight polygonal mesh.
    • Surface CVs at any level may be output as a connected polygonal mesh. This allows a means for topological modification at finer levels in the surface.
    • Other tessellation varieties are planned.
  • NURBS output:
    • A closely approximating NURBS representation of the subdivision surface may be produced.
    • The NURBS representation is compatible with SMLib.
Back To Top
 

To view the PDF files, you will need the Adobe Acrobat Reader.

1 SDLib Data Sheet     (PDF)