Docstoc

Advanced Topics on Clothing Simulation and Animation SIGGRAPH 2005

Document Sample
Advanced Topics on Clothing Simulation and Animation SIGGRAPH 2005 Powered By Docstoc
					   SIGGRAPH 2005 Course #6:

       Advanced Topics on
Clothing Simulation and Animation


   Organizers:   Hyeong-Seok Ko
                 Kwang-Jin Choi
   Lecturers:    Robert Bridson
                 Dongliang Zhang
A Brief History of the Course

SIGGRAPH 1998
  “Cloth and Clothing in Computer Graphics”
  Organized by House

SIGGRAPH 2003
  “Clothing Simulation and Animation”
  Organized by Breen and Ko

SIGGRAPH 2005
  “Advanced Topics on Clothing Simulation and Animation”
  Organized by Choi and Ko
  Course Schedule

1st Session
  1:45~2:00 Introduction (Ko)
  2:00~3:00 Physical Model of Cloth I (Ko)
  3:00~3:30 Physical Model of Cloth II (Choi)

2nd Session
  3:45~4:30 Collision Handling (Bridson)
  4:30~5:00 Cloth Design and Applications (Zhang)
  5:00~5:30 Current State-of-the Art / Challenges Ahead (Ko)
Introduction
How Cloth Simulation Works?



        Hyeong-Seok Ko
       Seoul National Univ.
      Graphics & Media Lab
First of All, How to Represent Cloth?

  Particles interconnected by springs
Particle-based Cloth Simulation

 Repeat the following:
 1. Find the new position of the particles
 2. Draw the surface from the particles
How Does Cloth Simulation Work?

 Finding Governing Equation
 Solving the Equation
 Collision Handling
Finding the Governing Equation
Physically-based Simulation

                −1∂E
        && = M (−
        x            + F)            ⎡ x1 ⎤
                  ∂x
                                     ⎢M ⎥
                                   x=⎢ ⎥
(m1, x1) (m2, x2) (m3, x3)
                                     ⎢ xN ⎥
                                     ⎣ ⎦
    (mi, xi)
                                  ⎡mi   0    0⎤
                                  ⎢0
                             Mi = ⎢     mi   0⎥ ⎥
                                  ⎢0
                                  ⎣     0    mi ⎥
                                                ⎦
Physically-based Simulation

            −1  ∂E
      && = M (−
      x            + F)
                ∂x
Solving the Equation
Now, numerically solve

              −1   ∂E
     &&(t ) = M (−
     x                + F )(t )
                   ∂x
while(1)    {
  compute   the force part at t;
  compute   accel, vel, pos;
  t = t +   ∆t;
}
We want to use large ∆t

 Animators love large ∆t
 Large ∆t can cause inaccuracy
 Large ∆t can cause a more serious problem
 We must have a stable algorithm
 Course Schedule
                         Finding the Governing Equation
1st Session              Solving the Equation
  1:45~2:00 Introduction (Ko)
  2:00~3:00 Physical Model of Cloth I (Ko)
  3:00~3:30 Physical Model of Cloth II (Choi)

2nd Session
  3:45~4:30 Collision Handling (Bridson)
  4:30~5:00 Cloth Design and Applications (Zhang)
  5:00~5:30 Current State-of-the Art / Challenges Ahead (Ko)
Collision Handling
Collision Handling

 Consists of Detection/Resolution
 Undetected collision can cause a lot of trouble.
 Cloth simulation is abundant of challenging
 cases for collision detection.
    A difficult problem: Multiple simultaneous collisions.
    Try this: simulate a person wearing multiple pieces of
    clothes.


“Collision Handling” by Bridson (Session 2)
 Additional Parts

1st Session
  1:45~2:00 Introduction (Ko)
  2:00~3:00 Physical Model of Cloth I (Ko)
  3:00~3:30 Physical Model of Cloth II (Choi)

2nd Session
  3:45~4:30 Collision Handling (Bridson)
  4:30~5:00 Cloth Design and Applications (Zhang)
  5:00~5:30 Current State-of-the Art / Challenges Ahead (Ko)
Physical Model of Cloth I


        Hyeong-Seok Ko
       Seoul National Univ.
      Graphics & Media Lab
     Physical Model of Cloth I

