cloth animation
play

Cloth Animation Christopher Twigg March 4, 2003 Outline Overview - PowerPoint PPT Presentation

Cloth Animation Christopher Twigg March 4, 2003 Outline Overview Models Integrating stiff systems Collision handling Outline Overview Models Integrating stiff systems Collision handling What is cloth? 2 basic


  1. Cloth Animation Christopher Twigg March 4, 2003

  2. Outline • Overview • Models • Integrating stiff systems • Collision handling

  3. Outline • Overview • Models • Integrating stiff systems • Collision handling

  4. What is cloth? • 2 basic types: woven and knit • We’ll restrict to woven • Warp vs. weft House, Breen [2000]

  5. What makes cloth special? • Infinite number of varieties -- • Thread type (wool, polyester, mixtures...) • Weave type (plain, twill, basket, satin...) • Weave direction (bias cut; warp vs. weft) • Seams (fashion design) • Hysteresis (ironed vs. crumpled in a suitcase) From Ko, Choi [2002]

  6. Challenges in cloth simulation • Model • Complex microstructure • Realism • Simplicity Breen, House, Wozny [1994] • Integrator • Dealing with stiffness • Collision handling Vollino (sic), Courchesne, Magnenat-Thalmann [1998]

  7. Outline • Overview • Models • Integrating stiff systems • Collision handling

  8. � � � � � � � � An (abbreviated) cloth bestiary � � � � � � � � � � � � � � � � � 1983-9 1988 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1988 � � � � � � � � � � � 1995 � � � � � � � 1992 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1997 � � � � � � 1999 � � � � � � 1998 � � � � � � � � � � � 2002 � � � � � � � � � � � � � � � 2002 � � � � � � 2003 � � � � � � � � � � � � � � � 2003 � � � � � � � � � � � �

  9. Cloth modeling basics • In general, cloth resists motion in 4 directions: In-plane In-plane In-plane shear Out-of-plane stretch compression (trellising) bending

  10. A basic mass-spring model • Simple spring-mass system due to Provot [1995] • You already know how to implement this Bend spring Shear spring Stretch spring

  11. Early continuum models • Various modifications to deal with collisions, etc. Terzopolous, Platt, Barr, Fleischer [1987] Generally not used in practice (although many Carignan, Yang, Thalmann, models use ideas from continuum physics) Thalmann [1992]

  12. Particle-based methods • Breen [1992]: energy-based model U i = U repel i + U stretch i + U bend i + U trellis i • Find final draping position by minimizing the total energy in the cloth • NOT dynamic! Note: You could convert this to a “normal” particle system model by differentiating energy w.r.t. position, F = −∇ x U

  13. Breen [1984] • Tries to make the drape more realistic by measuring from reality • Uses the Kawabata system • Fit functions to the measured data Kawabata plots for 3 different types of fabric (Breen, House, Wozny [1994])

  14. (aside) The Kawabata system • A system for measuring the parameters of cloth • Stretch • Shear • Bend • Friction • Developed by Kawabata [1984], used heavily in the textile engineering industry From Virtual Clothing [ Volino, Magnenat-Thalmann]

  15. Breen [1984] (2)

  16. Baraff, Witkin [1998] • A hybrid approach: • Energy-function-based (similar to Breen) • Sparse Jacobian • Linear forces for numerical reasons • Triangle-based • Energy functions defined over finite regions • But how do we determine stretch and shear on triangles (especially if we want to privilege warp and weft directions)?

  17. Baraff, Witkin [1998] (2) • Basic idea: treat the cloth as a 2-dimensional R 3 manifold embedded in w(u, v) v y u z x Note that this mapping only needs to be valid locally (useful for clothing)

  18. Baraff, Witkin [1998] (3) We are interested in the vectors and w u w v v w ( u, v ) ∆ x 1 ) v 1 ∆ y , u 1 z ∆ ∆ x 2 ( x ( ∆ u , ∆ v 2 ) u 2 If we pretend that w is locally linear, we get ∆ x 1 = w u ∆ u 1 + w v ∆ v 1 ∆ x 2 = w u ∆ u 2 + w v ∆ v 2

  19. Baraff, Witkin [1998] (4) • Energy functions are defined in terms of a (heuristic) “soft” constraint function , e.g. C ( x ) rest length Stretch: triangle area � � || w u ( x ) || − b u C ( x ) = a || w v ( x ) || − b v Shear: C ( x ) = a w u ( x ) T w v ( x ) Bend: angle between triangle faces C ( x ) = θ Now, energy and force are defined as E c ( x ) = k f ( x ) = − ∂ E C 2 C ( x ) T C ( x ) ∂ x

  20. Baraff, Witkin [1998] (5) • Damping forces turn out to be important both for realism and numerical stability • Damping forces should • Act in direction of corresponding elastic force • Be proportional to the velocity in that direction Hence, we derive (this should look familiar) C ( x ) ∂ C ( x ) d = − k d ˙ ∂ x where Direction of force C ( x ) = ∂ C ( x ) = ∂ C ( x ) ∂ x ˙ ∂ t ∂ x ∂ t

  21. Baraff, Witkin [1998] (6)

  22. Baraff, Witkin [1998] (7) • Use by Alias|Wavefront in Maya Cloth • Something similar used by Pixar

  23. Ko, Choi [2002] Basic problem: when we push on a piece of cloth like this, we expect to see this: But, in our basic particle system model, we have to make the compression forces very stiff to get significant out-of-plane motion. This is expensive.

  24. Ko, Choi [2002] (2) Ko, Choi use column buckling as their basic model. They replace bend and compression forces with a single nonlinear model.

  25. Ko, Choi [2002] (3)

  26. Ko, Choi [2002] (4)

  27. Ko, Choi [2002] (5)

  28. Outline • Overview • Models • Integrating stiff systems • Collision handling

  29. Stiffness in ODEs Recall “Loosely speaking, the initial value problem is referred to as being stiff if the absolute stability requirement dictates a much smaller time step than is needed to satisfy approximation requirements alone.” (Ascher, Petzold [1997]) What does this mean?

  30. Stiffness in ODEs -- example Consider the following ODE: dx dt = − kx, k ≫ 1 The analytical solution is x ( t ) = Ce − kt If we solve it with Euler’s method, x t + h = x t − hkx t = (1 − hk ) x t What happens when ? hk ≫ 1 Barely stable Unstable

  31. Stiffness in cloth • In general, cloth stretches little if at all in the plane • To counter this, we generally have large in-plane stretch forces (otherwise the cloth looks “wiggly”) • The result: stiffness!

  32. Implicit Euler • The solution is to use implicit methods (Terzopolous et al. [1987], Baraff/Witkin [1998]) • Basic idea: express the derivatives at the current timestep in terms of the system state at the next timestep; e.g., backward Euler: y t + h = y t + h f ( t + h, y t + h ) We can apply this to our test equation, x t + h = x t + h ( − kx t + h ) x t + h (1 + hk ) = x t x t x t + h = 1 + hk And, voila! For any , |x| actually decreases as a hk > 0 function of time.

  33. Implicit Euler (2) The drawback is that if we look at our equation, y t + h = y t + h f ( t + h, y t + h ) appears on both sides of the equation -- hence y t + h the name “implicit.” Solution: rewrite it as g ( y t + h ) = y t + h − y t − h f ( t + h, y t + h ) = 0 and use Newton’s method.

  34. Newton’s method For a nonlinear equation g ( x ) = 0 with some initial guess , we can iterate: for a given x 0 iterate , we find the next by solving the linear x ν equation 0 = g ( x ν ) + g ′ ( x ν )( x − x ν ) x ν +1 x ν

  35. Newton’s method (2) In m dimensions, this becomes g ( x ) = 0 � − 1 � ∂ g x ν +1 = x ν − ∂ x ( x ν ) g ( x ν ) , ν = 0 , 1 , . . . Or, rearranging to make it easier to solve, ∂ g ∂ x ( x ν +1 − x ν ) = − g ( x ν ) , ν = 0 , 1 , . . . We can use solve this with our favorite linear systems solver.

  36. Implicit Euler (3) Newton’s method on the equation g ( y t + h ) = y t + h − y t − h f ( t + h, y t + h ) = 0 results in the equation � − 1 � ∂ g y ν +1 t + h = y ν g ( y ν t + h ) t + h − ∂ y or � − 1 � I − h ∂ f y ν +1 t + h = y ν ( y ν t + h − y t − h f ( t + h, y ν t + h )) t + h − ∂ y Rewriting as usual to eliminate the matrix inverse, � � I − h ∂ f ( y ν +1 t + h − y ν t + h ) = − y ν t + h + y t + h f ( t + h, y ν t + h ) ∂ y With the initial guess , the first iteration is y 0 t + h = y t � � I − h ∂ f ( y t + h − y t ) = h f ( t + h, y t ) ∂ y

  37. Implicit Euler in Baraff/Witkin Recall that our differential equation for cloth is (in state-space formulation), � � � � d x v = M − 1 f ( x , v ) v dt The implicit Euler method is � � � � � � x t + h x t v t + h = + h M − 1 f ( x t + h , v t + h ) v t + h v t Take the first Newton iteration only (for speed): � � �� � � � � 0 I ∆ x v I − h = h M − 1 ∂ f ∂ x M − 1 ∂ f M − 1 f ( x t , v t ) ∆ v ∂ v Baraff and Witkin reduce the dimensionality by back- substituting Δ x into the equation for Δ v

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend