The Visual Computer

, Volume 28, Issue 6, pp 765–774

Physical simulation of wet clothing for virtual humans

Authors

    • Peking University
    • Nanyang Technological University
  • Nadia Magnenat Thalmann
    • Nanyang Technological University
    • University of Geneva
  • Brian Foster Allen
    • Nanyang Technological University
Original Article

DOI: 10.1007/s00371-012-0687-y

Cite this article as:
Chen, Y., Magnenat Thalmann, N. & Foster Allen, B. Vis Comput (2012) 28: 765. doi:10.1007/s00371-012-0687-y

Abstract

We present a technique that simulates wet garments for virtual humans with realistic folds and wrinkles. Our approach combines three new models to allow realistic simulation of wet garments: (1) a simplified saturation model that modifies the masses, (2) a nonlinear friction model derived from previously reported, real-world measurements, and (3) a wrinkle model based on imperfection sensitivity theory. In contrast to previous approaches to wet cloth, the proposed models are supported by the experimental results reported in the textile literature with parameters varying over the course of the simulation. As a result, the wet garment motions simulated by our method are comparable to that of real wet garments. Our approach recognizes the special, practical importance of contact models with human skin and provides a specific skin-cloth friction solution. We evaluate our approach by draping a rotating sphere and simulating a typical garment on a virtual human in the rain. Both of these examples are typical scenarios within computer graphics research.

Keywords

Computer animationWet garment simulationNonlinear frictionImperfection sensitivity model

1 Introduction

Simulation of cloth and fluid has long been a goal in computer graphics research. How to simulate a wet garment, especially how to simulate a garment in contact with skin, is a particularly difficult problem.

Although recent years substantial progress on wet cloth simulation have be made, the previous work has focused on underwater cloth [1], saturation models [2], and porous flow passing through cloth [3]. Yet the most common scenarios within animation is often simply a wet virtual garment covering a virtual human. This more common problem remains unsolved. Previous methods did not work well on 3D virtual garment for several reasons. Firstly, the contact with the surface/skin changes the physical properties of the cloth. Hence, a complicated friction model is indispensable for the simulation. Secondly, the physical model, as well as the wrinkle shape, changes during the wet process. Therefore, in order to generate realistic results of wet garments, such as our results shown in Figs. 1, 2, 3, a specific contact-friction model and wrinkle model are needed for cloth simulation.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig1_HTML.jpg
Fig. 1

Wet garment in the rain

https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig2_HTML.gif
Fig. 2

Comparison: the right figure is wet garment in the rain, the left one is dry garment simulation

https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig3_HTML.jpg
Fig. 3

Simulation of wet cloth wrapping a sphere

We present a model to simulate wet, wrinkling garments on a virtual human. A key ingredient of our method is that we do not directly manipulate the shape of wrinkles, but only apply one disturbance to change the state, shifting the state from an unstable to a stable equilibrium. This simple but effective model can generate wrinkles without complicated computation. We propose a friction model based on experimental results using real, moist fabric in contact with the human body. We then derive the friction model from a straightforward mathematical approach, making the friction model easily embedded into the simulation system. Our approach does not depend on any specific physical model for cloth simulation, but rather applies the friction parameter and disturbance algorithm as an extra step within one time iteration.

Our practical but physically sound wrinkle model is based on imperfection sensitivity theory [4]. Imperfection sensitivity theory describes the extreme sensitivity of thin shells to geometric imperfections when predicting buckling. Buckling is a ubiquitous phenomenon in both rigid materials and soft materials and is closely related to the problem of wrinkling. When a force load is applied to a textile, at first it resists changing shape. But as the force increases, the material will reach the critical point, a bifurcation. The imperfection sensitivity theory presents a way to determine the impact of initial imperfection to the post buckling analysis. The critical time point and force magnitude are considered in imperfection sensitivity theory. Perturbation and disturbance are prevalent ways to solve this problem. One advantage of imperfection theory is its physical foundation. The disadvantage of traditional perturbation method is that it requires extensive computation. For these reasons, we propose a simplified method to locate and compute the disturbance, bridging the complex theoretical model with a practical need in computer graphics applications.