1.   Understanding the problem
2.   Immediate buckling model (IBM)
3.   Stability analysis of the IBM
4.   Damping analysis in clothing simulation
Understanding the Problem
What are the nontrivial parts in...

          −1 ∂E
   && = M (−
   x            + F)
             ∂x


               E
 What would you use for E?

                ∂E
                 −1         −1
      && = M (−
      x            + F ) ≡ M f ( x, x )
                                    &
                ∂x          −1
                                           ≡ M f ( x, v )
        Cloth is subject to stretch, shear, bending
        E = Estretch + Eshear + Ebending
        What are Estretch, Eshear, Ebending?
           They should be monotonic                 xi       xj
           For example, Estretch = {||xi−xj||−L}2        L
E should accurately represent the property of the cloth
E should not cause problems in numerical integration
Integration of
            ⎛ ∂E
            −1       ⎞    −1
     && = M ⎜ −
     x           + F ⎟ = M f ( x, v )
            ⎝ ∂x     ⎠
         d ⎡ x⎤ ⎡          v       ⎤
            ⎢ v ⎥ = ⎢ M −1f ( x, v)⎥
         dt ⎣ ⎦ ⎣                  ⎦
    ⎡∆x ⎤      ⎡     v 0
                              ⎤ ⎡ v ⎤   0

    ⎢∆v ⎥ = ∆t ⎢ −1 0 0 ⎥ ≡ ∆t ⎢ −1 0 ⎥
    ⎣ ⎦        ⎣ M f ( x , v )⎦ ⎣M f ⎦
       Explicit Integration
We want Implicit Integration
                ⎛ ∂E
                   −1    ⎞    −1
         && = M ⎜ −
         x           + F ⎟ = M f ( x, v )
                ⎝ ∂x     ⎠
                d ⎡ x⎤ ⎡          v       ⎤
                   ⎢ v ⎥ = ⎢ M −1f ( x, v)⎥
                dt ⎣ ⎦ ⎣                  ⎦
      ⎡∆x ⎤      ⎡     v        ⎤ ⎡ v ⎤
                                  0                          0

      ⎢∆v ⎥ = ∆t ⎢ −1 0 0 ⎥ ≡ ∆t ⎢ −1 0 ⎥
      ⎣ ⎦        ⎣ M f ( x , v )⎦ ⎣M f ⎦
            Explicit Integration

  Baraff and Witkin, Large Steps in Cloth Simulation, SIGGRAPH ‘98
 We want Implicit Integration
                ⎛ ∂E
                −1       ⎞    −1
         && = M ⎜ −
         x           + F ⎟ = M f ( x, v )
                ⎝ ∂x     ⎠
              d ⎡ x⎤ ⎡          v       ⎤
                 ⎢ v ⎥ = ⎢ M −1f ( x, v)⎥
              dt ⎣ ⎦ ⎣                  ⎦
        ⎡∆x ⎤      ⎡        v + ∆v
                                0
                                          ⎤
        ⎢∆v ⎥ = ∆t ⎢ −1 0                 ⎥
                   ⎣ M f ( x + ∆x, v + ∆v)⎦
                                    0
        ⎣ ⎦
⎛         −1 ∂f        −1 ∂f ⎞        −1 ⎛ 0   ∂f 0 ⎞
⎜ I − ∆tM       − ∆t M       ⎟∆v = ∆tM ⎜ f + ∆t v ⎟
                    2

⎝            ∂v           ∂x ⎠           ⎝     ∂x ⎠
                                            HW 1: Derive this
 Into a Schematic Equation
         ⎛M       ∂f    ∂f ⎞         ⎛ 0        ∂f 0 ⎞
         ⎜ 2−          − ⎟∆v∆t = ⎜ f + ∆t v ⎟
         ⎝ ∆t    ∆t∂v ∂x ⎠           ⎝          ∂x ⎠
        ⎛         ∂f      2 ∂f ⎞        ⎛ 0       ∂f 0 ⎞
        ⎜ M − ∆t     − ∆t      ⎟∆v = ∆t ⎜ f + ∆t v ⎟
        ⎝         ∂v        ∂x ⎠        ⎝         ∂x ⎠
