Dynamics 101

1 / 45

# Dynamics 101 - PowerPoint PPT Presentation

Dynamics 101. Marq Singer Red Storm Entertainment marqs@redstorm.com. Talk Summary. Going to talk about: A brief history of motion theory Newtonian motion for linear and rotational dynamics Handling this in the computer. Physically Based-Motion.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## Dynamics 101

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Dynamics 101

Marq Singer

Red Storm Entertainment

marqs@redstorm.com

Talk Summary
• A brief history of motion theory
• Newtonian motion for linear and rotational dynamics
• Handling this in the computer
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)
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
History I: Aristotle
• Motion as changing position
History I: Aristotle
• Called kinematics
• Games: move controller, stop on a dime, move again
• Not realistic
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
History II: Galileo
• Force as changing velocity
• Velocity changes position
• Called dynamics
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
History III: Newton
• Sum of forces sets acceleration
• Acceleration changes velocity
• Velocity changes position

g

History III: Newton
• Games: Move controller, add force, then drift
History III: Newton
• As mentioned, devised calculus
• (concurrent with Leibniz)
• Differential calculus:
• rates of change
• Integral calculus:
• areas and volumes
• antiderivatives
• Did not invent the Fig Newton™
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

x'(ti)

y(t)

t

Differential Calculus Review
• Our function is position:
• Derivative is velocity:
• Derivative of velocity is acceleration
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 ( )
Dynamics on Computer
• Break into two parts
• Linear dynamics (position)
• Rotational dynamics (orientation)
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
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
Linear Dynamics
• Need numeric solution
• Take stepwise approximation of function
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
Linear Dynamics
• Euler’s method
Linear Dynamics
• Another way: use linear momentum
• Then
Linear: Final Formulas
• Using Euler’s method with time step h
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
Rotational Dynamics
• Orientation
• Represented by
• Rotation matrix R
• Quaternion q
• Which depends on your needs
• Hint: quaternions are cheaper
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)
Rotational Dynamics
• Angular velocity
• Often need to know linear velocity at point
• Solution: cross product

v

r

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
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
Rotational Dynamics
• Torque
• Force equivalent
• Apply to offset from center of mass – creates rotation
• Add up torques just like forces
Rotational Dynamics
• 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)

r

F

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
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
Computing New Orientation
• If have matrixR, then

where

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

where

Computing Angular Velocity
• Can’t easily integrate angular velocity from angular acceleration:
• Can no longer “divide” by I and do Euler step
Computing Angular Momentum
• Easier way: use angular momentum
• Then
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
Impulses
• Normally force acts over period of time
• E.g., pushing a chair

F

t

Impulses
• Even if constant over frame

sim assumes application over entire time

F

t

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

F

t

Summary
• Basic Newtonian dynamics
• Position, velocity, force, momentum
• Linear simulation
• Force -> acceleration -> velocity -> position
• Rotational simulation
• Torque -> ang. mom. -> ang. vel. -> orientation
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.