We evaluate the proposed method by draping a rotating sphere, as this experiment is a classic benchmark for cloth simulation. We also use the method to simulate a typical garment on a virtual human in the rain, a possible scenario in computer animation or video games.

2 Related works

Starting from the mid-1980s, the computer graphics community began to show great interest in modeling cloth and garments. The pioneering work of physically based cloth simulation was done by Terzopoulos et al. [5] and Weil [6]. After several physically based models were presented, problems related to different parts of cloth simulation, ranging from cloth modeling by Provot [7] and Breen et al. [8], numeric integration by Baraff and Witkin [9] to collision handling by Volino and Magnenat-Thalmann [10], have been successfully solved by computer graphics community. In this paper, we focus on three topics in cloth simulation, wet cloth simulation, friction and collision, and wrinkles modeling.

2.1 Wet cloth simulation

There are two ways of simulating wet cloth: fluid simulation based method and numerical approaches based methods.

2.1.1 Fluid based simulation

Robinson-Mosher et al. [11] studied the cloth-fluid interface through two-way interaction conserving momentum and constraining the surface boundary. This work focuses on the surface interaction of cloth and fluid. Lenaerts et al. [3] presented a method that simulates fluid flowing through a porous deformable material. They model the porous flow by Smoothed Particle Hydrodynamics (SPH) and also contributed a method to compute changes in material properties. This fluid based simulation can simulate the wet cloth saturation and fluid flow, but cannot easily be applied to virtual human skin contact because of the integration of SPH and virtual human simulation system.

Another work is the wet cloth simulation by diffusion method [2]. This paper mainly focuses on the simulation of the saturation process by using Fick’s law to compute the diffusion. As mentioned in the paper, 2D cellular automaton is applied to update the diffusion state and to simulate the process of diffusion.

2.1.2 Numerical computation

Ozgen et al. [1] borrowed the fractional equation idea from Fractional Calculus (FC), in order to eliminate the computation of the fluid simulation. Huang et al. [12] accelerated this method by using GPU implementation. The idea is very practical since the fractional differentiate method holds the potential advantage of dealing with the viscosity. However, in his paper, only a fractional model was presented, leaving the problems about body cloth and collision problems unsolved.

Therefore, to the author’s knowledge, the interaction of wet garments with virtual humans has not been considered in either cloth simulation or virtual human research.

2.2 Friction, collision and fabric measurements

Friction is an important force to cloth simulation and has usually been modeled as a simple linear force. However, for a wet garment, friction forces have a tremendous impact. During the process from half moist to fully wet, the garment friction force changes in a nonlinear way.

Isotropic coulomb friction is presented by Bridson et al. [13, 14] and anisotropic friction model for deforming surfaces and solids is proposed by Pabst et al. [15]. These two methods suit dry cloth simulation, but have limitations for wet clothing because of material property changes.

Collision solving is another important issue for both dry and wet cloth simulation. In Provot’s work [16], the basic edge–edge and point–edge collision operations are presented. Then the framework of collision handling is proposed by Bridson et al. [13, 14]. Aiming at the collision repairing problem, Volino and Magnenat-Thalmann [10] presented a new method through intersection contour minimization.

Borrowing experimental data from fabric research industry can greatly assist research in cloth simulation. For instance, Kawabata Evaluation System (KES), a collection of machines capable of measuring the physical parameters of cloth, has been used to improve the realism of cloth simulation. Bonanni et al. [17] applied the measured parameters to the haptic research. Charfi et al. [18] verified the cloth simulation results with real measured KES parameters by comparing real garment movements and simulated ones.

2.3 Wrinkles and buckles modeling

Wrinkles are another significant factor to wet garment simulation, since the fold shapes of wet cloth differ from dry cloth. Choi and Ko [19] built on the hypothesis of the post-buckling shape to stably simulate wrinkles with trigonometric functions. Decaudin et al. [20] used pure geometrical method to model wrinkles and buckles based on rhombic shape computation. This method is fast because it does not precede the physics computation. But when comparing with real experiments, the produced wrinkles are of regular shape. Thus, previous methods are ill-suited to the simulation of wet cloth.