⎛          −1 ∂f        −1 ∂f ⎞            −1 ⎛ 0     ∂f 0 ⎞
⎜ I − ∆tM        − ∆t M        ⎟∆v = ∆tM ⎜ f + ∆t v ⎟
                     2

⎝             ∂v            ∂x ⎠              ⎝       ∂x ⎠

            ⎛M      ⎞ n     n −1
            ⎜ 2 + K ⎟∆x = f
            ⎝ ∆t    ⎠
 E can cause problems in Num. Int.

                                        ∂E
                                         −1
                              && = M (−
                              x            + F)
                                        ∂x
⎛         −1 ∂f        −1 ∂f ⎞        −1 ⎛ 0   ∂f 0 ⎞
⎜ I − ∆tM       − ∆t M       ⎟∆v = ∆tM ⎜ f + ∆t v ⎟
                    2

⎝            ∂v           ∂x ⎠           ⎝     ∂x ⎠

            ⎛M      ⎞ n     n −1
            ⎜ 2 + K ⎟∆x = f
            ⎝ ∆t    ⎠
 Ill-conditioned or indefinite system matrix   Divergence!
Quest for a New Physical Model

         Find a Physical Model

   that makes K always positive definite
   that produces realistic movements of cloth



       ⎛M      ⎞ n     n −1
       ⎜ 2 + K ⎟∆x = f
       ⎝ ∆t    ⎠
 Source of the Problem

In simulating hookean model,
(compress. stiffness ≈ tens. stiffness)
    σ = Eε , f = k ( x − l )
   Instability occurs when cloth is bended or
   compressed rather than when it is stretched
     It appears that instability occurs when wrinkles
     are formed
Compression/Bending,
are they Unstable Phenomena?




               Yes!
  “Buckling”                    P
                                    P   P
Force : P




            Compressed Length
  “Buckling”                            P
                                            P   P
Force : P




            Post-buckling Instability
Compression/Bending,
are they Unstable Phenomena?




                          Apparently, No




 Post-buckling instability passes instantly,
 and reaches a static equilibrium.
 Why was Compression/Bending
 Unstable in Clothing Simulation?

   Hookean model causes the system matrix
   indefinite when compression/bending occur




⎛         −1 ∂f        −1 ∂f ⎞        −1 ⎛       ∂f ⎞
⎜ I − ∆tM       − ∆t M       ⎟∆v = ∆tM ⎜ f 0 + ∆t v 0 ⎟
                    2

⎝            ∂v           ∂x ⎠           ⎝       ∂x ⎠
Suggestion for a Stable Solution

 Hookean model causes the system matrix
 indefinite when compression/bending occur
 The model works well for stretch
 Suggested solution: use different physical
 models for stretch and compression
   Type 1 for stretching
   Type 2 for compression/bending
How to Connect Springs?




  Red Links = Type 1 (for stretch)
  Blue Links =Type 2 (for compression and bend)
Immediate Buckling Model
How to realize...
 Post-buckling instability passes instantly,
 and reaches a static equilibrium.
Compression causes bending rather than shortening




                  Immediate Buckling Assumption
Experiment




 # of particles = 5608, ∆t=0.011s, CPU=0.51s
How to implement this idea?


Compression causes bending rather than shortening




                  Immediate Buckling Assumption
The Steps We Took

1.   Predict the shape at the static equilibrium after
     buckling
2.   Formulate the energy function from the
     deformed shape
3.   Derive the force, Jacobian, etc.
Predicting the Static Equilibrium
Predicting the Static Equilibrium
     Momentum Equilibrium Equation
               kbκ + Py = 0




P/kb = 23.5
                  P/kb = 35.25

   Equilibrium shape is similar to a circular arc.
Simplifying Assumptions
  Equilibrium shape = circular arc
  Arc length remains constant

                                     L

         L



                                     X




 Equilibrium shape is completely characterized
 when xi and xj are given.
Energy Function in terms of xij=xj-xi
                           1 L
The energy function     E = ∫ Mκ dx
                           2 0
                                              1
Since M∝κ & curvature is constant          E = k b Lκ 2

                                              2
