EUROGRAPHICS 2010 / T. Akenine-Möller and M. Zwicker Volume 29 (2010), Number 2 (Guest Editors)
Fast and Efficient Skinning of Animated Meshes
, L. Kavan1 2,P.-P.Sloan1 and C. O’Sullivan2
1Disney Interactive Studios, USA 2Trinity College Dublin, Ireland
Abstract
Skinning is a simple yet popular deformation technique combining compact storage with efficient hardware accel- erated rendering. While skinned meshes (such as virtual characters) are traditionally created by artists, previous work proposes algorithms to construct skinning automatically from a given vertex animation. However, these meth- ods typically perform well only for a certain class of input sequences and often require long pre-processing times. We present an algorithm based on iterative coordinate descent optimization which handles arbitrary animations and produces more accurate approximations than previous techniques, while using only standard linear skinning without any modifications or extensions. To overcome the computational complexity associated with the iterative optimization, we work in a suitable linear subspace (obtained by quick approximate dimensionality reduction) and take advantage of the typically very sparse vertex weights. As a result, our method requires about one or two orders of magnitude less pre-processing time than previous methods.
Categories and Subject Descriptors (according to ACM CCS): Computer Graphics [I.3.7]: Three-Dimensional Graphics and Realism—Animation
1. Introduction standard in most interactive applications. The sparsity con- straint is crucial for efficient evaluation of Formula (1), es- Linear blend skinning (also known as matrix palette skin- pecially when implemented on graphics hardware. ning) is a mesh deformation technique implemented in al- most all modern 3D engines, most frequently used for vir- An animated mesh with fixed connectivitycan be repre- tual characters driven by skeletal animation. However, re- sented by a 3F × N matrix A,whereF is the number of cent research suggests new possible applications, including frames and N the number of vertices: animation of highly deformable objects, such as cloth. ⎛ ⎞ ( ) ( ) v 1 ··· v 1 Standard linear blend skinning works as follows: let us ⎜ 1 N ⎟ 4×1 = ⎜ . .. . ⎟ denote the i-th rest pose vertex as v˜i ∈ R (with the last A ⎝ . . . ⎠ ( ) ( ) coordinate equal to 1 as usual), the palette of P affine trans- v F ··· v F ( f ),..., ( f ) ∈ 3×4 1 N formations for frame f as M1 MP R and vertex weights as wi,1,...,wi,P ∈ R. A skinned vertex position in The problem addressed in this paper is to approximate the frame f is then computed as: animation matrix A by skinning with a small number of proxy-bones P. We can obtain useful insights about this P ( f ) ( f ) ( f ) 3×1 v = ∑ w , M v˜ , v ∈ R (1) problem by rewriting Formula (1) in matrix form. If we i i j j i i 3F×4P j=1 stack the skinning parameters in matrices T ∈ R and × X ∈ R4P N as follows: Motivated by skeletal animation terminology, the transfor- ( ) ⎛ ⎞ f (1) (1) ⎛ ⎞ mations M are also sometimes referred to as bones (or M ··· M w , v˜ ··· w , v˜ j ⎜ 1 P ⎟ 1 1 1 N 1 N proxy-bones). The vertex weights w , ,...,w , are usually ⎜ ⎟ i 1 i P T = ⎜ . .. . ⎟, X = ⎝ . .. . ⎠ required to be convex (i.e. non-negative and summing to 1) ⎝ . . . ⎠ . . . (F) (F) ··· w1,Pv˜1 ··· wN,Pv˜N and sparse—a maximum of 4 non-zero weights is a de facto M1 MP