Physics Michael Vernier Robert Weekley Michael Ford
Why Physics? More interactivity Looks cool (explosions) More realistic More variety and easier animations (rag doll physics for death animations) Better gameplay (space fighter, driving games)
Why a Physics Engine? Physics simulation is hard Requires very stable integrator Articulated bodies especially take difficult math Optimization is important Spring systems explode easily
Major Features Collision detection Newtonian forces and collision response Buoyant forces Friction Articulation and jointed characters (rag doll) Prebuilt objects for simulation
Physics Toolkits ODE (Open Dynamics Engine) Ageia PhysX Newton Game Dynamics Havok Havok FX Tokamak Game Physics
Newton Game Dynamics Free for use with credit to authors. Cross Platform (Win32, Mac OS X, Linux)
Features Collision Detection Collision Response Buoyancy Friction Seven different Joints Rag Doll Physics Height Map Collision Claims very stable solver
API C++ API Tutorials Wiki API Documentation seems complete
Used In Not very much yet. Several small independent games. –Future Pinball –Trembling Towers –Classic Cars Racer –Virtual Reality Chat –Ultra Stein 3D Pinball
Ageia PhysX Features –Designed for massively parallel hardware –Designed with games in mind Complex rigid body system Volumetric fluid and cloth simulations Advanced Character Control Ray-cast vehicles –Support for many scenes
Ageia PhysX Features (cont’d) –Remote debugging capability –Cross-Platform Single and multi-core PC Xbox 360 Playstation 3 PhysX Processor!
Ageia PhysX Problems –Commercial licensing Free for non-commercial projects $50k per SKU for commercial products –Currently no killer game to show off the processor But, they’re on their way –Limited availability of PhysX cards
Ageia PhysX Who’s using PhysX? –Partners –Other Developers
Ageia PhysX API –C++ –Primitives Box (AABB, OBB), sphere, capsule, plane, line, ray, height map, convex mesh, triangular mesh –Joints Spherical, revolute, prismatic, cylindrical, fixed, distance, point in plane, point on line, pulley, 6DOF
Ageia PhysX Tools –PhysX Create Plugins for 3DS Max and Maya –PhysX Rocket Preview and tuning of content –PhysX VRD Real-time visual remote debugger
Ageia PhysX Demos –GRAW comparison of PhysX processor –Fluid Dynamics (Fog, Napalm) –Artificial Studios Cellfactor –Bet on Soldier: Blood Sport
Open Dynamics Engine (ODE) Rob needs to get off his lazy butt and fill this in Wunderverbindungen
Open Dynamics Engine (ODE) Features –Open Source –Platform independent –Rigid Body Dynamics (V 3 ) Vehicles Virtual Reality Environments Virtual Creatures
Open Dynamics Engine (ODE) Features (cont’d) –Collision Detection –Collision Handling –Friction –Three different Joints
Open Dynamics Engine (ODE) Problems –Traded Accuracy for Speed and Stability –2 Years since last release –2 + Months since last “Nightly Build” –Samples crash or don’t work
Open Dynamics Engine (ODE) Who’s using ODE? –87 linked users –Games & Game Engines 3Impact Gryps Engine –Tools Juice Blender –Simulators
Havok Industry Standard Used in Half Life 2, Halo 2, F.E.A.R., and many other blockbuster games. Also used in the Jupiter EX game engine. Very expensive (they won’t even give you a price if you don’t work for EA) Joining with nVidia to use the GPU for physics calculations.
Physics and Ogre OgreODE –Adds prefab vehicles and rag-doll support OgreNewt –Implements nearly all of Newton’s functionality NxOgre –Adds state machine support
Questions?