Since arc length is constant               ⎛ xij ⎞
                               κ = sinc -1 ⎜     ⎟
                                  2
                                  L        ⎜ L ⎟
                                           ⎝     ⎠
                                       2
                 ⎡2        ⎛ xij ⎞ ⎤
        E = kb L ⎢ sinc -1 ⎜     ⎟ ⎥
           1
           2     ⎢L        ⎜ L ⎟ ⎥
                 ⎣         ⎝     ⎠ ⎦
 The Steps We Took

 1.   Predict the shape at the static equilibrium after
      buckling
 2.   Formulate the energy function from the
      deformed shape
 3.   Derive the force, Jacobian, etc.



⎛         −1 ∂f        −1 ∂f ⎞        −1 ⎛ 0   ∂f 0 ⎞
⎜ I − ∆tM       − ∆t M       ⎟∆v = ∆tM ⎜ f + ∆t v ⎟
                    2

⎝            ∂v           ∂x ⎠           ⎝     ∂x ⎠
                                                                      2
                                                ⎡2        ⎛ xij ⎞ ⎤
                                       E = kb L ⎢ sinc -1 ⎜     ⎟ ⎥
                                          1
Force Derivation                          2     ⎢L        ⎜ L ⎟ ⎥
                                                ⎣         ⎝     ⎠ ⎦

                        ∑ f (x ) x
              ∂E                             xij
       fi = −      =                               ,
              ∂x i
                                   b    ij
                       j∈Ν ( i )              ij
The Force-Deflection Curve Finally Used

        *     (       )        (
         ⎧cb xij − L : f b < cb xij − L
      f =⎨
                                          )
       b
         ⎩        f b : otherwise
  New Force-Displacement Curve

Force : P




            Compressed Length
                                   ∂f i
Meaning of the Force Jacobian
                                   ∂x j
       ∂ ∑ f ik
∂f i              ∂f ij
     =   k∈Ν
                =       HW 2: Why?
∂x j     ∂x j     ∂x j
       The rate of change of fi as xj changes

∂f i          ∂fij
     = −∑            HW 3: Why?
∂x i    j ≠ i ∂x j

      The rate of change of fi as xi changes

                     Stiffness!
Derivation of Force Jacobian

 ∂f i      *      T     *             T
        df x x     f         x x
      =          +      (I −
          b    ij ij   b           ij ij
                                 )
 ∂x j d x ij x x
               T
                   x ij
               ij ij         x x   T
                                   ij ij


                       HW 4: Derive this
We can Start Implicit Integration

⎛        −1 ∂f      −1 ∂f ⎞       −1 ⎛      ∂f ⎞
⎜ I − hM       −h M       ⎟∆v = hM ⎜ f 0 + h v 0 ⎟
                 2

⎝           ∂v         ∂x ⎠          ⎝      ∂x ⎠

For now, forget about the damping term.


    ⎛        −1 ∂f ⎞       −1 ⎛      ∂f ⎞
    ⎜I − h M       ⎟∆v = hM ⎜ f 0 + h v 0 ⎟
          2

    ⎝           ∂x ⎠          ⎝      ∂x ⎠
  Stability Analysis of
Immediate Buckling Model
                               ∂f
Property of the Force Jacobian
                               ∂x
   ⎛          −1 ∂f ⎞        −1 ⎛       ∂f ⎞
   ⎜ I − ∆t M       ⎟∆v = ∆tM ⎜ f 0 + ∆t v 0 ⎟
           2

   ⎝             ∂x ⎠           ⎝       ∂x ⎠

  ∂f i        *      T      *           T
         df x x     f         x x
       =          +      (I −
             b    ij ij    b         ij ij
                                  )
  ∂x j d x ij x x T
                    x ij
                  ij ij       x x    T
                                     ij ij



What is the property of this 3×3 matrix?
What is the property of the global 3n×3n matrix?
                                                   T
                                                x x
The Properties of                          A=
                                                ij ij
                                                T
                                                x x
                                                ij ij

              T
         xij xij
  det(       T
                    − λI ) = λ2 (1 − λ )        HW 5: Prove it
         x xij
             ij



         T
     x x
 ∴
      ij ij
      T
                  is positive definite.
     x x
      ij ij


        T
  x xij ij
     T
              z produces the projection of z along xij
  x xij ij
                                     HW 6: Verify this
                                      T
                                   x x
                              I−           =I−A
                                   ij ij
