Large Steps in Cloth Simulation - SIGGRAPH 98 박 강 수박 강 수

Preview:

Citation preview

Large Steps in Cloth Simulation - SIGGRAPH 98

박 강 수

Cloth Simulation

Issues in Cloth Simulation

Large time steps- stability

Damping forces- oscillation

Constraints- contact or fix conditions

Solving a large sparse linear system- conjugate gradient iteration

Cloth and Mass-Spring Model

Discrete cloth model

Differential Equation of Spring

x : geometric state vector(position)M : mass distribution matrix of cloth E : scalar function of x (internal energy)F : other forces (air-drag, damping, contact)

Simulation Overview

Notation and Geometry

Position of world space

Forces

Planer coordinate

3ixn3x

3ifn3f

),( ii vu

Simulation Overview

Energy and ForcesInternal forces

- Stretch, Shear, Bending Damping forceCombining all forces

iii m/fx

),( xxfMx 1 ),,,,,,,,,()( 222111

33

nnn

nn

mmmmmmmmmdiag

M

M

Simulation Overview

Sparse Matrices

Very sparse system- n particles : n x n matrix- nonzero entry : dense 3x3 matrices

of scalar

Modified conjugate gradient iterative method

Implicit Integration

Explicit forward Euler method

Implicit Integration(cont.)

Implicit backward Euler method

Nonlinear, need iteration

By Taylor series expansion to f, first order approximation

Implicit Integration(cont.)

Implicit backward Euler method

Rewrite this approximated equation,

Implicit Integration(cont.)

Taking the bottom row of below equationand substituting top row yields,

Implicit Integration(cont.)

Letting I denote the identity matrix, and regrouping,

Forces

xf /EThe force f arising from energy E

Impractical approach - Expressing E as a single monolithic function - Taking derivatives

Batter approach - Decompose E into a sum of sparse energy functions

Forces

But decomposing method is not enough. - Sensible damping function problem

Instead, we define vector condition C(x) which is, - Formulating internal behavior - To be zero

Define associated energy

)()(2

)( xCxCx Tc

kE k is a stiffness constant

Forces (Forces & Force Deriva-tives)

Block form of f

Sparse matrix

Derivative matrix K

Sparse, Symmetric Matrix

Forces (Stretch Forces)

Stretch force

u

vUV coordinates

Forces (Stretch Forces)

Stretch force can be measured by

Unstretched condition

Forces (Stretch Forces)

i

j k

ij1 xxx ik xxx 2

ij1 uuu ik uuu 2

ij1 vvv ik vvv 2

Approximate w(u,v) as a linear function over each triangle,

Forces (Stretch Forces)

Stretch energy

1 vu bbUsually, we set

Forces(Shear & Bend)

Shear force Bending force

Idea : Inner productIdea : angle of adjacent triangles

Forces(Damping)

Strong stretch force ⇔ Strong damping force☞ Prevent oscillation

Damping force Eq:

Damping direction Damping strength

Forces(Damping)

Differentiate the damping eq.

Asymmetric, Sparse Matrix

breaks symmetry, so we omitted this term.

Constraints

Unsuitable approaches

- Reduced Coordinates

- Penalty Methods

- Lagrange Multipliers

Constraints(Mass Modification)

xy-plane constraint :

Generalization

Constraints(Mass Modification)

Rewrite previous eq.

z is change in velocityalong the constrained direction

Constraints(Implementation)

Multiply M,

Symmetric(Positive definite)

These two systems have a same solution Δv.

Constraints(Implementation)

W is singu-lar

Two conditions : residual will be zero,

Linear System Ax=b

Modified Conjugate Gradient Method

Collisions(Initiation)

For collision detect, Coherency-based

bounding-box approach is used.

Penalty force(moving positions)

“Jumpy” behavior in local regions.

Collisions(Position Alteration)

Particle’s position in next step

If collisions occur,

Considering collisions,

Results

Results

Results

Results

Thank youQuestions || Com-

ments ?

Conjugate gradient Method?

Isn’t there more simple ways to implement mass-

spring systems?