3 Physical model

Briefly speaking, two parts of modeling are included in the cloth simulation, the force modeling and the numerical integration. We will first introduce the general model then discuss our force model, and kindly present special saturation and friction model.

3.1 Numerical integration

We model the cloth as a mass-spring system, with point masses simulating the mass of the cloth, and x, v are the positions and velocity of those masses. Our cloth simulation system can be expressed as a general equation, similar to [9].
$$ \left [ \begin{array}{c} \Delta{\mathbf{x}} \\ \Delta{\mathbf{v}} \end{array} \right ] =\Delta{t} \left [ \begin{array}{c} \mathbf{v}_{n}+\Delta{\mathbf{v}} \\ \mathbf{M}^{-1}\mathbf{f}(\mathbf{x}_{n}+\Delta{\mathbf{x}},\mathbf {v}_{n}+\Delta{\mathbf{v}}) \end{array} \right ], $$
(1)
where M−1 is the inverse of the mass matrix and xn=x(t) and vn=v(t) represent the position and velocity, respectively, at time t. f is the total force on the cloth, including the internal forces such as stretch/shear force and the external forces. It is nonlinear in Δx and Δv. We can linearize this equation by Taylor series expansion to f.
$$ \mathbf{f}(\mathbf{x}_{n}+\Delta{\mathbf{x}},\mathbf{v})=\mathbf {f}_{0}+\frac{\partial{\mathbf{f}}}{\partial{\mathbf{x}}}\Delta \mathbf{x}+\frac{\partial{\mathbf{f}}}{\partial{\mathbf{v}}}\Delta \mathbf{v}, $$
(2)
where \(\frac{\partial{\mathbf{f}}}{\partial{\mathbf{x}}}\) and \(\frac {\partial{\mathbf{f}}}{\partial{\mathbf{v}}}\) are Jacobians of the system. In this way, we can solve this linear system by numerical integration. Due to the partial connections between the masses, these matrices are sparse and we can reduce the system as AΔv=b where
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ3_HTML.gif
(3)
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ4_HTML.gif
(4)
This system is solved with implicit numerical integration using the conjugate gradient method, as in [9]. When A is positive-definite, the solution is equivalent to finding the minima of ϕ(Δv) where
$$ \phi(\boldsymbol{\Delta}\mathbf{v})=\frac{1}{2}\boldsymbol{\Delta}\mathbf{v}^{\mathbf{T}}\mathbf{A} \boldsymbol{\Delta}\mathbf{v}-\mathbf{b}^{\mathbf{T}}\boldsymbol{\Delta}{\mathbf{v}}. $$
(5)

3.2 Force model

The forces of stretching, shearing and bending springs, as well as friction, viscous, and gravity are integrated. In terms of the analytical process, the forces are determined from the energy of the system. For the wet cloth, we use a different friction model, changing the mass matrix with the saturation process and applying the disturbance to constrain the simulation system.