The Properties of                  T
                                   x x
                                   ij ij


  ⎛         T
       xij xij   ⎞
  ⎜I −           ⎟ is positive definite.
  ⎜     T
       xij xij   ⎟
  ⎝              ⎠                  HW 7: Why?

  ⎛    xij xij ⎞
            T
  ⎜I −         ⎟ z produces the projection of z
  ⎜    xij xij ⎟
        T
  ⎝            ⎠
  on a plane orthogonal to xij       HW 8: Verify this
They Work as Projection Operators

∂f i               *           T             *             T
             df x x           f         x x
     dx j =            dx j +      (I −
                  b         ij ij           b           ij ij
                                            )dx j
∂x j        d x ij x x
                            T
                              x ij
                            ij ij       x x             T
                                                        ij ij

                                                   new x j

                       xi
                                                 xj
df b*                               f b*
      = in-plane stiffness               = out-of-pl stiffness
d xij                               x ij
Property of the Jacobian

∂f i             *      T     *      T
       df x x     f         x x
     =          +      (I −
                b    ij ij   b    ij ij
                                )
∂x j d x ij x x      T
                  x ij
                     ij ij  x x   T
                                  ij ij

   df b*
      is positive.
  d x ij
            *
        f
  But x is negative.
           b

           ij

  So the sum is not definite
  If 2nd term is omitted, it becomes pos. def.
Property of the Jacobian

∂f i             *      T
       df x x
     =          b    ij ij
                                            ∂f ⎞                    ∂f ⎞
∂x j d x ij x x      T
                     ij ij
                             ⎛
                             ⎜
                                                          ⎛
                               I − ∆t 2 M −1 ⎟∆v = ∆tM −1 ⎜ f 0 + ∆t v 0 ⎟
                             ⎝              ∂x ⎠          ⎝         ∂x ⎠
   df b*
      is positive.
  d x ij
            *
        f
  But x is negative.
           b

           ij

  So the sum is not definite
  If 2nd term is omitted, it becomes pos. def.
  What is the effect of it?
  Is the global matrix negative definite?
Is the Global Matrix Neg. Def.?
     ⎡ ∂f1    ∂f1        ∂f1 ⎤ ⎡−        ∂f1      ∂f1             ∂f1 ⎤
                              ⎥ ⎢ ∑ ∂x j
                     L                                       L
     ⎢ ∂x     ∂x 2       ∂x n                    ∂x 2            ∂x n ⎥
     ⎢ 1                      ⎥   ⎢ j ≠1                                   ⎥
     ⎢ ∂f 2   ∂f 2       ∂f 2 ⎥ ⎢ ∂f 2                ∂f 2        ∂f 2 ⎥
∂f                   L                         −∑            L
   = ⎢ ∂x1    ∂x 2       ∂x n ⎥ = ⎢ ∂x1         j ≠ 2 ∂x j       ∂x n ⎥
∂x ⎢
        M      M     O    M ⎥ ⎢   ⎢    M            M        O      M
                                                                           ⎥
                                                                           ⎥
     ⎢ ∂f     ∂f n       ∂f n ⎥ ⎢ ∂f n            ∂f n                ∂f n ⎥
     ⎢ n             L        ⎥                              L −∑
     ⎢ ∂x1
     ⎣        ∂x 2       ∂x n ⎥ ⎢ ∂x1
                              ⎦ ⎣                ∂x 2           j ≠ n ∂x j ⎥
                                                                           ⎦

                                Yes

                         HW 9: Prove it.
What is the meaning of Omitting the
Second Term?

  ∂f i        *      T
         df x x
       =     b    ij ij

  ∂x j d x ij x x T
                  ij ij
                               dx j      not counted
                           L


                               counted

Does it mean ignoring the orthogonal component?
No.
 Remember, ∂f/∂x was introduced for implicit integration
           ∂f/∂x
 In Global Implicit Integration...
         ⎛        −1 ∂f ⎞       −1 ⎛      ∂f ⎞
         ⎜I − h M       ⎟∆v = hM ⎜ f 0 + h v 0 ⎟
               2

         ⎝           ∂x ⎠          ⎝      ∂x ⎠
 Looking at the i-th row
      ⎡M M                                                                   ⎡ ∆v ⎤
                  M         M      M           M          M            M M⎤ ⎢ 1 ⎥
      ⎢                ∂f               ∂f                      ∂f i       ⎥ ∆v
