OpenSubdiv entered an open beta for SIGGRAPH 2012. Beta implemented uniform subdivision on the CPU and GPU. Pixar’s internal animation software Presto uses this codepath in released software for production animation.
The beta contains:
- Core hbr, far, and osd libraries.
- A reference Maya viewport 2.0 draw override plugin implemented on osd.
- A standalone test and ptex viewer for performance testing.
- A set of regression tests that validate correctness.
The beta supports:
- Uniform subdivision.
- Variable and uniform creases.
- Computing the complete Nth subdivision level for a subdiv. Note that these aren’t limit points yet, but the result of subdividing N times.
- Ptex texture color and displacement.
- Support for hierarchical edits.
The OpenSubdiv release candidate is open for SIGGRAPH Asia 2012. The release candidate has all APIs and features in place and will receive stability bug fixes and optimizations before 1.0 release targetting January 2013.
The release version of OpenSubdiv raises the performance bar to what we believe is the maximum level by computing cubic patches that are supported directly in hardware with tessellation shaders. This fitting process is done adaptively, so areas of the mesh that are all quads and regular aren’t subdivided at all, and the detail is clustered close to features that require it, such as creases, extrordinary points, hierarchical edits, boundaries, and corners. The requires significantly less GPU memory than uniform subdivisions as tessellation hardware dices those cubic patches on the fly while drawing and doesn't need to store the high resolution surface geometry.
The release candidate adds the following in addition to that supported by beta:
- Feature adaptive refinement as described by the Microsoft/Pixar research collaboration.
- Facevarying UV interpolation.
- Exact limit evaluation of points/normals/shading data.
- Dynamic view-dependent surface tessellation.
Pixar is targeting SIGGRAPH LA 2013 for release 2.0 of OpenSubdiv. The major feature here will be the Evaluation (eval) api. This adds functionality to:
- Evaluate the subdiv surface at an arbitrary parametric coordinate and return limit point/derivative/shading data.
- Project points onto the subdiv limit and return parametric coordinates.
- Intersect rays with subdiv limits.
We also expect further performance optimization in the GPU drawing code as the adaptive pathway matures.
Release 2.0 of OpenSubdiv will use the Apache license. More details soon.