From the system energy, we can determine the forces applied by the springs. That is, for each mass i,
$$ \mathbf{f}_{i}=-S_{r}^{0}\cdot \bigl( \sigma^{e}+\sigma^{v} \bigr)\cdot \frac{d\varepsilon}{d\mathbf{x}_{i}}, $$
(6)
where \(S_{r}^{0}\) is the subdomain of spring r connecting to mass i, σe is the strain of elastic force and σv is the strain of viscous force. ε is the stress at this subdomain. Then we can generate a mathematical expression for the springs in the simulation,
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ7_HTML.gif
(7)
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ8_HTML.gif
(8)
where l0 is the original length of the spring which is initialized before the simulation, l is the current length of the spring. Denoting \(\hat{\mathbf{u}}_{i}=\frac{dl}{d\mathbf{x}_{i}}\) gives
$$ \mathbf{f}_{i}=-\frac{S_{r}^{0}}{l_{0}}\cdot\bigl(\sigma^{e}+ \sigma^{v}\bigr)\cdot \hat{\mathbf{u}}_{i}= -L_{0}\cdot\bigl(\sigma^{e}+\sigma^{v}\bigr) \cdot\hat{\mathbf{u}}_{i}, $$
(9)
where L0 is the deformation magnitude of the cloth material.
Using measured parameters from real-world experiments can improve the simulation results. The Kawabata Evaluation System (KES) was developed within the textile industry to measure physical parameters of cloth. Taibi et al. [21] determine the relationship between spring force and the KES measured linearity parameter LT.
$$ f(\varepsilon)=\frac{a\varepsilon}{(b\varepsilon+1)^{3}}, $$
(10)
where a and b are two parameters related to the measured LT. We use this method to model the strain force as
$$ \sigma^{e}(\varepsilon)=\frac{a_{1}^{e}\varepsilon }{(1-a_{2}^{e}|\varepsilon|)^{3}}, $$
(11)
where a1 and a2 are the parameters of the material and are determined from direct measurement.
Using this result, we model the spring stretching, shearing and bending forces. The stretching force can be expressed as
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ12_HTML.gif
(12)
where l and l0 are the current and initial length of the springs, xi and xj are the positions connected to the two masses. k is the elastic parameter of the spring which is determined by the material.
$$ k = -\frac{df_{i}}{dl_{r}} = \frac{L_{0}}{l_{0}}\frac{a^{e}_{1}(1+2a^{e}_{2}\varepsilon )}{(1-a^{e}_{2}\varepsilon)^{4}}, $$
(13)
ε is the stress and can be computed by \(\frac {l-l_{0}}{l_{0}}\). Bending force can be calculated by
$$ \sigma^{e}(\varepsilon)=a^{e}_{1} \varepsilon+a^{e}_{2}\varepsilon |\varepsilon|. $$
(14)
The notations are the same as described above. With these numerical integration and force model, we can simulate the normal cloth, but modifications needs to be done to accurately simulate wet cloth.

3.3 Saturation model

Inspired by the work of porous flow [3], we present a saturation model which updates the mass matrix to simulate the wet garment by using permeability K as a manually defined input. Different from Lenaerts et al.’s [3] work, we use experimental results to define the saturation function. This approach allows us to avoid time-consuming calculations of interactions between the cloth and fluid.

During the saturation, the mass matrix element in one integration step can be explicitly expressed as
$$ {m_{i}} = {m_{i}} + t\frac{{\partial{m_{i}}}}{{\partial t}}, $$
(15)
where mi is the weight value of the mass i at time t. In fluid simulation research, this fluid flow is typically modeled as a diffusion process. The approximation presented in [3] and [22] to the diffusion equation of absorbed fluid flow is
$$ \frac{{\partial{m_{i}}}}{{\partial t}} = \sum_j d_{ij} {V_j} {m_{j}} {\nabla^2} W(x_j - x_i,h_j) $$
(16)
where dij is the diffusion coefficients between two particles. Vj is the volume of the particle. W(xjxi,hj) is the capillary potentials. hj is the interaction smoothing length associate with the point. The capillary force is similar to the surface tension in the fluid dynamics, a vital factor to the simulation.

Based on this analysis, we simplify the saturation computation based on the hygroscopicity in fabric research [23, 24]. In the fabric research experiments, the weight of the absorbed water is measured quantitatively. During the experiments, samples of round cloth with radius 6.5 cm are tested with the apparatus which can measure the weight as the water is spilling the cloth. The experiments are typically conducted in textile research domain when the humidity parameters are studied.

The first step of our research is analyzing and modeling the data from textile research. Figure 4 is the hygroscopicity, weight of different fabrics. Figure 4 indicates that the curve shapes of the hygroscopicity are similar although different materials have different saturation rates. Therefore, we fit the curve of the real experiment data by using mathematical fitting method. We can rewrite the mass equation as following:
$$ \frac{{\partial{m_{i}}}}{{\partial t}} = g(t){S_p} $$
(17)
where g(t) is the fitting function of the experimental data.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig4_HTML.gif
Fig. 4

Changes of hygroscopicity

