Dynamics 101 Marq Singer Red Storm Entertainment marqsredstorm

  • Slides: 45
Download presentation
Dynamics 101 Marq Singer > Red Storm Entertainment > marqs@redstorm. com >

Dynamics 101 Marq Singer > Red Storm Entertainment > marqs@redstorm. com >

2 Talk Summary > Going to talk about: A brief history of motion theory

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

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

4 History I: Aristotle > Observed: > > > From this, deduced: > >

4 History I: Aristotle > Observed: > > > From this, deduced: > > > Push an object, stop, it stops Rock falls faster than feather 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

5 History I: Aristotle > Motion as changing position

6 History I: Aristotle Called kinematics > Games: move controller, stop on a dime,

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

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

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

9 History III: Newton > Observed: > > Planet orbit like continuous falling Theorized:

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 >

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

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

12 History III: Newton > As mentioned, devised calculus > > Differential calculus: >

12 History III: Newton > As mentioned, devised calculus > > Differential calculus: > > rates of change Integral calculus: > > > (concurrent with Leibniz) areas and volumes antiderivatives Did not invent the Fig Newton™

13 Differential Calculus Review Have position function x(t) > Derivative x'(t) describes how x

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 > x(ti) y y(t) x'(ti) t

14 Differential Calculus Review Our function is position: > Derivative is velocity: > >

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

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

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

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

18 Linear Dynamics > Could use Newton’s equations > Problem: assumes F constant across

18 Linear Dynamics > Could use Newton’s equations > Problem: assumes F constant across frame Not always true: > > > E. g. spring force: Fspring = –kx E. g. drag force: Fdrag = –m v

19 Linear Dynamics Need numeric solution > Take stepwise approximation of function >

19 Linear Dynamics Need numeric solution > Take stepwise approximation of function >

20 Linear Dynamics Basic idea: derivative (velocity) is going in the right direction >

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 Euler’s method >

21 Linear Dynamics > Euler’s method

21 Linear Dynamics > Euler’s method

22 Linear Dynamics > Another way: use linear momentum > Then

22 Linear Dynamics > Another way: use linear momentum > Then

23 Linear: Final Formulas > Using Euler’s method with time step h

23 Linear: Final Formulas > Using Euler’s method with time step h

24 Rotational Dynamics > Simulating a single object with: > > > Last frame

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

25 Rotational Dynamics > Orientation > Represented by > Rotation matrix R > Quaternion

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

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

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

28 Moments of Inertia > Inertial tensor > > > I is rotational equivalent

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

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

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

31 Rotational Dynamics > Computing torque > Cross product of vector r (from Co.

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

32 Rotational Dynamics > Center of Mass > > > Point on body where

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 Co. M, get torque Generally falls out of inertial tensor calculation

33 Rotational Dynamics Have matrix R and vector > How to compute ? >

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

34 Computing New Orientation > If have matrix R, then where

35 Computing New Orientation > If have quaternion q, then where > See Baraff

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

36 Computing Angular Velocity > Can’t easily integrate angular velocity from angular acceleration: >

36 Computing Angular Velocity > Can’t 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

37 Computing Angular Momentum > Easier way: use angular momentum > Then

38 Using I in World Space Remember, > I computed in local space, must

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

39 Rotational Formulas

39 Rotational Formulas

40 Impulses > Normally force acts over period of time F > E. g.

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

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

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

42 Impulses > But if instantaneous change in velocity? Discontinuity! F > > t

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

43 Summary > Basic Newtonian dynamics > > Linear simulation > > Position, velocity,

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

44 Questions?

44 Questions?

45 References > > Burden, Richard L. and J. Douglas Faires, Numerical Analysis, PWS

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.