Date post: | 26-Mar-2015 |
Category: |
Documents |
Upload: | haley-burns |
View: | 225 times |
Download: | 0 times |
Bending, Breaking and Bending, Breaking and Squishing StuffSquishing Stuff
Marq SingerMarq SingerRed Storm EntertainmentRed Storm Entertainment
[email protected]@redstorm.com
Synopsis
This is the last lecture of the day, so I’ll try to be nice
Stuff that’s cool, but not essential Soft body dynamics Breaking and bending stuff Generating sounds
Squishing Stuff
Soft Body Dynamics
The Basics
Use constraints to limit behavior For our purposes, we will treat each
discreet entity as one particle in a system
Particles can be doors on hinges, bones in a skeleton, points on a piece of cloth, etc.
Spring Constraints
Seems like a reasonable choice for soft body dynamics (cloth)
In practice, not very useful Unstable, quickly explodes
Stiff Constraints
A special spring case does work Ball and Stick/Tinkertoy Particles stay a fixed distance apart Basically an infinitely stiff spring Simple Not as prone to explode
Cloth Simulation
Use stiff springs Solving constraints by relaxation Solve with a linear system
Cloth Simulation0P
1P
5P
1,0C 2,1C5,0C
Cloth Simulation
Forces on our cloth
m
tFtta
tatvttv
tvtpttp
ii
iii
iii
)()(
)()(
)()(
Cloth Simulation
Relaxation is simple Infinitely rigid springs are stable
1. Predetermine Ci distance between particles
2. Apply forces (once per timestep)3. Calculate for two particles4. If move each particle half the distance5. If n = 2, you’re done!
Relaxation Methods
0P 1P
1,0C
2)()(,
2)()(:0 1100
ptPttP
ptPttPp
Relaxation Methods
0P 1P
1,0C
0P 1P 2)()(,
2)()(:0 1100
ptPttP
ptPttPp
Relaxation Methods
0P 1P
1,0C
0P 1P 2)()(,
2)()(:0 1100
ptPttP
ptPttPp
Relaxation Methods
1,0C
0P 1P 2)()(,
2)()(:0 1100
ptPttP
ptPttPp
0P 1P
Relaxation Methods
1,0C
0P 1P 2)()(,
2)()(:0 1100
ptPttP
ptPttPp
0P 1P
Relaxation Methods
1,0C
0P 1P 2)()(,
2)()(:0 1100
ptPttP
ptPttPp
0P 1P
Cloth Simulation
When n > 2, each particle’s movement influenced by multiple particles
Satisfying one constraint can invalidate another
Multiple iterations stabilize system converging to approximate constraints
Forces applied (once) before iterations Fixed timestep (critical)
More Cloth Simulation
Use less rigid constraints Vary the constraints in each
direction (i.e. horizontal stronger than vertical)
Warp and weft constraints
Still More Cloth Simulation Sheer Springs
Still More Cloth Simulation Flex Springs
Using a Linear System
Can sum up forces and constraints Represent as system of linear
equations Solve using matrix methods
Basic Stuff
Systems of linear equations
Where:A = matrix of coefficientsx = column vector of variablesb = column vector of solutions
bAx
Basic Stuff
Populating matricies is a bit tricky, see [Boxerman] for a good example
Isolating the ith equation:
i
n
j
jij bxa 1
Jacobi Iteration
Solve for xi (assume other entries in x unchanged):
ii
ij
kjiji
ki a
xabx
)1(
)(
(Which is basically what we did a few slides back)
Jacobi Iteration
In matrix form:
bDxULDx kk 1)1(1)( )(
D, -L, -U are subparts of AD = diagonal-L = strictly lower triangular-U = strictly upper triangular
Jacobi IterationDefinition (diagonal, strictly lower, strictly upper):
A = D - L - U
DLLL
UDLL
UUDL
UUUD
Lots More Math(not covered here) I highly recommend [Shewchuk 1994] Gauss-Seidel Successive Over Relaxation (SOR) Steepest Descent Conjugate Gradient Newton’s Method (in some cases) Hessian Newton variants (Discreet, Quasi,
Truncated)