Upload
alexandra-patterson
View
224
Download
0
Tags:
Embed Size (px)
Citation preview
Computer Game Design and Development
Mathematics, Collision, and Physics
Havok Destruction
Basic Problem
• Without physics:– There’s no gravity– There’s no friction– There are no collisions– Objects pass through one another
• We must determine:– If objects collide (collision detection)– Where/when they collided (collision resolution)
Collision Detection
• Bullets (very fast)• Characters (very complex)• Naïve algorithms run in O(n2)• Two primary methods:
– Overlap testing (most common)– Intersection testing (sweeping)
Overlap Testing
• Determines if two objects overlap (duh!)– Check each vertex of an object inside another?
• Exhibits the most error• Is discrete (i.e. checks an exact point in time)• Results:
– Give a time of collision– Give a normal of collision
• Uses bisection…
Overlap Bisection
Limitations of Overlap Testing
Design constraint? Speed of objects * time step < size of all objects?Reduce time step?
Intersection Testing
• “Sweep” an object from one pointto another (i.e. “extrude” – sphere
• becomes capsule).• Can calculate t with an equation->• See book for equation• Doesn’t work well for network games
Collision ApproximationsMinkowski Sum – sweep origin of X across Y
Intersection technique.These are the same!
Bounding Volumes and Boxes
AABB OBB
About Bounding Volumes
• Simplest is sphere• Next is capsule (2 spheres and a cylinder), • Next are AABBs• What can we do about character collisions?
Performance(avoiding O(n2))
Possible collisionbetween R and Bsince overlap in all axis (2 in this case)
Subdivide such that on averageone object in each cell.•Test against neighboring cells•What if all are in one cell?•Variable-sized objects?
“Plane sweep” needs to be sorted!Which algorithm? Quicksort?Bubblesort?
Terrain Collision
• Determine which quad is easy• Heightmap (x and z are fixed, y is variable)• Which triangle in the quad?
– Compare x with z–
http://creators.xna.com/en-US/sample/collision3dheightmap
Resolving Collision
• Gross collision & subdivide if needed• Three phases
– Prologue – ignore or trigger other events– Collision – objects moved to point of impact, new
velocities, calculate normal and penetration– Epilogue – destroy object, effects, damage, etc
Particle Physics Basics
• Use consistent units (SI) – or bad stuff happens• Particle kinematics
– Position (p) in 3-space, vector3 (x,y,z) = p(t)– Velocity (v) = change in position over time, V(t)– Acceleration (a) = change in velocity over time, a(t)– Force (f) = results in change in acceleration over time,
F(t) = ma(t)
• Calculus– Derivatives and integrals go from one to another
Center of Mass
Collision Response (frictionless)
Other Definitions
• Kinematic objects: those that move• Static objects: those that don’t, but affect
those that do (terrain)• Rigid bodies: objects that do not deform• Soft bodies:
– those that do– Center of gravity changes– Cloth, deflated ball…
Rigid Body CollisionCenter of Mass Consideration
More Definitions
• Constraints:– Limitations on what objects
can do– Joint types: ball joint, hinge joint, sliding joint
• Ragdoll physics:– Animated bones replaced by rigid bodies– Good for violent death animations– http://www.youtube.com/watch?v=4gR_dP4HaF8
Physics Engines• Commercial
– Game Dynamics SDK (Havok)– Renderware Physics– PhysX (NVIDIA)– NovodeX SDK
• Free/Shareware– Open Dynamics Engine (ODE)– Tokamak Game Physics SDK– Newton Game Dynamics SDK– Bullet SDK
Demos
http://www.havok.com/content/view/584/96/
http://www.tokamakphysics.com/index.htm