CPSC 427 Video Game Programming Physics-Based Simulation

CPSC 427 Video Game Programming Physics-Based Simulation

CPSC 427 Video Game Programming Animation Physics-Based Simulation • Movement governed by forces • Simple – Independent particles • Complex – Correct collisions, stacking, sliding 3D rigid bodies • Many many simulators! – PhysX (Unity, Unreal), Bullet, Open Dynamics Engine, MuJoCo, Havok, Box2D, Chipmunk, OpenSim, RBDL, Simulink (MATLAB), ADAMS, SD/FAST, DART etc… © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 1 Examples • Particle systems – Fire, water, smoke, pebbles • Rigid-body simulation – Blocks, robots, humans • Continuum systems – Deformable solids – Fluids, cloth, hair • Group movement – Flocks, crowds © Alla Sheffer/M. van de Panne Simulation Basics Simulation loop… 1. Equations of Motion sum forces & torques solve for accelerations: 2. Numerical integration update positions, velocities 3. Collision detection 4. Collision resolution © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 2 Particles: Newtonian Physics as First-Order ODE • Motion of one particle • Motion of many particles Second-order ODE / ⃑ / First-order ODE ⋮ ⋮ ⃑ ⃑ ⃑ ⃑ / / © Alla Sheffer/M. van de Panne Basic Particle Simulation (first try) Forces only / © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 3 Basic Particle Simulation (first try) Forces only / © Alla Sheffer/M. van de Panne Basic Particle Forces • Gravity 0 • Viscous damping • Spring & dampers © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 4 Proxy Forces • Behavior forces: • Fluids flocking birds, schooling fish, etc. [“Curl Noise for Procedural Fluid Flow” [“Boids”, Craig Reynolds, SIGGRAPH 1987] R. Bridson, J. Hourihan, M. Nordenstam, Proc. SIGGRAPH 2007] © Alla Sheffer/M. van de Panne Basic Particle Simulation: Small Problem… Forces only / Equations of motion describe state (equilibrium) Use: get values at time from values at time © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 5 Newtonian Physics as First-Order ODE • Motion of one particle • Motion of many particles Second-order ODE / ⃑ / First-order ODE ⋮ ⋮ ⃑ ⃑ ⃑ ⃑ / / © Alla Sheffer/M. van de Panne Ordinary Differential Equations ⃑ ⃑ , Given that ⃑ ⃑ Compute ⃑ for t ∆⃑ ⃑ ,∆ • Simulation: – path through state-space – driven by vector field © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 6 ODE Numerical Integration: Explicit (Forward) Euler ⃑ ⃑ , Given that ⃑ ⃑ , Compute ⃑ for tt t t ∆ ∆ ∆ , ∆⃑ ∆ ⃑ , ⃑ ⃑ + ∆ ⃑,t © Alla Sheffer/M. van de Panne ODE Numerical Integration: Explicit (Forward) Euler ⃑ ⃑ , Given that ⃑ ⃑ , Compute ⃑ t for t t ∆ t t ∆ ∆ , ∆⃑ t ∆ ⃑ t ,t ⃑ ⃑ + ∆ ⃑,t © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 7 Explicit Euler Problems • Solution spirals out – Even with small time steps – Although smaller time steps are still better © Alla Sheffer/M. van de Panne Explicit Euler Problems • Can lead to instabilities © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 8 Midpoint Method 1. ½ Euler step 2. evaluate f at m , 3. full step using fm ½ ∆ ½ ∆ , ∆ © Alla Sheffer/M. van de Panne Trapezoid Method 1. full Euler step get 2. evaluate ft at , 3. full step using ft get 4. average and ∆ ∆ , ½ ½ ∆ © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 9 Midpoint & Trapezoid Method • Not exactly the same – But same order of accuracy © Alla Sheffer/M. van de Panne Explicit Euler: Code © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 10 Midpoint Method: Code ½ ∆ ½ ∆ , ∆ © Alla Sheffer/M. van de Panne Implicit (Backward) Euler: • Use the derivative at the destination Forward Euler Backward Euler • Problem is we don’t know the destination yet © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 11 Implicit (Backward) Euler: Solve a (linear) system • Use the derivative at the destination Forward Euler Backward Euler • Problem is we don’t know the destination yet © Alla Sheffer/M. van de Panne Simulation Basics Simulation loop… 1. Equations of Motion 2. Numerical integration 3. Collision detection 4. Collision resolution © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 12 Collisions • Collision detection – Broad phase: AABBs, bounding spheres – Narrow phase: detailed checks • Collision response – Collision impulses – Constraint forces: resting, sliding, hinges, …. © Alla Sheffer/M. van de Panne Particle-Plane Collisions • Particle-plane frictionless impulse response – Invert & scale perpendicular velocity component ∥ ∥ © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 13 Particle-Plane Collisions • More formally… – Apply an impulse of magnitude j Inversely proportional to mass of particle – In direction of normal ⃑ ⃑ © Alla Sheffer/M. van de Panne Particle-Particle Collisions • Particle-particle frictionless elastic impulse response Before After • Momentum is preserved • Kinetic energy is preserved ½ ½ ½ ½ © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 14 Particle-Particle Collisions (radius >0) • What we know… – Particle centers – Initial velocities : , – Particle Masses • What we can calculate… : , – Contact normal – Contact tangent © Alla Sheffer/M. van de Panne Particle-Particle Collisions (radius >0) • Impulse direction reflected across tangent • Impulse magnitude : , proportional to mass of other particle : , © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 15 Particle-Particle Collisions (radius >0) • More formally… · · © Alla Sheffer/M. van de Panne Rigid Body Dynamics • From particles to rigid bodies… Particle Rigid body , ℝ in 2D ℝ in 3D ℝ in 3D © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 16 Rigid Body Dynamics • From particles to rigid bodies… Newton’s equations of motion Newton-Euler equations of motion Inertia tensor © Alla Sheffer/M. van de Panne Resources • Non-convex rigid bodies with stacking 3D collision processing and stacking http://www.cs.ubc.ca/~rbridson/docs/rigid_bodies.pdf • Physically-based Modeling, course notes, SIGGRAPH 2001, Baraff & Witkin http://www.pixar.com/companyinfo/research/pbm2001/ • Doug James CS 5643 course notes http://www.cs.cornell.edu/courses/cs5643/2015sp/ • Rigid Body Dynamics, Chris Hecker http://chrishecker.com/Rigid_Body_Dynamics • Video game physics tutorial https://www.toptal.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics • Box2D javascript live demos http://heikobehrens.net/misc/box2d.js/examples/ • Rigid body collisions javascript demo https://www.myphysicslab.com/engine2D/collision-en.html • Rigid Body Collision Reponse, Michael Manzke, course slides https://www.scss.tcd.ie/Michael.Manzke/CS7057/cs7057-1516-09-CollisionResponse-mm.pdf • Interactive simulation of rigid body dynamics in computer graphics, CGF 2014 http://onlinelibrary.wiley.com/doi/10.1111/cgf.12272/abstract • A Mathematical Introduction to Robotic Manipulation (textbook) http://www.cds.caltech.edu/~murray/books/MLS/pdf/mls94-complete.pdf • Particle-based Fluid Simulation for Interactive Applications, SCA 2003, PDF © Alla Sheffer/M. van de Panne Copyright: Alla Sheffer/Michiel van de Panne 17.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us