Pixar and DreamWorks announce OpenSubdiv 3.0
A still from Pixar’s Inside Out, currently being used at the header graphic for the OpenSubdiv website. Pixar uses the open-source libraries for handling subdivision surface operations in its own feature animation work.
Pixar Animation Studios and DreamWorks Animation have announced OpenSubdiv 3.0, the latest version of the set of open-source libraries for high-performance subdivision surface modelling work.
According to Pixar’s official news release, the update “takes a bold step forward with a near complete rewrite of the library, greatly improving performance and simplifying the API”.
An increasingly industry-standard technology
The same code used internally at Pixar in feature animation production, OpenSubdiv is designed to handle dense real-world production assets, and scales to “massively parallel CPU and GPU architectures”.
Since its first release in 2013 – and following a change to an Apache licence later that year – it has been implemented in tools including 3ds Max, Maya and Houdini.
Speed boosts on CPU and GPU
The 3.0 update introduces a new intermediate internal topological representation named Vtr (Vectorized Topology Representation): a faster, more flexible alternative to the Hbr library used in previous versions.
Its benefits include the fact that OpenSubdiv now supports non-manifold topology like disconnected faces or holes in meshes; and handles face-varying topology in a way that matches file formats like OBJ and Alembic.
In addition, OpenSubdiv’s GPU kernels and adaptive tesselation shader system have been simplified, resulting in “significantly faster load times and a reduced per-frame cost for adaptive drawing”.
According to Pixar, GPU subdivision performance has been improved by a factor of 4x, while the core CPU subdivision algorithms have been speed up by 10x.
There are also a number of other changes to underlying algorithms, which you can read about via the link below.
More approachable for smaller studios and developers
OpenSubdiv 3.0 also implements a new Subdivision Core (SdC) layer intended to provide all the “low-level nuts and bolts” required to provide a subdivision implementation consistent with OpenSubdiv.
According to the release notes, SdC was conceived with the aim of making the libraries more approachable – another key aim of the 3.0 release – by “separating the math from the mesh”.
“We learned a lot of lessons from OpenSubdiv 2.0 in terms of design [and] performance – and especially the importance of usability” said Jeremy Cowles, GPU team lead at Pixar.
“We want OpenSubdiv to be efficient, flexible, and approachable, not just for large-scale integrations, but also for smaller projects, students and studio R&D.”