LHS = ⎢0 L − h 2 M i−1 i L I − h 2 M i−1 i     L − h 2 M i−1           L 0⎥ ⎢ 2 ⎥
      ⎢               ∂x j1             ∂x i                   ∂x jN       ⎥⎢ M ⎥
      ⎢M M
      ⎣           M         M      M           M          M            M M ⎥ ⎢∆v n ⎥
                                                                           ⎦⎣      ⎦
   ⎛               −1 ∂f i ⎟
                            ⎞               −1 ∂f i
 = ⎜ I + ∑ h Mi  2
                              ∆v i − ∑ h M i
                                          2
                                                    ∆v j
   ⎜                  ∂x j ⎟                   ∂x j
   ⎝     j ≠i               ⎠        j ≠i

                 ⎛      n
                              ∂f i      ⎞
RHS = hM i f 0i + ∑ h
              −1 ⎜
                                   v0 j ⎟
                 ⎜            ∂x j      ⎟
                 ⎝     j =1             ⎠
  Comparison with Explicit Method

                                                   ∆vi = hM i−1f i0      Explicit

⎛                        ⎞                                   ⎛                     ⎞
⎜ I + ∑ h 2 M i−1 ∂f i                     ∂f i                         ∂fi
                                                                    n
                         ⎟∆v i − ∑ h M i
                                      2 −1
                                                ∆v j = hM i f 0i + ∑ h
                                                          −1 ⎜
                                                                              v0 j ⎟
⎜                 ∂x j   ⎟                 ∂x j              ⎜          ∂x j       ⎟
⎝     j ≠i               ⎠       j ≠i                        ⎝     j =1            ⎠
                                                                     Implicit

   In LHS, every term except ∆v i is introduced due
 to using implicit integration
   It produces implicit filtering effect
                                  Desbrun, M., Schröder, P., and Barr, A. 1999.
                             Interactive animation of structured deformable objects.
                         In Proceedings of the 1999 Conference on Graphics interface '99
   If 2nd Term of ∂fi/∂xj is Omitted...
      ⎛                       ⎞
                      −1 ∂f i ⎟                   −1 ∂f i
      ⎜ I + ∑ h Mi
                              ⎟ i ∑
LHS =              2
                                ∆v − h M i   2
                                                             ∆v j
      ⎜                  ∂x j ⎠                        ∂x j
      ⎝     j ≠i                        j ≠i

      ⎛                       ⎞
                      −1 ∂f i ⎟                                 −1 ∂f i
    = ⎜ I + ∑ h Mi 2
                                (∆v i + ∆v i ) − ∑ h M i
                                     p       o              2
                                                                        (∆v p + ∆v oj )
      ⎜                       ⎟
                         ∂x j ⎠                                    ∂x j
                                                                            j
      ⎝     j ≠i                                     j ≠i

               ⎛                  ⎞ p
                          −1 ∂f i ⎟                       −1 ∂f i
   ⇒ ∆v i +    ⎜ ∑ h Mi
                      2
                                    ∆v i − ∑ h M i 2
                                                                  ∆v p
               ⎜ j ≠i        ∂x j ⎟                          ∂x j
                                                                      j
               ⎝                  ⎠          j ≠i


            ⎛      n
                       ∂fi       ⎞
RHS = hM i f 0i + ∑ h
         −1 ⎜
                            v0 j ⎟
            ⎜          ∂x j      ⎟
            ⎝     j =1           ⎠
             ⎛       n
                         ∂f i                   ⎞         ⎛       n
                                                                      ∂f i p ⎞
     = hM i f 0 i + ∑ h
          −1 ⎜
                              ( v 0 j + v 0 j ) ⎟ ⇒ hM i f 0 i + ∑ h
                                  p       o            −1 ⎜
                                                                           v0 j
             ⎜           ∂x j                   ⎟         ⎜           ∂x j
             ⎝      j =1                        ⎠         ⎝      j =1           ⎠
So, What is the Effect?

  The force in the orthogonal direction is not
affected by implicit filtering.

  Thus, the force in the orthogonal direction
is in fact integrated by explicit method
What happens to Stability?

 By the omission, the system matrix is
positive definite

  However, since the method is now not fully
