Constrained Dynamics Marq Singer marqessentialmath com Essential Math

  • Slides: 42
Download presentation
Constrained Dynamics Marq Singer (marq@essentialmath. com) Essential Math for Games

Constrained Dynamics Marq Singer (marq@essentialmath. com) Essential Math for Games

The Problem • What are they • Why do we care • What are

The Problem • What are they • Why do we care • What are they good for Essential Math for Games

The Basics • Constraint – something that keeps an entity in the system from

The Basics • Constraint – something that keeps an entity in the system from moving freely • 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. Essential Math for Games

Box Constraints • Simplest case • Movement constrained within a 2 D area Essential

Box Constraints • Simplest case • Movement constrained within a 2 D area Essential Math for Games

Box Constraints P 0 100 Essential Math for Games

Box Constraints P 0 100 Essential Math for Games

Box Constraints (cont) • Restrict P to extents of the box • Recover from

Box Constraints (cont) • Restrict P to extents of the box • Recover from violations in position (last valid, rebound, wrap around) • Simple, yet the basis for the rest of this Essential Math for Games

Bead on a Wire • The Problem: § Restrict bead to path • Solutions:

Bead on a Wire • The Problem: § Restrict bead to path • Solutions: § Explicit (parametric) method § Implicit method Essential Math for Games

Parametric Constraints Essential Math for Games

Parametric Constraints Essential Math for Games

Bead on a Wire • From Baraff, Witkin N = gradient f = force

Bead on a Wire • From Baraff, Witkin N = gradient f = force fc = constraint force f ‘ = f + fc Essential Math for Games

Implicit Representation legal position legal velocity legal acceleration Essential Math for Games

Implicit Representation legal position legal velocity legal acceleration Essential Math for Games

Implicit Representation Constraint force = gradient vector times scalar l Essential Math for Games

Implicit Representation Constraint force = gradient vector times scalar l Essential Math for Games

Spring Constraints • Seems like a reasonable choice for soft body dynamics (cloth) •

Spring Constraints • Seems like a reasonable choice for soft body dynamics (cloth) • In practice, not very useful • Unstable, quickly explodes Essential Math for Games

Stiff Constraints • • • A special spring case does work Ball and Stick/Tinkertoy

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 Essential Math for Games

Cloth Simulation • Use stiff springs • Solving constraints by relaxation • Solve with

Cloth Simulation • Use stiff springs • Solving constraints by relaxation • Solve with a linear system Essential Math for Games

Cloth Simulation Essential Math for Games

Cloth Simulation Essential Math for Games

Cloth Simulation • Forces on our cloth Essential Math for Games

Cloth Simulation • Forces on our cloth Essential Math for Games

Cloth Simulation • • Relaxation is simple Infinitely rigid springs are stable 1. 2.

Cloth Simulation • • Relaxation is simple Infinitely rigid springs are stable 1. 2. 3. 4. 5. Predetermine Ci distance between particles Apply forces (once per timestep) Calculate D for two particles If D != 0, move each particle half the distance If n = 2, you’re done! Essential Math for Games

Relaxation Methods Essential Math for Games

Relaxation Methods Essential Math for Games

Relaxation Methods Essential Math for Games

Relaxation Methods Essential Math for Games

Cloth Simulation • • • When n > 2, each particle’s movement influenced by

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 before iterations Fixed timestep (critical) Essential Math for Games

More Cloth Simulation • Use less rigid constraints • Vary the constraints in each

More Cloth Simulation • Use less rigid constraints • Vary the constraints in each direction (i. e. horizontal stronger than vertical) • Warp and weft constraints Essential Math for Games

Still More Cloth Simulation • Sheer Springs Essential Math for Games

Still More Cloth Simulation • Sheer Springs Essential Math for Games

Still More Cloth Simulation • Flex Springs Essential Math for Games

Still More Cloth Simulation • Flex Springs Essential Math for Games

Articulated Bodies • Pin Joints • Hinges Essential Math for Games

Articulated Bodies • Pin Joints • Hinges Essential Math for Games

Angular Constraints • Restrict the angle between particles • Results in a cone-shaped constraint

Angular Constraints • Restrict the angle between particles • Results in a cone-shaped constraint Essential Math for Games

Angular Constraints • Unilateral distance constraint • Only apply constraint in one direction Essential

Angular Constraints • Unilateral distance constraint • Only apply constraint in one direction Essential Math for Games

