Parameterized human body model for real-time applications Mustafa Kasap MIRALab - University of Geneva, Switzerland Email: mustafa.kasap@miralab.unige.ch Abstract We present an efficient technique for real-time human body model generation from sizing parameters. Based on a template model, various body sizes are generated according to the anthropometric measurement standards. These standards are used during the design stage of the template body model to segment it into regions where each region is deformed by corresponding measurement parameter. Depending on the anatomical shape of the regions, deformation functions with specific control parameters are blended to change the body sizes. Implementation of the deformation functions are based on splines and radial distance of the surface vertices. Before applying any deformation, displacement of the vertices are filtered to preserve the continuity between neighbouring and overlapping regions. With a set of high level parameters, this technique could be used to generate different size models in virtual environments. 1 Introduction There have been significant hardware and software developments in computer graphics during the last three decades. This progression is mostly focused on achieving realism in virtual environments. Depending on the functionality of each element in virtual environments, efficient shading, skinning, and motion algorithms are developed to simulate their physical properties. Most of these techniques are focused on human body models, which are very important elements of these environments. One of the recent technique for body model generation is to use 3D body scanners [3] to acquire a virtual clone of the original model. Although this technique can capture data with resolution of a few millimetres, post-processing the raw data takes too much time to get a final result. In case of the games and virtual world like environments, it is not possible or efficient to generate different size models at runtime with such devices. For efficiency’s sake, it is clearly evident that most of the applications sacrifice the realism. Aside from all other techniques like texture, muscle, soft tissue effects etc. which are Nadia Magnenat-Thalmann MIRALab - University of Geneva, Switzerland Email: thalmann@miralab.unige.ch used to achieve the realism, in this paper we will introduce a new approach on different size model generation in realtime. Since the anthropometry subject studied in computer graphics [18] there have been many techniques developed for realistic human body modelling from a template model. Most of these techniques require complex computation methods or supplementary information along with the template model. Considering real-time applications like cloth simulation with underlying sizable body model, virtual crowd simulation from a few number of template models, games and virtual worlds with customizable avatars etc., it is obvious that the efficiency of the method for body model generation is still one of the important topics in computer graphics. Human body modelling field generally deals with the underlying layers like fat tissues, muscles and skeleton to improve the realism of the existing models during motion. Even though recent research focuses on parametrically generating new size realistic models [33, 7] from an existing one, they are not appropriate for real-time applications and require preliminary processing stages. In this paper we will demonstrate a new technique for real time human body model generation through anthropometric measurements as parameters. In our technique, two template models are used for male and female gender. Regarding human body anthropometry, the template body model is divided into logical segments where each of them corresponds to a specific body measurement landmark defined by ISO-7250 and ISO-8559 standards [4]. Using free form deformation methods and radial functions, desired segments of the template model are deformed independently and blended to reflect the final shape. Continuity of the sections and the normal space deformation of the models are also considered. The proposed deformation method also preserves the existing skinning information of the model with simple skeleton scaling steps. In our sample implementation, 24 anthropometric measurement landmarks are considered to deform the template model. Template models are designed with 3D Studio Max [1] where it is possible to define body segments with unique identifiers. This is a one time process and is done manually. The proposed method can be easily integrated in the environments that require rapid generation of virtual crowds or customizable avatars. The remaining sections of this article is organized as follow: Section 2 examines the recent and previous works on human body modelling field that are related with our method. Section 3 analyses the anthropometry field and its relation to computer graphics. In section 4, first we introduce how to design a template body model with segmentation information and then we describe the deformation method with displacement filtering. In section 5, we introduce the implemented body deformation framework with its sample application on specific body regions and analyze the performance of the framework followed by conclusion. 2 Related Work Human body deformation methodologies can be classified into creative, reconstructive, and example based approaches [33, 25]. Computationally the fastest technique, creative approach, is the most preferable one in real-time applications because it doesn’t require post processing, initial model database, and supplementary data. Considering that these constraints are also important for the virtual human modelling in cyberworlds, in this section we will mostly focus on the space deformation methods that are subject to creative human body modelling techniques. Space deformation is the process of mapping some of the vertices of the underlying model from one space to the other. Since it is a very important concept in the object modelling field, wide range of deformation techniques are developed. Earlier research on this subject starts with Barr’s [12] work on parametric shapes called superquadrics. Scheepers used similar parametric shapes to anatomically model the body muscles [31]. Sederberg and Parry [32] proposed the Free Form Deformation (FFD) technique where a 3D model embedded into a parallelepiped box, deforming the box will also deform the underlying complex model. An interesting application of FFD technique is presented by Chadwick [15] who added dynamic muscle effect on top of the skeleton with FFD technique to animate the human body model. Coquillart [16] came with the extended version of the standard FFD method where non-parallel piped 3D lattices are used to include the irregular shapes for deformation. To have more flexibility on the deformation, Lamousin [24] logically extends the FFD by mapping it on a non-uniform rational B-Splines(NURBS). Our approach is based on the method named Scodef [14] which is a variant of FFD and explained in section 4.2. Earlier researches about anthropometric modelling of the human body model are introduced first by Grosso et al. [18] and then Azuola [11]. Human body model is segmented into groups according to joints and joint deformation is applied for animation. In Grosso’s development, a body model is segmented into 24 polyhedral geometric primitives with length, width and depth parameters. In contrast to our method, model representation is not smooth and the continuity of the segments are not possible because of the distinct polyhedral geometric primitives constructing the body. Jianhua [23] used a new approach for body model representation. Instead of using polygonal methods, she divided the model into slices and a radius of each slice is scaled to achieve the muscular deformation effect. Jianhua [34] also extended this contour based representation of body model with metaballs [19]. Like cylindrical representation, metaballs are used for smooth and detailed modelling. While most researchers focused on the deformation of the model surface, a pioneering work in the anatomical modelling field is proposed by Wilhelms [37]. Aside from body mesh and underlying muscle, skeleton and generalized tissues are also parametrically modelled according to the anatomical principals. Similarly Scheepers [31] developed multilayered anatomically deformable models in the same time period. In her method, tubular shaped bi-cubic patch meshes capped with elliptic hemispheres are attached on both end of the corresponding skeleton. Depending on the corresponding joint angle, underlying muscle and fat tissue structures deformed the skin surface. Singh [35] introduced a new deformation technique based on free form curve. She was inspired by armatures used by sculptures. In this approach with a single wire, direct manipulation for deformation on the model is possible. While most of the geometric techniques are inspired from FFD, Singh [36] in contrast proposed a surface oriented FFD. She implemented a control surface defined by a distance function around the boundary for detailed deformation. Marinov [28] presents an efficient technique based on multi-resolution deformation on a high resolution mesh. Proposed deformation process handled in the GPU with the help of pre-computed deformation operators and the gradient information. For deformation process, basically affine transformation operators are applied on the control points. Another approach for human body deformation is applying the sweep based method on the limbs [21]. In this approach each limb is approximated by swept based ellipsoid which changes its size as it moves through the limb. Transition from each joint, the ellipsoid changes its orientation through the new one. Recently, geometric muscle deformation technique was presented by Pratscher [29] who used the multi-shell structured ellipsoids. Cross sectional representation of the body model is used by Zhaoqi et al. [38] to generate skeleton-driven deformations. Even this approach seems to be very similar to the one proposed by Shen [34], Zhaoqi et al. generalizes the cross sectional contours to preserve the original details of the body. 3 Anthropometry For more detailed review of the basic space deformation techniques subject to human body modelling, the reader can refer to Angelidis [9]. Anthropometry, that is, science of the human body measurements is directly connected with the human body modelling field. Even though anthropometric studies have been started more then 100 years ago, one of the biggest anthropometry survey was conducted in mid-nineties by the US Military to analyse the clothing requirements. Because of its importance, in 1996, International Standardization Organization published anthropometric measurement standards under the ISO-7250 reference name. With the development of 3D human body scanners, it becomes possible to generate hundreds of accurate body measurements from a specific subject. From this point of view CAESAR [8] project is the earliest research on anthropometric surveys conducted by 3D scanners. Dooley [17] prepared a survey report about the anthropometric modelling programs. This report showed that the existing programs are used by engineering companies for designing products anthropometrically suitable for humans. Another recent survey [27] also includes the anthropometric modelling of more specific body parts like faces. One of the pioneering work about parametric body model generation from anthropometric measurements is presented by Grosso [18] where she used cylindrical representation of the body model. Depending on the joint positions, body model segmented into parts where each part parameterized with three main measurements; height, width and depth. Changing each parameter according to the previously recorded anthropometric measurements will generate different size virtual body models. Earlier version of example based human body deformation method is presented by Seo et al. [33]. Together with a set of scanned human body data, a template model with appropriate skeleton attachment is designed. Regarding the user specified model parameters, appropriate scanned data can be found in the database. Finally a template body model is mapped on the resulting scanned data with a skeleton adjustment and a displacement mapping. Similarly Allen et al. [7] developed an example based approach to transfer a template body model on to a scanned data. They used 250 scanned data to demonstrate parameterization and reconstruction. Anguelov et al. [10] presented a pose space deformation of the body model by using a body scanner. Scanning the same person with different poses, a deformation space is generated. Proposed framework generates the desired body shape according to the parameters like angles of the joints and the eigen-coefficients of the shape. Since the hardware accelerated computation has becomed more popular, researches shifted to GPU based deformation techniques. Rhee et al. [30] is one of the earlier researchers who proposed real-time weighted pose space deformation technique. From a sufficient set of example of an articulated model they interpolated the displacements. Regarding this information, skinning deformations are parallelized on GPU to take into account the real-time efficiency. Considering the state of the art of human body model deformation techniques, our impression is that most of the studies are focused on a specific part or layer of the body model. Among deformation methodologies, mainly the example based approaches worked on parametric model generation from a template one. Even though requesting a specific model from a database that corresponds to the desired parameters, this approach takes long loading time and is a bit cumbersome for real-time applications. Recent approach by Twigg [22] proposes automatic segmentation of the body into main limbs without any markers on the body. Even though there are other researches [7, 10] placing special markers on a scanned subject to divide the model into segments, they are still far away from fully automating the process. Furthermore, segmentation method mentioned in these papers can only differentiate the model into main body limbs like arms, legs, head etc. In fully parameterized anthropometric modelling, it is evident that the body model has to be segmented into much more specific regions with more definite boundaries. 4 Parametric body deformation Initial step of the parameterized body model generation process starts with the design of the underlying template model. This process is the one time effort during the design of the deformation framework. Template model segmentation process is not as simple as dividing it into the limbs. Even though the recent skinning technique by Twigg [22] proposes to automatically determine the main limbs, in anthropometric approach we need to determine more then 20 specific parts of the body with much more accuracy. So this process is handled manually during the design stage of the template model by marking the specific regions and identifying them with unique numbers. So each identifier corresponds to a set of vertices, or, more precisely, specific region of the main body mesh. Determination of the regions is a kind of heuristic process based on the major measurement landmarks extracted from ISO-7250 and ISO8559 standards that are illustrated in figure 1. We categorize these regions into three groups: • Regions where the deformation is applied vertically, more specifically height measurements, i.e. waist height, inside leg length. • Regions where the girth deformation is applied on joints, i.e. knee girth, wrist girth. • Regions where the girth deformation is applied inbetween two joints or regions, i.e. thigh girth, calf girth, waist girth. Deformation of each region is achieved by modifying the value of corresponding measurement parameter affecting at least two deformation functions. Also two different blending operations are considered during the deformation. First, the result of corresponding deformations for each region are blended and stored in the related deformation bins. Each body region has its own deformation bin which holds the final displacement values that will be applied on the template model. Second, displacement values of all overlapping regions are blended by applying another smoothing function described in section 4.3. This second step is the mandatory process to preserve the continuity between the overlapping regions. Final results are reflected on the template model to represent the desired size model. In interactive real-time applications a user can change one parameter at a time, so the mentioned steps are applied on the region that corresponds to the modified parameter and the overlapping regions. This will reduce the calculation overload by dealing with a subset of thousands of vertices on the mesh. 4.1 Model segmentation Deforming a body model according to an anthropometric parameter requires the exact specification of the region that will be deformed. Preserving the smoothness and continuity of the neighbouring or overlapping regions strictly depends on this specification. Existing automatic body segmentation methods can determine only the main limbs of the body model and require additional information. In our case, a segmented template body model is manually generated only once in the model design stage and doesn’t require any modifications afterwards. Figure 1 represents some of the measurement landmarks that are used for deformation on the template body model. To achieve deformation around a specific landmark, corresponding group of indices around the landmark are manually defined. Indices groups are defined with 3D Studio Max [1] which is also used to design the template body model. Selecting a subgroup of the vertices on the main mesh, it is possible to assign a unique identifier for the selected vertices. The exported model file already contains this information making it possible to determine the identifier of each vertex. Figure 2 illustrates some of the regions corresponding to the landmarks represented in figure 1. Figure 1. Some of the major body measurement landmarks. Figure 2. Some of the regions defined on the template model. Vertices in each region are defined as segment M . In a T posture, regions on the arm are oriented on horizontal direction and the other regions in a vertical direction. According to the orientation of each segment depending on the model’s posture, number and type of the deformation functions are manually defined. In case of Bézier based deformation functions, control points are preliminary adjusted to give the bumpy effect along with the muscles and the fat tissue. 4.2 Regional Deformation We extended the deformation method called Scodef [14] by using a constraint region instead of a constraint point and used a different type and variable number deformation functions for each region. Let M be the segment of a mesh that is defined in section 4.1. A set of distinct nodes in the segment is given by V = {vi }ni=0 ⊂ R3 (1) where n is the number of vertexes in the segment. We use notation vi = (xi , yi , zi ) vi,1 = xi , vi,2 = yi , vi,3 = zi (2) for i th point vi ∈ V . Let d be the deformation function where d : R3 → R3 and d(vi ) = di = vi + k f (L(v)) = (a, b, c) sj ni fj (L(vi )). (3) j=1 Here k is the number of deformation functions that will be applied on the M and di is the new position of vi after deformation. ni is the normal vector of vi which is not changed after deformation because the deformation is in the same direction as the normal. sj is the scale factor of the j th deformation function where s = (sx , sy , sz ), 1 ≤ si , i = 1, 2, 3 and each component separately defines the scale factor on the corresponding dimension. fj is representing the j th deformation function where f : R3 → R3 , 0 ≤ f (v)i ≤ 1, i = 1, 2, 3 and L is normalized local coordinate function where L : R3 → R3 , 0 ≤ L(v)i ≤ 1, i = 1, 2, 3. Calculation of the normalized local coordinate function L is based on the bounding box X of M . Figure 3 represents the process in one of the dimensions and L is defined as L(vi ) = First type of deformation function is defined as vi,j − Xmin,j vi,2 − Xmin,2 , , Xmax,j − Xmin,j Xmax,2 − Xmin,2 vi,3 − Xmin,3 Xmax,3 − Xmin,3 where two components of the resulting triplet are equal to 0 and the third component t is equal to C(L(v)t ). t is determined according to the orientation of the segment M and the axis where the required deformation will take place. For the second type of deformation function we used angular distance of the vertex. Figure 4a is a horizontal plane which shows this process over the left leg. Figure 4. a) Angular distance. b) Nonlinear deformation. (4) By using equation 4 we find the local coordinate of the vertex on desired dimension. Taking the center of the bounding box as origin, we determine how far the vertex from the origin as in Figure 4a. This normalized (angular) distance is used as second deformation function’s contribution to the equation 3. This deformation can be constrained to a single side, namely front or back part of the origin as in Figure 4b. Therefore a half elliptic rather then a circular growth can be achieved. This process is represented in figure 4b where the back muscle of the leg is much more deformed compared to the front leg. 4.3 Figure 3. Local coordinate on bounding box. As from the number k, two different types of deformation functions are used per segment M . For the first type of deformation function we use Bézier curve defined in equation 5. Bi,n = C(u) = n n! ui (1 − u)n−i i!(n − i)! Bi,n (u)Pi , 0 ≤ u ≤ 1 (6) (5) i=0 where C(u) is the n th degree Bézier curve, Bi,n is the n th degree Bernstein polynomials [13, 26]. Smoothing Deforming a segment without any filtering stage will result in discontinuous passes at the boundaries of the regions. To demonstrate this situation, only the calf part of the model is deformed without any smoothing operator applied. The calf region of the model is clearly illustrated in figure 2. The result of the deformation operator that is described in section 4.2 is represented in figure 5a with and without smoothing operator applied. To prevent such irregularities, we perform filtering over the final displacement vectors. This stage is necessary in two cases, firstly the default case; the boundary of the segment is neighbours another segment, secondly; two or more segments overlap. In both cases the boundary vertexes must be deformed smoothly. These two cases are represented in figure 6 where the red (calf) and green (knee) segments are for small segments like ankle, knee etc. Figure 5 demonstrates the deformed body part, calf, with and without filtering function. 4.4 Curvature of the deformation functions and an example application Figure 5. Discrete and Smooth pass a, b. neighbours, the red and blue (ankle) segments are partially overlapping. Figure 6. Calf, Ankle, Knee body segments. On each segment, we applied the Tukey window [20] as the smoothing function with different parameters. The Tukey window, also called cosine-tapered window, smoothly sets the displacement value on the boundaries of the segment to zero. By changing the parameter α from 0 to 1, it evolves from a rectangle to the Hanning window [20]. Tukey window plot with different α values is represented on figure 7. 1 ← α=0 0.8 ← α=0.25 0.6 ← α=0.5 0.4 ← α=0.75 0.2 ← α=1 In section 4.2 deformation functions and their applications on a region are explained. First the type of the deformation function is Bézier which needs the specification of the control points values. The segmented body parts have mainly the similar structure, so in this section we give two different segments as an example for the deformation. The first segment is the calf part of the body and it looks like a cylinder like the other limbs but thanks to the muscles at the back of the calf, its shape behaves like a smooth curved surface. The second segment is the belly and because of the fat tissue around the belly, its shape looks like a curved surface too. Curvature of these surfaces are represented with Bézier functions where the control points are adjusted in a heuristic way. Figure 8. Deformation functions on horizontal and vertical planes. 0 0 0.2 0.4 0.6 0.8 1 Figure 7. Tukey smoothing window. The window is defined by w(u)= 1.0, 0.5 [1.0+cos(A)] 0≤|u|<α N 2 αN 2 ≤|u|≤N , (7) where u−α N A = π 2(1−α)2N , u = L(v)t ∗ N. 2 and N is the number of samples uniformly spaced on x axis, w(u) is the corresponding value on y axis and L(v) is obtained from equation 6. Here α determines the ratio of taper on constant sections. Small α values are used for smoothing large segments like thigh, calf etc., large α values are used The calf part of the body and the corresponding deformation functions’ plot are demonstrated in the first example of Figure 8. Angular deformation presented in Figure 4 is applied on the horizontal plane and Bézier based deformation functions are used on the vertical plane. Curvature of these Bézier functions decreases at the end points of the back half part of the calf turning into a straight line. On the front part, linear deformation is applied since there are no muscles. In addition to these deformations, a smoothing function explained in section 4.3 is applied on the segment M both horizontally and vertically to preserve continuity between regions. The second example in Figure 8 represents the deformation of the belly part. Again two different deformation functions are applied to generate the belly effect. Here again the smoothing functions in both direction applied to achieve continuity at the boundary of segment M. 5 Implementation We implemented a framework where the above mentioned techniques are applied on a template human body model generated by designers. Segmentation information is imported to the framework by using a common 3D data exchange format called COLLADA [2]. We have modified the open source 3DStudioMax to Collada exporter plug-in to export the segmentation (smoothing group) information. The Collada file of template body model also includes the skinning information for animation which is defined in the design stage. Apart from the deformations, the geometry of the model is not changed so the skinning information is not effected and still usable by the animation engine. For the length measurements, only which change the size of the body in horizontal and vertical directions, we use ordinary scaling operators to resize the corresponding bones. Our framework is based on OpenSceneGraph [6]; it is a high performance 3D graphic toolkit entirely written in Standard C++ and OpenGL. It was tested with 2.4GHz Pentium4 PC with an nVIDIA QuadroFX 1400 graphic card and 1GB system memory running on Microsoft Windows XP. In this framework we bypass the standard rendering pipeline of OpenGL by using GPU based shaders for skin rendering with light effects. We have tested our framework by using 3D human body model consisting of 116K vertices with 1024 × 1024 skin texture. Off-screen deformation time of specific body part takes then less than 0.5 second to render. Results for real-time deformation tests with and without per pixel lightining effect can be found in table 1. It is important to note that virtual crowd optimizations are not applied on the scene. #Model / Effect 1 2 3 4 5 NA 73 65 60 57 53 Light 44 34 25 24 23 Table 1. Deformation performance in fps. 6 Conclusions Study of fast deformation techniques for generating human body models with different measurement ranges is one of the main problems of computer graphics. Over the recent years, many of attempts have been performed on this topic to achieve visually perfect models. In this work we present a fast and computationally cost effective schema for real-time human body model deformation. Anthropometric measurement parameters are used to deform the tem- plate model which makes it possible to generate standardized range of body sizes. As a future work, segmentation of the template body model and determination of the value of the control points should be done automatically. This will allow any designed or scanned model to be rapidly sized to generate variations. Changing the skin and face texture of the new size models at runtime is another addition for realism which we used in crowd simulation but not explained in this paper. Acknowledgements The authors would like to thank to Nedjma Cadi for her contribution in designing template body models. This work is supported partly by the EU project LEAPFROG [5]. Figure 9. Template model and deformed clones. References [1] Autodesk 3ds max. http://www.autodesk.com, May 2007. [2] Collada public forum. http://www.collada.org, May 2007. [3] Human solutions. http://www.humansolutions.com, May 2007. [4] International organization for standardization. http://www.iso.org, May 2007. [5] Leapfrog - leadership for european apparel production from research along original guidelines. www.leapfrog-eu.org, May 2007. [6] Openscenegraph. http://www.openscenegraph.org, May 2007. [7] B. Allen, B. Curless, and Z. Popovic. The space of human body shapes: reconstruction and parameterization from range scans. ACM Trans. Graph., 22(3):587–594, 2003. [8] C. American and E. S. A. R. P. CAESAR. http://store.sae.org/caesar, 2007. [9] A. Angelidis and K. Singh. Space deformations and their application to shape modeling. In SIGGRAPH ’06: ACM SIGGRAPH 2006 Courses, pages 10–29, New York, NY, USA, 2006. ACM Press. [10] D. Anguelov, P. Srinivasan, D. Koller, S. Thrun, J. Rodgers, and J. Davis. Scape: shape completion and animation of people. ACM Trans. Graph., 24(3):408–416, 2005. [11] F. Azuola, N. Badler, P. Ho, I. Kakadiaris, D. Metaxas, and B. Ting. Building anthropometry-based virtual human models. Proc. IMAGE VII Conference, June 1994. [12] A. Barr. Superquadrics and angle-preserving transformations. IEEE Computer Graphics and Applications, 1(1):11– 23, 1981. [13] S. N. Bernstein. Demonstration du theoreme de weierstrass fondee sur la calcul des probabilites. Commun. Soc. Math. Khrakow, 12(2):1–2, 1912. [14] P. Borrel and A. Rappoport. Simple constrained deformations for geometric modeling and interactive design. ACM Trans. Graph., 13(2):137–155, 1994. [15] J. E. Chadwick, D. R. Haumann, and R. E. Parent. Layered construction for deformable animated characters. In SIGGRAPH ’89: Proceedings of the 16th annual conference on Computer graphics and interactive techniques, pages 243– 252, New York, NY, USA, 1989. ACM Press. [16] S. Coquillart. Extended free-form deformation: a sculpturing tool for 3d geometric modeling. In SIGGRAPH ’90: Proceedings of the 17th annual conference on Computer graphics and interactive techniques, pages 187–196, New York, NY, USA, 1990. ACM Press. [17] M. Dooley. Anthropometric modeling programs a survey. IEEE Computer Graphics and Applications, IEEE Computer Society, 2(9):17–25, 1982. [18] M. Grosso, R. Quach, E. Otani, J. Zhao, S. Wei, P. Ho, J. Lu, and N. Badler. Anthropometry for computer graphics human figures. 1987. [19] N. H., H. M., K. T., K. T., S. I., and O. K. Object modelling by distribution function and a method for image generation. Transaction for the Institute of Electronics and Communication for Engineers of Japan, J68-D:718–725, 1985. [20] F. J. Harris. On the use of windows for harmonic analysis with the discrete fourier transform. Proceedings of the IEEE, 66(1), 1978. [21] D.-E. Hyun, S.-H. Yoon, M.-S. Kim, and B. Jittler. Modeling and deformation of arms and legs based on ellipsoidal sweeping. In PG ’03: Proceedings of the 11th Pacific Conference on Computer Graphics and Applications, page 204, Washington, DC, USA, 2003. IEEE Computer Society. [22] D. L. James and C. D. Twigg. Skinning mesh animations. In SIGGRAPH ’05: ACM SIGGRAPH 2005 Papers, pages 399–407, New York, NY, USA, 2005. ACM Press. [23] S. Jianhua, N. Magnenat-Thalmann, and D. Thalmann. Human skin deformation from cross-sections. In Computer Graphics Int. ’94, 27-1 1994. [24] H. J. Lamousin and W. W. N. Nurbs-based free-form deformations. IEEE Computer Graphics and Applications, 14(9):59–65, 1994. [25] J. Li and Y. Wang. Automatically construct skeletons and parametric structures for polygonal human bodies. Computer Graphics International, 2007. [26] G. G. Lorentz. Bernstein Polynomials. Chelsea Publishing Co., New York, NY, USA, 1986. [27] N. Magnenat-Thalmann, H. Seo, and F. Cordier. Automatic modeling of animatable virtual humans - a survey. 3dim, 00:2, 2003. [28] M. Marinov, M. Botsch, and L. Kobbelt. Gpu-based multiresolution deformation using approximate normal field reconstruction. journal of graphics tools, 12(1):27–46, 2007. [29] M. Pratscher, P. Coleman, J. Laszlo, and K. Singh. Outsidein anatomy based character rigging. In SCA ’05: Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on Computer animation, pages 329–338, New York, NY, USA, 2005. ACM Press. [30] T. Rhee, J. Lewis, and U. Neumann. Real-timeweighted pose-space deformation on the gpu. Computer Graphics Forum, 25(3):439–448, 2006. [31] F. Scheepers, R. E. Parent, W. E. Carlson, and S. F. May. Anatomy-based modeling of the human musculature. In SIGGRAPH ’97: Proceedings of the 24th annual conference on Computer graphics and interactive techniques, pages 163–172, New York, NY, USA, 1997. ACM Press/AddisonWesley Publishing Co. [32] T. W. Sederberg and S. R. Parry. Free-form deformation of solid geometric models. In SIGGRAPH ’86: Proceedings of the 13th annual conference on Computer graphics and interactive techniques, pages 151–160, New York, NY, USA, 1986. ACM Press. [33] H. Seo and N. Magnenat-Thalmann. An example-based approach to human body manipulation. Graph. Models, 66(1):1–23, 2004. [34] J. Shen and D. Thalmann. Interactive shape design using metaballs and splines. In Implicit Surfaces’95, pages 187– 196, Grenoble, France, 1995. [35] K. Singh and E. Fiume. Wires: a geometric deformation technique. In SIGGRAPH ’98: Proceedings of the 25th annual conference on Computer graphics and interactive techniques, pages 405–414, New York, NY, USA, 1998. ACM Press. [36] K. Singh and E. Kokkevis. Skinning characters using surface oriented free-form deformations. In Graphics Interface, pages 35–42, 2000. [37] J. Wilhelms and A. V. Gelder. Anatomically based modeling. In SIGGRAPH ’97: Proceedings of the 24th annual conference on Computer graphics and interactive techniques, pages 173–180, New York, NY, USA, 1997. ACM Press/Addison-Wesley Publishing Co. [38] W. Zhaoqi, M. Tianlu, and X. Shihong. A fast and handy method for skeleton-driven body deformation. Comput. Entertain., 4(4):6, 2006.