semi-implicit, stability is not guaranteed
semi-implicit,
  If the orthogonal force is small compared to
  stretch force, there is little possibility system will
  diverge
  How large is the orthogonal force?
When is the Ortho Force Generated?
More Probable Scenario



  When a compressive force is applied to two
consecutive links
  Each link will immediately start to bend
  However, at the center, an orthogonal force may be
  generated due to this compression
More Probable Scenario



  When a compressive force is applied to two
consecutive links
  Each link will immediately start to bend
  However, at the center, an orthogonal force may be
  generated due to this compression
  The force can be large when the mesh resolution is high
  (high res. is bad!)
  The force can be large when the material’s stiffness is
                                     material’s
  large
Is there any other Scenario?


  We are not sure
  But based on our experiments, previous case is
probably the most probable scenario that can
possibly produce divergence.
       Stability Analysis of
     Immediate Buckling Model

We cannot say it is unconditionally stable.

Artificial cases can be set up to create instabilities

But we did not meet any instabilities in practical cases
Physical Model of Cloth II




        Kwang-Jin Choi

         FXGear Inc.
   Physical Model of Cloth II




Analysis on Damping used in Clothing Simulation
How Damping Affects Cloth Animation?
  No damping   With some damping   Excessive damping
When Implicit Integration is Used…
  ⎛        ∂f      2 ∂f ⎞ ∆v   ⎛         ∂f ⎞
  ⎜ M − ∆t    − ∆t      ⎟    = ⎜ f 0 + ∆t v 0 ⎟ (implcit)
  ⎝        ∂v        ∂x ⎠ ∆t ⎝           ∂x ⎠
                          ∆v
                      M      = f0 ,            (explicit)
                          ∆t

     Implicit Filtering Artificial Damping Force


   It creates artificial damping.

           Desbrun, M., Schröder, P., and Barr, A. 1999.
      Interactive animation of structured deformable objects.
  In Proceedings of the 1999 Conference on Graphics interface '99
Results with Artificial Damping
   ∆t = 1        sec
            90
                        AD does not hurt the simulation very
                       much
                          Even 1/30 shows no excessive damping


                        Typically used time step size
                          1/48 ~ 1/300
                          Because of collision resolution


                         In most cases, extra damping needs
                       to be added
Viscous Damping (Drag Force)
                  f + = −k d v


    ⎛                  2 ∂f ⎞ ∆v           ∂f
    ⎜ M + ∆tk d I − ∆t      ⎟    = f 0 + ∆t v 0
    ⎝                    ∂x ⎠ ∆t           ∂x

Push all the eigen values toward positive direction

        Condition number gets closer to 1
                Faster convergence
  Viscous Damping (Drag Force)
              f + = −k d v

 Drag




No drag
A Better Drag Force (Air Drag)
                   ( )−
      f = −k d A(n vv n v wind ) )n
                  T




                   n

      A                               v - v wind
  A Better Drag Force (Air Drag)
          f = −k d A(n ( v − v wind ) )n
                       T



 Air
 Drag




Viscous
  Drag
A Better Drag Force (Air Drag)
       f = −k d A(n ( v − v wind ) )n
                    T



Air
Drag




No
Drag
Deformation Rate Damping
 Damp the deforming motion, not the rigid motion


                                 f ij = −k d ( v i − v j )
         j4
                            jn   f i = ∑ f ij
    j3             i                   j∈N

                       j1        ∂f i
              j2
                                      = kd I
                                 ∂v j
                                 ∂f i
                                      = − k d nI
                                 ∂v i
Deformation Rate Damping
                f ij = − k d ( v i − v j )


   ⎛        ∂f      2 ∂f ⎞ ∆v           ∂f
   ⎜ M − ∆t    − ∆t      ⎟    = f 0 + ∆t v 0
   ⎝        ∂v        ∂x ⎠ ∆t           ∂x

 ∂f
    has zero eigenvalue for rigid translation
 ∂v
                             ⇒ no dragging
Comparison to Drag Force
    f ij = −k d ( v i − v j )   fi = −k d v i
Comparison with Different kd’s
            f ij = −k d ( v i − v j ) f ij = −k d ( v i − v j )

small k d                                                         large k d
What about Rotation?
                  f ij = − k d ( v i − v j )
                                           vj

             xi                            xj

            vi
  The above force damps all the relative motions
