# Dynamics 101 Jim Van Verth Red Storm Entertainment

## Presentation on theme: "Dynamics 101 Jim Van Verth Red Storm Entertainment"— Presentation transcript:

Dynamics 101 Jim Van Verth Red Storm Entertainment jimvv@redstorm.com

2 Talk Summary Going to talk about: A brief history of motion theory Newtonian motion for linear and rotational dynamics Handling this in the computer

3 Physically Based-Motion Want game objects to move consistent with world Match our real-world experience But this is a game, so… Cant be too expensive (no atomic-level interactions)

4 History I: Aristotle Observed: Push an object, stop, it stops Rock falls faster than feather From this, deduced: Objects want to stop Motion is in a line Motion only occurs with action Heavier object falls faster Note: was not actually beggar for a bottle

5 History I: Aristotle Motion as changing position

6 History I: Aristotle Called kinematics Games: move controller, stop on a dime, move again Not realistic

7 History II: Galileo Observed: Object in motion slows down Cannonballs fall equally Theorized: Slows due to unseen force: friction Object in motion stays in motion Object at rest stays at rest Called inertia Also: force changes velocity, not position Oh, and mass has no effect on velocity

8 History II: Galileo Force as changing velocity Velocity changes position Called dynamics

9 History III: Newton Observed: Planet orbit like continuous falling Theorized: Planet moves via gravity Planets and small objects linked Force related to velocity by mass Calculus helps formulate it all

10 History III: Newton Sum of forces sets acceleration Acceleration changes velocity Velocity changes position g

11 History III: Newton Games: Move controller, add force, then drift

12 History III: Newton As mentioned, devised calculus (concurrent with Leibniz) Differential calculus: rates of change Integral calculus: areas and volumes antiderivatives

13 Differential Calculus Review Have position function x(t) Derivative x'(t) describes how x changes as t changes (also written dx/dt, or ) x'(t) gives tangent vector at time t y(t)y(t) y t x(ti)x(ti) x'(ti)x'(ti)

14 Differential Calculus Review Our function is position: Derivative is velocity: Derivative of velocity is acceleration

15 Newtonian Dynamics Summary All objects affected by forces Gravity Ground (pushing up) Other objects pushing against it Force determines acceleration ( F = ma ) Acceleration changes velocity ( ) Velocity changes position ( )

16 Dynamics on Computer Break into two parts Linear dynamics (position) Rotational dynamics (orientation) Simpler to start with position

17 Linear Dynamics Simulating a single object with: Last frame position x i Last frame velocity v i Mass m Sum of forces F Want to know Current frame position x i+1 Current frame velocity v i+1

18 Linear Dynamics Could use Newtons equations Problem: assumes F constant across frame Not always true: E.g. spring force: F spring = – kx E.g. drag force: F drag = – m v

19 Linear Dynamics Need numeric solution Take stepwise approximation of function

20 Linear Dynamics Basic idea: derivative (velocity) is going in the right direction Step a little way in that direction (scaled by frame time h) Do same with velocity/acceleration Called Eulers method

21 Linear Dynamics Eulers method

22 Linear Dynamics Another way: use linear momentum Then

23 Linear: Final Formulas Using Eulers method with time step h

24 Rotational Dynamics Simulating a single object with: Last frame orientation R i or q i Last frame angular velocity i Inertial tensor I Sum of torques Want to know Current frame orientation R i+1 or q i+1 Current frame ang. velocity i+1

25 Rotational Dynamics Orientation Represented by Rotation matrix R Quaternion q Which depends on your needs Hint: quaternions are cheaper

26 Rotational Dynamics Angular velocity Represents change in rotation How fast object spinning 3-vector Direction is axis of rotation Length is amount of rotation (in radians) Ccw around axis (r.h. rule)

27 Rotational Dynamics Angular velocity Often need to know linear velocity at point Solution: cross product r v

28 Moments of Inertia Inertial tensor I is rotational equivalent of mass 3 x 3 matrix, not single scalar factor (unlike m ) Many factors - rotation depends on shape Describe how object rotates around various axes Not always easy to compute Change as object changes orientation

29 Rotational Dynamics Computing I Can use values for closest box or cylinder Alternatively, can compute based on geometry Assume constant density, constant mass at each vertex Solid integral across shape See Mirtich,Eberly for more details Blow and Melax do it with sums of tetrahedra

30 Rotational Dynamics Torque Force equivalent Apply to offset from center of mass – creates rotation Add up torques just like forces

31 Computing torque Cross product of vector r (from CoM to point where force is applied), and force vector F Applies torque ccw around vector (r.h. rule) Rotational Dynamics r F

32 Rotational Dynamics Center of Mass Point on body where applying a force acts just like single particle Balance point of object Varies with density, shape of object Pull/push anywhere but CoM, get torque Generally falls out of inertial tensor calculation

33 Rotational Dynamics Have matrix R and vector How to compute ? Convert to give change in R Convert to symmetric skew matrix Multiply by orientation matrix Can use Euler's method after that

34 Computing New Orientation If have matrix R, then where

35 Computing New Orientation If have quaternion q, then See Baraff or Eberly for derivation where

36 Computing Angular Velocity Cant easily integrate angular velocity from angular acceleration: Can no longer divide by I and do Euler step

37 Computing Angular Momentum Easier way: use angular momentum Then

38 Remember, I computed in local space, must transform to world space If using rotation matrix R, use formula If using quaternion, convert to matrix Using I in World Space

39 Rotational Formulas

40 Impulses Normally force acts over period of time E.g., pushing a chair F t

41 Impulses Even if constant over frame sim assumes application over entire time F t

42 Impulses But if instantaneous change in velocity? Discontinuity! Still force, just instantaneous Called impulse - good for collisions/constraints F t

43 Summary Basic Newtonian dynamics Position, velocity, force, momentum Linear simulation Force -> acceleration -> velocity -> position Rotational simulation Torque -> ang. mom. -> ang. vel. -> orientation

44 Questions?

45 References Burden, Richard L. and J. Douglas Faires, Numerical Analysis, PWS Publishing Company, Boston, MA, 1993. Hecker, Chris, Behind the Screen, Game Developer, Miller Freeman, San Francisco, Dec. 1996-Jun. 1997. Witken, Andrew, David Baraff, Michael Kass, SIGGRAPH Course Notes, Physically Based Modelling, SIGGRAPH 2002. Eberly, David, Game Physics, Morgan Kaufmann, 2003.

Similar presentations