Virtual clothes, Hair and Skin for Beautiful Top Models
چکیده
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. I Cloth modeling and simulation State of art in cloth synthesis and animation The evolution of cloth synthesis has gone though several phases. The first one, and the most important, has been to simulate efficiently fabric motion and deformations using mechanical computer simulation. These techniques have been pioneered by Weil [C23], Terzopoulos et al. (1987) and Haumann and Parent (1988), using different kinds of mechanical models based on triangular discretisation of the simulated surface. More recently, several other techniques have been explored, such as polynomial surfaces (Witkin and Welch [C25], Baraff and Witkin [C3]) and particle systems (Breen et al. [C4]). The second phase was to focus on some specific behaviors of cloth deformation, such as wrinkle generation. Kunii and Godota [C10] and Aono [C1] produced wrinkles by combining geometric and physical aspects of the deformations. The final aspect of cloth generation was the design and animation of garments on virtual actors. This aspect includes several issues such as garment modeling, building, and also precise handling of the interaction between the cloth and the body that wears it, using collision detection and response. The first studies have been performed by Lafleur et al. [C11], Carignan et al. [C6] and Yang and Magnenat Thalmann [C27] where complex garments were generated by assembling panels around a synthetic actor, which then was animated. More than just pieces of fabric hanging in the air or draping around a table, realistic cloth simulation provide a variety of new problems and challenges, such as being able to design any shape of cloth, such as a real tailor would cut into fabric pieces and assemble them without being constrained by limitations due for example to the data structure (regular triangle meshes, square panels). Then, the cloth behavior is strongly determined by the collisions between the fabric and the body, and also the self-collision within the cloth itself, usually in wrinkles in crumpling situations. Collision detection should be very efficiently managed, particularly in the case of selfcollision detection. The mechanical model should also be very efficient for simulating high deformations, such as those occurring during wrinkling. This requires good modelisation of the non linear mechanical behavior of the fabric [C7], as well as an efficient calculation algorithm which gives acceptable results even if the deformations gets big compared to the discretisation size of the surface, and then ensures stability even with high extension and curvature. Figure 1: A sequence involving animation of synthetic cloth Concerning the design itself, a good cloth software should provide efficient tools for designing a cloth, and fitting its shape exactly to the synthetic actor. Simulating cloth with high deformations One of the major difficulties of cloth simulation is to cope with all the high deformations and wrinkle situations that real cloth may have when worn by a body. Typically, the model should be robust enough to ensure realistic animation even in cases where high deformations have to be considered compared to the discretisation size of the surface, and despite the lot of collisions created by crumpling, wrinkling, or simply by contact with the body. 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. Figure 2: Dressed actors and multilayer cloth. 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. Figure 3: Hierarchical collision and self-collision detection using surface curvature. This algorithm is very general and is able to deal efficiently with crumpling situations. However, the cloth often is supported by the body or other underlying cloth by contact regions involving big surfaces, and displacement between each frame remains quite small. Efficient optimizations for speed and robustness may be included in the detection algorithm. The main optimizations concern remnant collisions, that are kept in memory even if they are not detected for a given number of frames, in order to ensure correct tracking of their orientations. This is linked to an incremental collision detection scheme, which tracks displacements and surface proximities, updating existing collisions between the frames and detecting new neighboring collisions. The most important feature is also orientation consistency checking and correction, which identifies collision regions and performs a statistical evaluation in order to correct wrongly oriented collisions. These solutions have been experimented successfully in difficult situations involving crumpling cloth [C20][C21], and they handle in a robust way situations involving multilayer garments. Tools for garment design The 2D panel approach has proven to be an efficient technique for designing garments [C24][C27], as it is closely related to the techniques used in real cloth industry. An interface was create to provide an easy and user friendly environment for performing this task, and allowing the users to build a complete complex scene interactively. This interface provides a wide number of tools, such as: aA main panel to control the objects in the scene. bA material and texture editor to put on the cloth complex color and material design, and to give to the objects a more realistic aspect. cA 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. dA 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. II Hair design, simulation and rendering Hair simulation involves two important tasks: hair animation, and hair rendering. We describe in the following sections the two models we developed to perform these tasks.