Constrained Dynamics Marq Singer marqessentialmath com Essential Math
- Slides: 42
Constrained Dynamics Marq Singer (marq@essentialmath. com) Essential Math for Games
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 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 Math for Games
Box Constraints P 0 100 Essential Math for Games
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: § Explicit (parametric) method § Implicit method Essential Math for Games
Parametric Constraints Essential Math for Games
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 Constraint force = gradient vector times scalar l Essential Math for Games
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 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 a linear system Essential Math for Games
Cloth Simulation 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. 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
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 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 • Flex Springs 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 Essential Math for Games
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 Math for Games
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 system of linear equations • Solve using matrix methods Essential Math for Games
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 example Isolating the ith equation: Essential Math for Games
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 = 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
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 • 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 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 = 1, simplifies to plain old Gauss. Seidel 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] 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 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
- Describe the scada transport over llns with map-t
- Constrained nodes and constrained networks
- Constrained nodes and constrained networks
- Dậy thổi cơm mua thịt cá
- Cơm
- Essential non essential fatty acids
- Constraints and statical determinacy
- What are the impacts of resource constrained scheduling
- Statically determinate and indeterminate structures
- Constrained and unconstrained optimization in economics
- Rational constrained choice
- Improperly constrained
- R optimization
- Improperly constrained
- Constrained least square filtering
- What is related constrained diversification
- Csp algorithm
- Simulation phases of systemverilog verification
- Degree constrained spanning tree
- So far we have discussed
- Corporate relatedness vs operational relatedness
- Constrained optimization
- The cable of the tower crane is subjected to 840
- Scheduling resources and costs
- Constrained k-means clustering with background knowledge
- Math is not an essential skill for foodservice managers.
- Hit the button
- Elvis favorite singer
- Khalio singer
- Schater singer
- Atmosphere singer
- A blue lab cart is traveling west
- Bodelning
- Famous latino actors
- Jake rosso singer
- šicí stroj bobbin historie
- Teoria cannon-bard
- Reading assessment examples
- Selena quintanilla butt
- Brad arnold terika roberts
- Cfengine tutorial
- Proper noun store
- Schacter and singer