In textile research, an exponential function form is presented [23, 25]. We analyze the water absorbing process and model the mass changing process as follows:
$$ Q = \delta\bigl(1 - {e^{ - t/a_{3}}}\bigr) $$
(18)
where Q is the weight of absorbed water in time t. δ is the weight parameter in saturated status per g, θ is the hygroscopicity parameter constant which can be obtained from the textile research data, and t is the average time of the water absorbing process. Then we can deduct the following function:
$$ \frac{{\partial{m_{i}}}}{{\partial t}} = \frac{{dQ}}{{dt}} = \frac {\delta}{\theta} * {e^{ - t/\theta}}. $$
(19)
Then we can update the mass matrix and parameters according to the equation. In each time step, before numerically solving the system, the system matrix is updated. Thus, using experimental data allows an approximate model of the saturation process that remains rooted in physical measurements. We obtain the parameters which are listed in Table 1.
Table 1

Parameters of fabric

Parameter

Cotton

Coarse wool

High absorbtion fabric

θ

0.84

1.24

2.492

a3

8.844

4.8936

3.3803

3.4 Friction model for wet cloth

Saturation is not the only factor in wet cloth simulation, because the friction and adhesion tension also play important roles. In cloth simulation, the friction is usually set to a linear function with constant coefficients. However, in the wet garment simulation, the friction no longer stays the same once the garment is wet. In order to study the wetting process, we conduct several experiments. These experiments show that the friction force changes in a nonlinear way.

Generally speaking, Coulomb’s law of friction which denotes that friction depends on the normal pressure force is the mainstream in research domain. In wet cloth simulation, we elegantly combine the friction modeling with the fabric experimental results.

Firstly, in a similar manner to the saturation model, we obtain the data from fabric experiments [26]. These experiments were conducted to measure the friction between fabric and skin under 50 g weight force when wetness increases. During these experiments, the friction force is measured. Seven types of fabrics were evaluated, including coarse wool, cashmere, and five kinds of wool with different hairiness. One clear conclusion from this experiment is the similarity of the friction force curves as shown in Fig. 5. The figure shows that the friction has a two-phase character. Initially, the friction force increases, then after reaching the peak value, the friction force gradually decreases to plateau at a constant value. Although different materials perform differently to the friction force, the data curve shapes are similar, providing fundamental rules to our modeling.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig5_HTML.gif
Fig. 5

Friction force

The second step is analyzing data from experiments with sampling and filtering methods. We resample the data with sampling rate of 20 seconds. The data could be also filtered with typical signal processing technique. Then we formulate the friction force which could be integrated in the simulation system in one time step. A variety of fitting methods, such as a spline fitting, radial basis function (RBF) or least-squares could generate the desired function. We model the friction by a non-linear function as below, using the RBF function to fit.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ20_HTML.gif
(20)
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ21_HTML.gif
(21)
where τ1 and τ2 are critical time points when the friction force changes.

As for the friction method application, we studied both the isotropy and anisotropy friction which all set the friction parameter to a constant during the simulation. For example, the anisotropy friction which express the friction as a combined force of both normal and tangential direction presented in [15] sets the parameter to 0.5.

3.4.1 Damping force

Damping force also closely relates to wet garment simulation, playing similar roles as friction. From material and mechanics points of view, as cloth is not a perfect elastic material, it will have the energy cost during the deformation. We use Rayleigh function, which is a common way in structure analysis to express this damping force.
$$ \mathbf{F}^{\mathrm{Rayeigh}}=(\alpha\mathbf{M}+\beta\mathbf{K}) \dot{\mathbf{V}}, $$
(22)
where M is the mass matrix and the radius K is computed by
$$ \mathbf{K}_{ij}=\frac{d\mathbf{F}_{i}}{d\mathbf{X}_{j}}, $$
(23)
α and β are the constants of system damping. These two parameters can be obtained from Kawabata Evaluation System (KES) [27]. Based on the experiments, we set the parameter as α=−9 and β=3.81413e−3.
The viscous force in the system for the normal dry cloth can be computed through
$$ \mathbf{F}^{\mathrm{visc}}_{i}=-\alpha\cdot m_{i} \cdot v_{i}, $$
(24)
where vi and mi is the velocity and mass of mass point i, α is the same material parameter as mentioned before.

In this way, we can combine the friction modeling with real fabric experiments. If we need to pursue specific material simulation, the friction measuring experiments with desired fabrics could also be conducted. The innovation of this method is the platform-independency with the ability to be embedded in other existed cloth simulation system.

