******************************************************************************************************

 

******************************************************************************************************
SLIDES
******************************************************************************************************
********** 1
overview of situtation
you have a game, you want a generic object in your game with accurate physics
todo this you want a good rigid body object that can represent most anything
********** 2
these objects should move and interact correctly
add a photo / movie here
********** 3
OUTLINE
1) basic concepts and laws of physics
2) kinematics
3) force
4) kinetics
5) collisions
********** 4
laws of physics
newtons laws of motion
1) inertia: a body tends to remain at rest or continue to move in a straight line at constant velocity unless it is acted upon by an external force
2) f = ma | G = mv: the acceleration of a body is proportional to the resultant force acting on the body and this acceleration is in the same direction as the resultant force
3) for each force acting on a body there is an equal and opposite reacting force in which the reaction is collinear to the acting force
********** 6
mass properties
mass -how resistance to movement - much i weigh (w=mg)
moment of inertia -how resistance to rotation - integration of weight * distance from center of mass
center of mass -where my center is (what I rotate around)

********** 8
scalars
a number..such as..2
********** 9
vectors
"magnitude and direction"
really..a bunch of numbers, such (1,2) or (5,7,1) or (1,3,5,6,7,1,2,3)
generally we just use 2 and 3 dimension vectors
they are used to represent all kinds of things..
locations - i am at 2,3
relative locations - my destination is 5,3 from me
velocity - i am moving at 5,13
********** 10
important operations
addition - i am at 3,5, the front of my car extends out 0,2, so the front of my car is at 3,7 - image
subtraction - i am at 3,5 and you are at 7,1 so a-b = you are 4,-4 from me - image
dot product - shortest distance to line - image
cross product - AxB -> amount of vector A that is normal to vector B, saves LOTS of ugly arctangents - image
**********
quaternion
a quaternion contains an oreintation
any explanation into how it does this, would be pointless..so just know that it holds an orientation, adn that it can apply it to vectors
trying to derive custom math to deal with its data members is REALLY hard..so just learn to use the standard operators

q1 * q2 -> gives q2 rotated around q1, if your relative rotation is q2, this translates it into global rotation coordinates

interpolation - slerp (other versions of this exist, some are supposed to be better, but slerp suffices)
slerp( a, b, .1 ) returns an orientation 10% of the way from a & b
THIS is one of the most important properties of quaternions..they interpolate VERY smoothly, as opposed to euler angles which are really ugly

********** 11
matrix
a grid of numbers
1 3 5
5 6 2
4 1 3

these represent
orientation - 3x3 matrix
transformations - 4x4
moment of inertia - 3x3
********** 12
tensors

generalization of scalars/vectors/matrix
scalars = tensor of rank 0
vectors = tensor of rank 1
matrix = tensor of rank 2

url -> mathworld.wolfram definition

expression with magnitude and direction - magnitude might however change with direction
usually used to represent properties that have different magnitudes in different directions
elasticity
moment of inertia
air resistance

they are hard =) ill just use a simple inertia scaler for now
********** 13
PARTICLE physics
particles are objects where orientation is unimportant
attributes:
vector position
vector velocity
scalar mass
********** 14
how do we make them move?
we discritize time, and step through it one piece at a time, integration across each step to obtain new positions
for instance if you have a rock moving through space at 10 m/s
you update it every second
at time 0, p = 0, t = 1 p = 10, t = 2 p = 20, so on.
********** 15
integration function for particles
p += v * dt
v += f / m * dt
********** 16
so elegant..
a demo - pretty java demo showing a particle engine
********** 17
true rigid bodies - orientation
orientation screws everything up...
it takes two beautiful formula and makes it 5 times more complicated..but usch is life..
********** 18
RIGID BODY
generic object in space
rigid -> does not change shape
attributes:
vector position
vector acceleration
scalar mass

quaternion orientation - OMEGA
vector rotational_velocity - omega
vector torque
#matrix33 moment_of_inertia
scalar inertia
********** 19
integration
p += v * dt
v += f / m * dt

OMEGA += omega * dt
omega += torque / inertia * dt
********** 20
complications
since OMEGA is a quaternion
and dt is a vector..things are a lil more complicated then that.