Skinning Cubic Bézier Splines and Catmull-Clark Subdivision Surfaces
GitHub repo of 2D source: https://github.com/songrun/VectorSkinning
GitHub repo of 3D source: https://github.com/yig/SubdivisionSkinning
Abstract:
Smooth space deformation has become a vital tool for the animation and design of 2D and 3D shapes. Linear methods, under the umbrella term of “linear blend skinning”, are the de facto standard for 3D animations. Unfortunately such approaches do not trivially extend to deforming vector graphics, such as the cubic Bézier splines prevalent in 2D or subdivision surfaces in 3D. We propose a variational approach to reposition the control points of cubic Bézier splines and Catmull-Clark subdivision surfaces, or indeed any linear subdivision curves or surfaces, to produce curves or surfaces which match a linear blend skinning deformation as closely as possible. Exploiting the linearity of linear blend skinning, we show how this optimization collapses neatly into the repeated multiplication of a matrix per handle. We support C0, C1, G1, and fixed-angle continuity constraints between adjacent Bézier curves in a spline. Complexity scales linearly with respect to the number of input curves and run-time performance is fast enough for real-time editing and animation of high-resolution shapes.
Video (MP4, 16 MB):
BibTeX:
@article{Liu:2014:SCB, author = {Songrun Liu and Alec Jacobson and Yotam Gingold}, title = {Skinning Cubic B\'ezier Splines and Catmull-Clark Subdivision Surfaces}, journal = {ACM Transactions on Graphics (TOG)}, volume = {33}, number = {6}, numpages = {9}, year = {2014}, publisher = {ACM Press}, address = {New York, NY, USA} }
Copyrighted artwork: Michelle Lee (boy, man, lion, penguin), Pixar (car), Blender Foundation (rabbit and squirrel), and Wikimedia user Prez001 (coat of arms).
Funding: Authors Liu and Gingold are supported in part by the NSF (IIS-1451198) and a Google research award. The Columbia University Computer Graphics Group is supported by the NSF, Intel, The Walt Disney Company, and Autodesk.