3.5 Imperfection and bifurcation

Wrinkles and buckles are kernel part for simulation. We present a method based on imperfection sensitivity and bifurcation method, applying disturbances to the simulation system and then implementing the method by adding constrains to the numerical integration.

Imperfection and bifurcation is a classical method for dynamic stability analysis. In a word, the imperfection and bifurcation theory implies that the initial imperfection could cause a huge post-buckling shape changes, generating wrinkles [28]. The conception of wrinkles and buckling can be illustrated as in Fig. 6. Theoretically, buckling is caused by a bifurcation in the solution to the equations of static equilibrium. At the early stage under increasing load/force, two springs can remain straight at equilibrium with the springs under compression. As the load force remains applying to the structure, when an external force causes a small lateral movement, the equilibrium of the system might be broken if the force reaches the critical load. The magnitude of this force at which the structure bifurcates into stable or unstable status is vital to the buckling research. As for cloth, this buckle generation process also obeys the rule discussed above. When the simulation system reach the unstable state, we need to exert a disturbance to make the system reach equilibrium state again. The post-buckle response is critical to realistic cloth simulation and researchers try to find a way to solve the wrinkle and buckling in a simple way. Choi and Ko [19] introduces a way to estimate the post-buckle shape by trigonometric analysis for the curvature according to the mechanics. In this paper, we present a different, global method to solve this problem. Furthermore, our disturbance method works particularly well for the simulation of wet garments, as they yield more and more pronounced wrinkles.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig6_HTML.jpg
Fig. 6

Demonstration of buckling, the first line shows the rigid bar buckling process and the second line illustrates spring disturbances

The imperfection sensitivity theory throws some light on the simulation of wrinkles. In stability analysis, the perturbation or disturbance method is an effective way to analyze the critical point and the load. Therefore, we are aiming at solving the disturbance type and disturbance magnitude.

We first divide the garment in several subdomains according to the cloth pattern. Then in each subdomain we evaluate the equilibrium state of the system, and compute the disturbance. After the computation, disturbances are added to the numerical simulation system by setting constraints.

3.5.1 Perturbation analysis

In the material stability analysis, three elements are essential: the disturbance modes, the critical load and the critical time for the saturated cloth. The disturbance modes refer to the geometrical shape of the structure that changes along with the generation of wrinkle process. The critical load represents the minimum disturbance force to break the balance. The critical time measures the time of the whole state transition. These three problems are key ones to design the model.

The critical force load will reflect the system state change. Typically, there are two factors that relate to the critical load. One is how to determine the equilibrium state. The other is the critical force added to the system. In the implementation, the force is highly connected to the simulation time step.
  1. 1.

    Types of perturbation/disturbance

    Generally speaking, we can directly add one disturbance force to the system as in [19]. But after studying the characteristics of mass-spring system, we choose the position displacement as disturbance to the simulation. We choose that for two reasons. First, the position disturbance is closely connected to mass spring system and is easy to compute. Second, if the force disturbance is modeled, then the acceleration as well as the velocity need to be calculated and may change the system matrix to some extent. Therefore, we choose position displacement as the disturbance method.

     
  2. 2.

    Position of the disturbances

    Wrinkles are generated by compression force [29]. In wet cloth simulation, wrinkles and buckles are also caused by compression force of the spring and the surface strain of the water. From real cloth experiments, clear evidence show the existence of compression forces. So we use compression of stretch spring as an indicator when setting the position for disturbance and the system energy to judge the equilibrium state.

     
  3. 3.

    Microcomputation for the disturbance

    How to quantify the compression and extension is the fundamental problem. The position displacement, in another word, the disturbance, must keep the system stable, which means that it could comply to physical rule. In the following section, a detailed computation method will be discussed.

     

3.5.2 Computation of disturbance

