240 likes | 390 Vues
This paper discusses an efficient and stable algorithm for animating cloth modeled as a mass-spring system. The algorithm focuses on implicit integration techniques to achieve realistic cloth behavior in virtual environments, considering the interaction between cloth and various settings. Key topics covered include the 1D and extension to 2D/3D implicit integration schemes, post-step modification methods, and comparisons of various integration approaches. Results indicate a significant improvement in the stability and efficiency of cloth animations, addressing limitations in traditional methods.
E N D
Interactive Animation of Structured Deformable Objects Mathieu Desbrun Peter Schroder Alan Barr
Overview – Main problem • Few techniques are currently able to handle the animation in interactive rates so far • Both efficiency and stability are desired
Overview • A stable and efficient algorithm for animating mass-spring system based cloth • Focus is the cloth modeling and the interaction between cloth and different environments based on this technique
Overview - Outline • Principle of implicit integration • Integration scheme • Post-step modification • Cloth simulation in virtual environment • Results
Implicit integration – 1D • Each discrete mass point i of mass m at position xi moves at speed of vi • Adjacent points are connected by spring of stiffness k • Superscript indices indicate the current step number
Implicit integration – 1D • The explicit Euler integration looks like • Assuming the force Fi is constant over a time step
Implicit integration – 1D • The time step should be inversely proportional to the square root of the stiffness k [Courant condition] • System is stable only for small time steps
Implicit integration – 1D • The implicit integration is • Replacing the forces at time t by for forces at time t+dt
Implicit integration – 1D • How to compute Fn+1 without knowing the exact position of next time step? • By a first-order approximation
Implicit integration – 1D • Notice • H is the negated Hessian matrix of the system • H is CONSTANT (for 1D case) and symmetric
Implicit integration – 1D • Re-write • Put everything together • Then we have
Implicit integration - Comparison • Extra force added to Fn as • It’s used as artificial viscosity: a mass point is influenced by the motion of its neighbors • It’s proportional to dt and k
Implicit integration – Comparison • Where acts like ‘filters’ • The bigger the stiffness k is, the wider filters are. The resulting force on a mass point will take into account more forces around
Integration Scheme - Extension • Extension 1D to 2D/3D • A mass point i is connected to all the other points j with springs of rest length and stiffness kij
Integration Scheme - Extension • H is not CONSTANT any more, instead • It’s a 3n x 3n matrix and needs to be solved at each time step
Integration Scheme - Splitting • By decomposing the forces into 2 parts, a linear and a nonlinear one: • Do approximate integration of two parts
Integration Scheme – Linear part • From above analysis, it’s easy to solve this linear part cause the 3n x 3n Hessian matrix H is CONSTANT
Integration Scheme – Nonlinear part • The nonlinear part always has the same magnitude between t and t+dt, which means it only rotates • An angle error is introduced, which needs to be balanced with a straightforward displacement later
Integration Scheme – Nonlinear part • After the internal forces have been filtered, compute resulting global torque T as • xG is the center of gravity. Because the sum of all internal forces is 0, re-write T as
Integration Scheme – Nonlinear part • T is supposed to be 0, so we can modify the integration output to balance it. Simply add the correction force on each mass point i • This is not a zero-error scheme. In practice the result becomes implausible only for big k or dt: wrinkled mesh
Post-step Modification - Motivation • Mass-spring is not perfect to model cloth • The elongation is proportional to the force applied but the natural force/deformation curve is normally nonlinear
Post-step Modification – Implementation • A force/deformation ratio threshold for each spring as dmax. Iterate over stretched spring and shrink them • When to stop? • After fixed iteration steps • Time is up