Virtual Clothes, Hair and Skin For Beautiful Top Models
Virtual Clothes, Hair and Skin For Beautiful Top Models
Abstract
Since l986, we have led extensive research on simulating realistic looking humans. We have
created Marilyn Monroe and Humphrey Bogart that met in a Cafe in Montreal. At that time, they
did not wear any dress as such. Humphrey's body was made out of a plaster model that has the
shape of a suit. Colors on Marilyn's body looked like a dress. Hairs were simulated as a global
shape and skin was a color.
Since then, we have developed extensive research to simulate real virtual deformable clothes
wearing by virtual humans. We also needed to have appropriate simulation of a skin and
recently, we have developed new research on skin in order to decrease the plastic color of our
synthetic actors. Also there was a need to simulate hair in an efficient way. New methods have
been developed, both for design and animation purpose that are compatible with the clothes
module. In this paper, we like to introduce our most recent research results on these topics. We
are now able to simulate top models that start to look like real ones. Our latest work, that shows
Marilyn receiving a golden camera Award in Berlin, Germany , demonstrates the results of our
research. This sequence has been shown in a ZDF television program that was seen by more than
l5 millions of viewers.
The main idea of the mechanical model is to integrate Newton's motion equation in a direct way
to keep quickly evaluated time steps small and maintain very frequent collision detection [C20].
More sophisticated and time consuming models based on global minimizations or Lagrangian
dynamics formulations allowing a higher time step would be a waste of time. Thus,
discontinuous responses such as collisions will be handled in an accurate way. Furthermore, this
direct formulation allows us easy and precise inclusion of any nonlinear mechanical behavior.
With such a model, we can also act directly on the position and speed of the elements, and thus
avoid handling collisions through strong repulsive forces that perturb the simulation.
The animated deformable object is represented as a particle system by sets of vertices forming
irregular triangles, thus allowing surfaces of any shape to be easily modeled and simulated.
Using the material mechanical behavior parameters of the considered material, strains are
computed within the considered triangles and the resulting forces are applied on the vertices.
The object is considered to be isotropic and of constant thickness. Elastic properties of the object
are mainly described by the standard parameters such as the Young modulus, the Poisson
coefficient, the density and the thickness.
Rough discretisation, however, alters the behavior of the surface. In particular, heterogeneous
triangulations are "rigidifying" the whole surface, preventing easy buckling. These effects have
to be corrected through tuning and adjustments of the mechanical parameters. In particular,
textile easily buckles into double curvature, but buckle formation requires a change of area that
increases with the size of the discretised elements. To facilitate buckle formation on roughly
discretised objects without loosing textile stretching stiffness, we use a variable Young modulus
for reducing the stretching stiffness for compression and small extension.
Collision management
Collisions are widely spread within all the simulated cloth, either being in contact with the body,
or through contact between the wrinkles of the cloth. Thus, an efficient way of handling these
numerous collisions is required.
Instead of considering collisions as being dynamic "potential walls" repelling the considered
objects using high and discontinuous forces, thus requiring very small time steps for precise
computation, collisions are rather taken into account in a separate step as a geometrical and
cinematical constraint resolution independent from the mechanical computation resulting from
"continuous" forces, such as elasticity, and gravity and wind, as described above. The
computation time step is in this way not altered by collisions, and the computation remains
efficient despite a huge number of collisions.
As soon as two elements collide, momentum transfer is performed according to the mechanical
conservation laws, and taking into account bouncing and friction effects. All the collisions are
processed independently in this way, during one single and common time step. Whenever
elements are involved in several collisions, such as multilayer cloth, collision response is
performed iteratively until all the collision constraints are resolved. This technique also allows
propagation of the collision effect through the different layers of a cloth stack. Compressible
viscoplasticity has been added to the collision response model, not only for simulating accurately
multilayer compressibility, but also for ensuring good stability of the model in these situations.
Collision detection
Collision and particularly self-collision detection is often the bottleneck of simulation
applications in terms of calculation time, because of the scene complexity that involves a huge
number of geometrical tests for determining which elements are colliding.
Depending of the way the cloth object is represented, different techniques have been developped
for solving efficiently the collision detection problem, using methods based on space subdivision
such as voxelisation or octree [C11][C26] or hierarchisation [C22], rasterisation [C16], shortest
distance tracking [C12], or mathematical techniques suited to curved parametrical surfaces
[C2][C8][C17][C18]. In our case, the problem is complicated further because we are handling
discretised surfaces that may contain thousands of polygons. Considering the clothing problem
where garments are widely in contact with the body, collisions are not sparse at all and should be
detected efficiently and accurately. Furthermore, because of all wrinkles and possible contacts
between different parts of the same cloth, we have to efficiently detect self-collisions within the
surfaces. This prevents the use of standard bounding box algorithms because potentially
colliding regions of a surface are always touching each other by adjacency.
We have developed a very efficient algorithm for handling this situation. This algorithm is based
on hierarchisation and takes advantage of the adjacency which, combined with a surface
curvature criteria, lets us skip large regular regions from the self-collision detection. We then get
a collision evaluation time that is roughly proportional to the number of colliding elements, and
independent of the total number of elements that compose our deforming surfaces.
c- A geometric panel allowing precise editing of the shape of the cloth, and modify the size and
position in order to fit them exactely to the body.
d- A display panel to modify the way the scene is rendered to the screen, and allow different
visualisations depending of the context (how the objects are displayed and what kind of elements
are made visible, position of the lights, background,...)
Figure 4: A view of the interface, displaying how a garment is adjusted interactively to a body
by removing a piece of fabric and seaming.
For the construction of clothes, some others specifics tools were added: With the parameters
panel, the users can interactively change the physical parameters of the objects to simulate
special pieces of fabrics (wool, cotton, jeans,...) and add external forces (like gravity, wind,...).
Specifics tools were also created to perform the seaming, and others tools allow the user to
manipulate the triangles separately in the 3D scene to adjust the clothes and to fit them precisely
around the body.
The hair's core is described using a spline that is interpolated from a few animated vertices
linked to each other by edges. The final hair's shape is computed from that spline (figure 6). A
spline is extracted from the position of the vertices of the hair's core. The representation is
achieved by computing a number of coordinates which depend on the complexity of the shape.
The coordinates are then considered as control points and the hair is represented as a NURB.
Figure 6: Progression from the hair's core formed with animated edges and vertices, to the spline
defined with interpolated control points, to the hair itself.
Hairs do not exist by themselves. Each hair strand extremity must be attached to a vertex of the
support object: the hair's root. An orientation matrix is associated to the hair's root. The matrix is
unique for the whole hair if the support is rigid, or different for each root otherwise. The
orientation matrix allows us to perform hair animation on any type of support, and simulate for
example a fur coat.
The physical simulation requires computation of internal forces. They are computed from the
basic hair core. Bending and tortional forces are respectively computed from the angles between
two successive edges and binormal as shown in figure 7.
Figure 7: The curvature at vertex vi is computed using the angle between the edges' normal ni-1
and ni, the binormal being a unit vector parallel to their cross product.
As the Young modulus for the hair core is unknown and impossible to explicitly evaluate, it is
empirically defined so that satisfying visual results are obtained.
Figure 9: Hair's interpolation mechanism. From the head's vertices is computed the first level
which is used to compute the second one. The interpolation of the hair indicated with the arrow
is computed using control points of the 4 represented head's vertices.
Figure 10: Interpolating curled hair.
Collision detection
In order to properly achieve hair animation, the model must include a collision detection and
treatment process. Our model takes into account the two types of collision involved:
a- Collision between hair strands: the result of these collisions is to give volume to the hair.
Instead of detecting collision, a repulsion force is introduced when two strands are closer than a
proximity factor. That factor depends on hair density and shape. Friction forces are also
introduced in order to avoid colliding strands from slipping against each other, and to attract each
others. Collision treatment is restricted to neighbor hair's cores.
b- Collision between hairs and support: the goal is to avoid hair strand penetration inside the hair
support object. Collision treatment is also restricted to the hair's core. A path, corresponding to
the nearest points between a strand's vertices and support object is tracked onto the object. The
method is efficient when the shape is not too irregular. Friction and repulsion forces can then be
introduced in the physical simulation.
Hair rendering
In the field of human simulation, hair presents one of the most challenging problems. The
difficulties of processing hair result from the large number and detailed geometries of the
individual hairs, the complex interaction of light and shadow among the hairs, and the small
scale of one hair's width in comparison to the rendered image.
The rendering of hair therefore constitutes a considerable anti-aliasing problem in which many
individual hairs, reflecting light and casting shadows on each other, contribute to the shading of
each pixel. Several researchers have published [H2][H6][H7][H3][H12] methods for rendering
human hair, or the more limited problem of rendering fur.
Rendering an image of hair with our system involves several steps:
Figure 11
Figure 11: From top left to bottom right shows the results of the steps involved in the rendering
process. Regarding shadow buffers for each light source, first, computation of shadow buffer for
the hairless scene, then computation of the shadow buffer for the hair, and finaly, composition of
both shadow buffers. Regarding the rendering, first, computation of the rendered hairless scene
with hair shadows, then computation of the rendered hair, then blending of the hair over the
hairless scene.
Skin Properties
Skin has a three layered structure: The epidermis, dermis and hypodermis. The skin surface
consists of a geometrical structure which varies at different parts of the body due to the different
combined effects of these layers. However, a close look at the skin surface shows that there are
basically two kinds of structures which influence the general appearance: a micro structure with
well defined geometrical shape and form similar for most parts of the body, and a macro
structure consisting of the distinct visible lines, patterns, creases, wrinkles (expressive wrinkles
and wrinkles due to age) and folds specific to one part. Both structures change with time. The
micro structure becomes rough with age, the distinctive lines appear deeper or more pronounced,
and the expressive wrinkles which are once only visible during facial animation remain on the
face permanently.
These skin properties suggest building a skin surface model considering the micro and macro
structures and taking into account their changes with region and age.
To present a hierarchical structure (small ridges inside a small ridge), the Delaunay triangulation
process is repeated until the required level. At the same time, the shape function is recursively
applied [S11].
In order to simulate the skin change in a micro structure, a shape function causing sharper bulge
can be applied to the same triangular form mesh of the same model, which produces a rougher
skin surface compared to young skin.
Figure 12 shows a synthetic skin texture image produced for facial skin rendering. It is a two
layered structure with the shape function whose value is a square root of the product of three
triangle barycentric coordinates. Figure 13 shows a synthetic actress's face with bump mapping
rendering with the synthetic skin images. The same texture image is used for both the facial skin
and the lips but with different mapping parameters, which make the lip surface appear rougher
than the other facial skin.
Here we present the process of modeling the palm skin. Firstly, the upper transverse line, the
lower transverse line, the thenar line and the other 14 finger creases are defined interactively in a
3D hand model. The bulge shape function, the band size type and its value are specified for each
line. The first three palm lines are specified with a decreasing band size type as their line width
decrease from one end to anther. The other finger creases are defined as uniform band size type.
In addition, a cluster of fine lines is also used to briefly indicate the papillary ridges on the palm.
They are very shallow lines on the palm. All lines are projected onto the 2D texture images.
Figure 14 shows a synthetic palm image. With the bump mapping technique, a more realistic
hand image is obtained (Figure 15).
Wrinkle Generation
In our model, we consider the process of expressive wrinkle generation in addition to the
modeling of static skin surface structure. First, potential wrinkle lines are defined as curves
transverse to muscle fibers before skin deformation. For skin deformation, we use a
biomechanical model which considers the skin as a biaxial, imcompressive material with plane
stress elastic behavior. During the animation, the wrinkle generation model obtains the principal
strain of the deformed skin surface from the biomechanical model. The principal strain of skin is
then used to dynamically control the shape and form of expressive wrinkles in a texture image.
The final rendered facial expression sequence with wrinkles is achieved by bump texture
mapping.
In this section, we has presented a skin surface model with micro and macro structures which can
be used to enhance the natural looking of skin. The skin geometric model is flexible, changing
with region and age, and the deformation model supplies information for the wrinkle generation.
Aknowledgements
We would like to thank Karin Blanch, Mehdi Davary, Sylvie Holowaty and Jean-Claude
Moussaly for their help in producing the pictures. We would like to thank the Swiss National
Research Foundation for their constant support that makes this fundamental interdisciplinary
work possible.
Bibliography
References for the cloth section
[C1] Aono M. (1990), "A Wrinkle Propagation Model for Cloth", Proc. Computer Graphics
International, Springer-Verlag, 1990, pp.96-115.
[C2] Baraff D. (1990), "Curved Surfaces and Coherence for Non-Penetrating Rigid Body
Simulation", Computer Graphics, 24(4), pp 19-28.
[C3] Baraff D., Witkin A. (1992), "Dynamic Simulation of Non-Penetrating Flexible Bodies",
Computer Graphics, 26(2), pp 303-308.
[C4] Breen D.E., House D.H., Wozny M.J. (1994) "Predicting the Drape of Woven Cloth using
Interacting Particles", Proc. SIGGRAPH'94, Computer Graphics, 28(4), pp 365-372.
[C5] Canny J.F., Manocha D. (1991), "A new approach for Surface Intersection", International
journal of Computational Geometry and Applications, 1(4), pp 491-516.
[C6] Carignan M., Yang Y., Magnenat Thalmann N., Thalmann D. (1992) "Dressing Animated
Synthetic Actors with Complex Deformable Clothes", Proc. SIGGRAPH'92, Computer
Graphics, 26(2), pp 99-104.
[C7] Denby E.F. (1976), "The Deformation of Fabrics during Wrinkling - A Theoretical
Approach", Textile Reserch Journal, Landcaster PA., 46, pp 667-670.
[C8] Duff T. (1992), "Interval Arithmetic and Recursive Subdivision for Implicit Functions and
Constructive Solid Geometry", Computer Graphics 26(2), pp 131-138.
[C9] Hinds B.K., McCartney J. (1990), "Interactive garment design", The Visual Computer, Vol.
6, pp.53-61.
[C10] Kunii T.L., Gotoda H. (1990) "Modeling and Animation of Garment Wrinkle Formation
processes", Proc. Computer Animation `90, Springer-Verlag, pp 131-146.
[C11] Lafleur B., Thalmann N.M., Thalmann D. (1991), "Cloth Animation with Self-Collision
Detection", Proc. of the IFIP conference on Modeling in Computer Graphics, pp 179-187.
[C12] Lin M.C., Manocha D. (1993), "Interference Detection between Curved Objects for
Computer Animation", Models and techniques in Computer Animation (C.A. proceedings 1993),
pp 43-55.
[C13] Magnenat Thalmann N., Yang Y. (1991) "Techniques for Cloth Animation", New Trends
in Animation and Visualization, edited by N. Thalmann, D. Thalmann, by John Wiley & Sons
Ltd., pp.243-256.
[C14] Moore M., Wilhelms J. (1988), "Collision Detection and Response for Computer
Animation", Computer Graphics, 22(4), pp 289-298.
[C15] Morton W.E., Hearle J.W.S. (1962) "Physical properties of textile fibers", Manchester and
London, The textile institute, Butterworths.
[C16] Shinya M., Forgue M.C. (1991), "Interference Detection through Rasterisation", The
journal of Visualisation and Computer Animation, 4(2), pp 132-134.
[C17] Snyder J.M., Woodbury A.R., Fleisher K., Currin B., Barr A.H. (1993), "Interval Methods
for Multi-Point Collisions between Time-Dependent Curved Surfaces", Computer Graphics
annual series, pp 321-334.
[C18] Von Herzen B., Barr A.H., Zatz H.R. (1990), "Geometric Collisions for Time-Dependent
Parametric Surfaces", Computer Graphics, 24(4), pp 39-48.
[C19] Volino P., Magnenat Thalmann N. (1994), "Efficient Self-Collision Detection on
Smoothly Discretised Surface Animations using Geometrical Shape Regularity", Computer
Graphics Forum (EuroGraphics Proc.), 13(3), pp 155-166.
[C20] Volino P., Courchesne M., Magnenat Thalmann M. (1995), "Versatile and Efficient
Techniques for Simulating Cloth and Other Deformable Objects", Proc. SIGGRAPH '95, Los
Angles, pp. 137-144.
[C21] Volino P., Magnenat Thalmann N. (1995), "Collision and Self-Collision Detection:
Efficient and Robust Solutions for Highly Deformable Surfaces", Eurographics Workshop on
Animation and Simulation (to appear).
[C22] Webb R.C., Gigante M.A. (1992), "Using Dynamic Bounding Volume Hierarchies to
improve Efficiency of Rigid Body Simulations", Communicating with Virtual Worlds, (CGI
proceedings 1992), pp 825-841.
[C23] Weil J. (1986), "The synthesis of Cloth Objects", Proc. SIGGRAPH'86, Computer
Graphics, 4, pp 49-54.
[C24] Werner H.M., Magnenat Thalmann N., Thalmann D. (1993) "User Interface for Fashion
Design", Graphics Design and Visualisation, IFIP Trans. North Holland, pp 197-204.
[C25] Witkin A., Welch W. (1990), "Fast Animation and Control of Non-Rigid Structures",
Proc. SIGGRAPH'90, Computer Graphics, 24, pp 243-252.
[C26] Yang Y., Magnenat Thalmann N. (1993), "An Improved Algorithm for Collision
Detection in Cloth Animation with Human Body", Computer Graphics and Applications (Pacific
Graphics proceedings), 1, pp 237-251.
[C27] Yang Y., N.Magnenat-Thalmann, D.Thalmann (1992) "3D Garment Design and
Animation-- A New Design Tool For The Garment Industry", Computers in Industry, 19,
pp.185-191.
[C28] Zyda M. , Pratt D., Osborne W., Monahan J. (1993), "Real-Time Collision Detection and
Response", The journal of visualisation and Computer Animation, 4(1), pp 13-24.
[H2] Csuri C., Hakathorn R., Parent R., Carlson W., Howard M. (1979) "Towards an interactive
high visual complexity animation system", Computer Graphics 13(2) pp. 289-299.
[H3] Kajiya J.T., Kay T.L. (1989) "Rendering Fur with Three Dimensional Textures", Computer
Graphics Vol. 23, No. 3, pp. 271-280.
[H4] Kurihara T., Anjyo K., Thalmann D. (1993) "Hair Animation with Collision Detection", in:
Models and Techniques in Computer Animation, Springer-Verlag, Tokyo, pp.128-138.
[H5] LeBlanc A., Turner R., Thalmann D. (1991) "Rendering Hair using Pixel Blending and
Shadow Buffers", Journal of Visualization and Computer Animation 2(3), pp. 92-97
[H6] Miller G.S.P. (1988) "From Wire-Frame to Furry Animals", Proc. Graphics Interface, pp.
138-146.
[H7] Perlin K., Hoffert (1989) "Hypertexture", Computer Graphics 23(3), 1989, pp. 253-262.
[H8] Reeves W.T., Blau R. (1985) "Approximate and Probabilistic Algorithm for Shading and
Rendering Structured Particle Systems", Computer Graphics 19(3), pp. 313-322.
[H9] Reeves W.T., Salesin D.H., Cook R..L. (1987) "Rendering Antialiased Shadows with Depth
Maps", Computer Graphics, 21(4), pp. 283-291.
[H10] Rosenblum R.E., Carlson W.E,. Tripp III E. (1991) "Simulating the Structure and
Dynamics of Human Hair: Modelling, Rendering and Animation", The Journal of Visualization
and Computer Animation,Vol. 2, No. 4, pp. 141-148.
[H11] Shinya M., Forgue M.C. (1991) "Interference Detection through Rasterisation", Journal of
Visualisation and Computer Animation, J. Wiley & Sons, 4(2), pp 132-134.
[H12] Watanabe Y., Suenaga Y. (1989) "Drawing Human Hair Using Wisp Model", Proc.
Computer Graphics International '89, pp. 691-700.
[H13] Williams L. (1978) "Casting Curved Shadows on Curved Surfaces", Computer Graphics,
12(3), pp. 270-274.
[S7] Terzopoulos D., Waters K. (1990), "Physically-Based Facial Modeling and Animation",
Journal of Visualization and Computer Animation, Vol. 1, pp. 73-80.
[S8] Wu Y., Magnenat Thalmann N. and Thalmann D. (1994), "A Plastic-Visco-Elastic Model
for Wrinkles In Facial Animation And Skin Aging", Proc. Pacific Conference '94, pp. 201-213.
[S9] Marks R. (1983), "Mechanical Properties of the Skin", in Ed. Goldsmith L, Biochemistry
and Physiology of the Skin, Oxford University Press.
[S10] Farin, G. (1990), "Curves and Surfaces for Computer Aided Geometric Design, A Practical
Guide", Academic Press, Second Edition.
[S11] Wu Y., Kalra P. and Magnenat-Thalmann N. (1996), "Simulation of Static and Dynamic
Wrinkles of Skin," Proceedings of Computer Animation'96 (to appear).
[1] Published in Proc. Computer Graphics International `96, IEEE Computer Society, pp. 132-
141.