Angular Constraints • Dot product constraint • Recovery is a bit more involved Essential

Angular Constraints • Dot product constraint • Recovery is a bit more involved Essential Math for Games

Stick Man • Uses points and hinges • Angular (not shown) allow realistic orientations

Stick Man • Uses points and hinges • Angular (not shown) allow realistic orientations • Graphic example of why I’m an engineer and not an artist Essential Math for Games

Using A Linear System • Can sum up forces and constraints • Represent as

Using A Linear System • Can sum up forces and constraints • Represent as system of linear equations • Solve using matrix methods Essential Math for Games

Basic Stuff Systems of linear equations Where: A = matrix of coefficients x =

Basic Stuff Systems of linear equations Where: A = matrix of coefficients x = column vector of variables b = column vector of solutions Essential Math for Games

Basic Stuff • Populating matricies is a bit tricky, see [Boxerman] for a good

Basic Stuff • Populating matricies is a bit tricky, see [Boxerman] for a good example Isolating the ith equation: Essential Math for Games

Jacobi Iteration Solve for xi (assume other entries in x unchanged): (Which is basically

Jacobi Iteration Solve for xi (assume other entries in x unchanged): (Which is basically what we did a few slides back) Essential Math for Games

Jacobi Iteration In matrix form: D, -L, -U are subparts of A D =

Jacobi Iteration In matrix form: D, -L, -U are subparts of A D = diagonal -L = strictly lower triangular -U = strictly upper triangular Essential Math for Games

Jacobi Iteration Definition (diagonal, strictly lower, strictly upper): A=D-L-U Essential Math for Games

Jacobi Iteration Definition (diagonal, strictly lower, strictly upper): A=D-L-U Essential Math for Games

Gauss-Seidel Iteration Uses previous results as they are available Essential Math for Games

Gauss-Seidel Iteration Uses previous results as they are available Essential Math for Games

Gauss-Seidel Iteration In matrix form: Essential Math for Games

Gauss-Seidel Iteration In matrix form: Essential Math for Games

Gauss-Seidel Iteration • Components depend on previously computed components • Cannot solve simultaneously (unlike

Gauss-Seidel Iteration • Components depend on previously computed components • Cannot solve simultaneously (unlike Jacobi) • Order dependant • If order changes the components of new iterates change Essential Math for Games

Successive Over Relaxation (SOR) • Gauss-Seidel has convergence problems • SOR is a modification

Successive Over Relaxation (SOR) • Gauss-Seidel has convergence problems • SOR is a modification of Gauss-Seidel • Add a parameter to w G-S Essential Math for Games

Successive Over Relaxation (SOR) • = a Gauss-Seidel iterate • 0<w<2 • If w

Successive Over Relaxation (SOR) • = a Gauss-Seidel iterate • 0<w<2 • If w = 1, simplifies to plain old Gauss. Seidel Essential Math for Games

Gauss-Seidel Iteration In matrix form: Essential Math for Games

Gauss-Seidel Iteration In matrix form: Essential Math for Games

Lots More Math (not covered here) • • • I highly recommend [Shewchuk 1994]

Lots More Math (not covered here) • • • I highly recommend [Shewchuk 1994] Steepest Descent Conjugate Gradient Newton’s Method (in some cases) Hessian Newton variants (Discreet, Quasi, Truncated) Essential Math for Games

References • • Boxerman, Eddy and Ascher, Uri, Decomposing Cloth, Eurographics/ACM SIGGRAPH Symposium on

References • • Boxerman, Eddy and Ascher, Uri, Decomposing Cloth, Eurographics/ACM SIGGRAPH Symposium on Computer Animation (2004) Eberly, David, Game Physics, Morgan Kaufmann, 2003. Jakobsen, Thomas, Advanced Character Physics, Gamasutra Game Physics Resource Guide Mathews, John H. and Fink, Kurtis K. , Numerical Methods Using Matlab, 4 th Edition, Prentice-Hall 2004 Shewchuk, Jonathan Richard, An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, August 1994. http: //www 2. cs. cmu. edu/~jrs/jrspapers. html Witken, Andrew, David Baraff, Michael Kass, SIGGRAPH Course Notes, Physically Based Modeling, SIGGRAPH 2002. Yu, David, The Physics That Brought Cel Damage to Life: A Case Study, GDC 2002 Essential Math for Games