From experiments and mathematical deduction, we figure out a method to precisely determine the position displacement as a disturbance. In each subdomain, the compression of the spring is computed and the most compressed one is presented. Figure 7 illustrates the micro structure of the mass spring. In the figure, only the stretch springs are drawn for demonstration. Mass A connects with three springs and B, C, D are the mass points connecting to A. Spheres B, C, D have the radius of the original length of the spring. A1 and A2 are the intersection points of these three sphere. Geometrically, for every spring, if one mass that connects to the spring is fixed, the original length of the spring will form a sphere. If the spring has the tendency to generate a wrinkle, the other mass must be inside this sphere because of the compression. Thus, in order to recover the compression, the spring should be at the original length. So in Fig. 7, the intersection points A1 or A2 should move to obtain the original length of the spring. Then we can add this disturbance to the simulation as a constraint, as in [9]. The major problem is how to choose the mass in order to set a constraint. Our method follows.
  1. 1.
    Compute the intersection of three spheres which must have one or two intersection points. The intersection position can be simply computed by
    https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Equ25_HTML.gif
    (25)
     
  2. 2.

    If three spheres have only one intersection point, then the collision detection process is performed. If this mass position does not have an collision, then we can choose this point as the target position and add the constraint to the simulation system.

     
  3. 3.

    If three spheres have two intersection points, then both points need the collision detection. If only one of the points suffers from the collision, then choose the other one.

     
  4. 4.

    If both these positions are collision free, then we need further computations to choose the target position. We compute the absolute value of AA1 and AA2 and choose the smaller one as the targets position.

     
  5. 5.

    If AA1=AA2, then choose the more convex one as the target position. We select curvature as the criteria.

     
  6. 6.
    A simplified method to compute the curvature of A1 and A2.
    $$ k_{A_{1}}=\biggl(\frac{2}{\|\mathbf{v1}\|+\|\mathbf{v2}\|}\biggr)\cos^{-1}\biggl( \frac {v1\cdot v2}{\|\mathbf{v1}\|\times\|\mathbf{v2}\|}\biggr), $$
    (26)
    where v1=A1B, v2=DA1. Then compare the curvature of each point. If the curvature equals to each other, then randomly choose one as the target points.
     
In this way, both the disturbance position and the disturbance magnitude are determined. We use the system constraint to embed these disturbance positions into the system. The constraint setting is the same as the mostly used one in [9] by mass modification.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig7_HTML.jpg
Fig. 7

Demonstration of disturbance computation

4 Experimental results

We conduct an experiment of 50×50 cm silk cloth on a ball. As shown in Fig. 8, we first twist the dry cloth comparing to the simulation results. Water is gradually dropping on the fabric until the piece of fabric is fully saturated. This benchmark experiment indicates that the shape of the simulation is convincing although the simulation results are not exactly the same shape with the real experiments.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig8_HTML.jpg
Fig. 8

Experimental results. Left subfigures are simulation results and right figures are real fabric results. The first line of subfigures are in dry status and the second line of subfigures are in wet status

Figure 8 shows the comparison of the simulation results and the real experimental results. In the complementary video, the comparison of dry and wet simulation can be clearly observed. The data analysis is processed by Matlab and the rendering is accomplished with Mental Ray software. The parameters for the saturation are δ=0.84, a3=8.844.

Figure 9 illustrates the garment on a virtual human in the rain. In order to complete the scenario, we apply a simple particle model to generate rain after the simulation process. The shape of wrinkles are relatively convincing compared to real scenario.
https://static-content.springer.com/image/art%3A10.1007%2Fs00371-012-0687-y/MediaObjects/371_2012_687_Fig9_HTML.jpg
Fig. 9

Comparison: dry and wet garment simulation

5 Conclusion

Our method realistically simulates wet garments. The unique features of our approach are the friction and wrinkle models. We apply experimental results from the textile literature to accurate modeling of the saturation and friction forces. In order to generate more realistic wrinkles, we propose a disturbance technique based on imperfection sensitivity theory from stability analysis. We also conducted real garment experiments to analyze and to compare with the simulation results. The results show that this method can properly simulate wet garments.

Acknowledgements

We would like to thank Robert Ronan Teoxon RAFON for providing the 3D geometry model of the garment and the body, Dr. Flavien JACKIE PICON, and Mohamed ELGENDI for the useful discussions.

Copyright information

© Springer-Verlag 2012