CS 599 Physically Based Modeling for Interactive Simulation
CS 599 Physically Based Modeling for Interactive Simulation and Games Case Study: Havok Engine for Game Physics Jernej Barbic University of Southern California 1
Physics in games • Custom, in-house software • Off-the shelf libraries • Physics middleware 2
Physics Engines • Real-time – Video games • High precision – Slow – Film – Scientific computing Half-life 2 3
Real-time physics engines: open source • Open Dynamics Engine (ODE) • Bullet • SOFA • and several others 4
Real-time physics engines: commercial • Havok (Ireland) (now Intel) • Physx (formerly Novode. X, now n. Vidia) • Vortex (Montreal) 5
Components of physics engine • Collision detection • Dynamics – rigid objects – cloth – fluids • Fracture 6
Rigid object contact • Penalty-based – popular with soft/deformable objects • Impulse-based • Constraint-based – expensive, suitable for continuous contact 7
Real-time simulation • Speed more important than accuracy • Objects have two representations: – Complex geometry (rendering) – Simplified geometry (collision detection, dynamics) 8
Characters • Rag-doll physics – Rigid objects • Cloth • Controller – Natural motion • Particles (hair) 9
Physics processing unit (PPU) • Dedicated physics co-processor • SPARTA and HELLAS – academic – Penn State, Univ. of Georgia • Ageia (Switzerland, 2006) – later merged into n. Vidia – use AGEIA's Phys. X SDK 10
GPGPU • Havok FX – may have been cancelled • Multi-GPU technology – ATI (Cross. Fire) – n. Vidia (SLI) • Increasingly more suitable for physics 11
Intel Larrabee • Many-core x 86 • Fusion of CPU and GPU • Suitable for physics • Was scheduled for 2010, but delayed 12
Havok • Real-time commercial physics engine • Company bought by Intel (2007) ($110 million) • Used in 150 games – Halo 3 – Half Life 2 13
Havok Engine • Animation – Fast playback – Real-time blending – Inverse kinematics – Retargeting • AI – path-finding 14
Havok Engine • Behavior – Character behavior development tool • Cloth • Destruction • Physics 15
Havok Physics 16
Havok Physics • Collision detection • Constraints • Rigid bodies • Cloth Uncharted 2: Among thieves • Continuous physics 17
Havok Physics • Vehicle simulation • Human ragdolls • Character controller – simulate enemy characters being hit 18
Havok Physics • Visual debugger and profiler • Content creation tools • Integration with 3 rd-party renderers – 3 D Studio Max – Maya 19
Havok Physics • Extensively optimized (machine code) • Microsoft Xbox • Sony PLAYSTATION • Nintendo Wii • PC 20
Havok Physics is not… • Simple technology – Must invest time to use it • Black box – Must understand the components and recombine them • Commercial renderer 21
Havok Physics • The “Havok World” (hkp. World) • Contains all physical objects in the simulation • Timesteps the simulation forward in time 22
Rigid objects • The central object in Havok • hkp. Rigid. Object class • Add to the “world” • Set mass, inertia tensor, etc. 23
Constraints Ball and socket Hinge Translational 24
Constraints 25
Constraints 26
Collision Detection • Broad phase and narrow phase Broad phase 27
Collision Detection • • • Narrow phase Spheres AABBs Cylinders Capsules Compound shapes 28
Collision Detection: Queries • Closest points between two bodies • Whether two bodies penetrate • Raycast a point through space and get colliding objects 29
Continuous Physics 30
Continuous Physics • Time of impact: 31
32
- Slides: 32