between particle i and j
  We want to damp only the motion in spring
direction (xi-xj)
             -x
Damped Spring
                                    T
                        x ij x ij
          f ij = −k d       T
                                        (vi − v j )
                        x ij x ij
                                              vj

            xi                                xj

            vi
 Minimal damping to rotation
 Damping to bending and stretching can be
decoupled
Comparison
                                                       T
                                           x ij x ij
 f ij = −k d ( v i − v j )   f ij = −k d       T
                                                           (vi − v j )
                                           x ij x ij
More General Deformation Rate
Damping
  Define deformation       D = (| x i − x j | − L) = (| x ij | − L)
                                ∂D      x ij
 Get the deforming direction         =
                                ∂x ij | x ij |
                                              T
                               ⎛ ∂D         ⎞ dx ij x ij      T
 Get the deformation rate
                             D=⎜
                             &              ⎟      =      v ij
                               ⎜ ∂x         ⎟ dt | x |
                               ⎝ ij         ⎠          ij

 Damp the deformation to the deforming direction
                                                  T
                           ∂D ⎛ ∂D            ⎞                       T
            ∂D &                 ⎜            ⎟ v ij = −k d
                                                            x ij x ij
f ij = −k d       D = −k d                                              v ij
            ∂x ij          ∂x ij ⎜ ∂x ij
                                 ⎝
                                              ⎟
                                              ⎠             | x ij |  2


     Baraff and Witkin, Large Steps in Cloth Simulation, SIGGRAPH ‘98
Putting All Together


                   ⎛ ∂c i   ⎛ ∂c   i
                                       ⎞ ⎞
                                        T

  f damp   = −kd ∑ ⎜        ⎜
                            ⎜ ∂x
                                       ⎟ v ⎟ − k a nnT ( v − v wind )
                                       ⎟ ⎟
                   ⎜ ∂x
                 i
                   ⎝        ⎝          ⎠ ⎠

                                                 T
       ∂f   damp
                           ∂c  i
                                   ⎛ ∂c     i
                                                ⎞
                   = −kd ∑         ⎜
                                   ⎜ ∂x
                                                ⎟ − k a nnT
                                                ⎟
         ∂v              i ∂x      ⎝            ⎠
Putting All Together
 Course Schedule

1st Session
  1:45~2:00 Introduction (Ko)
  2:00~3:00 Physical Model of Cloth I (Ko)
  3:00~3:30 Physical Model of Cloth II (Choi)

2nd Session
  3:45~4:30 Collision Handling (Bridson)
  4:30~5:00 Cloth Design and Applications (Zhang)
  5:00~5:30 Current State-of-the Art / Challenges Ahead (Ko)
Current State-of-the-Art
 and Challenges Ahead



      Hyeong-Seok Ko
     Seoul National Univ.
    Graphics & Media Lab
Would it be Possible?
Source of Frustrations

Poor collision handling
Allowed only regular, rectangular grids
 Not practical for creating complex garments

Garments had to be constructed from 2D patterns
 Not practical for 3D animation purpose

Few Controls
Collision Handling 2005
Collision Test
Collision Test




    # of vertices   Animation Length   Computation Time

       6029            20 sec            31.5 mins
Self-Collision Test
Simulation Statistics




 0.1m X 50m cloth
 28,007 vertices
 15 hours
Collision Handling in 3 Pieces
Garment Construction 2005
Unstructured Triangular Mesh
Construction from 2D Patterns
Construction from 3D Modeling
Construction from 3D Modeling
Construction from 3D Modeling
Other Controls 2005
Wrinkle Map
Rubber Map
Rubber Map
Effect of Buttons
Wind Fields
How Far can it Go?
Reconstruction of the Clothes
Reconstruction of the Clothes
The Simulation
The Simulation




  Original Stiffness   Intentional Modification
Now, We may call it a “Fashion”
Challenges Ahead
Physical Model and Simulation
 Modeling nonlinear and hysteretic properties
 Exploring the continuum approach
 Increasing the fidelity of simulated cloth
 Increasing algorithm speed while maintaining reasonable
 quality


Collision Resolution
 Rapid collision detection
 Accurate collision detection
 Robust collision response generation
Thank You

				
DOCUMENT INFO