320 likes | 337 Views
Game Physics. What is meant by Physics in games (old)? Collision Detection (testing) But want the physical effect of hitting an immovable object. Also needed to provide the input (forces) for physical simulations (equations) of moveable or deformable objects.
E N D
Game Physics • What is meant by Physics in games (old)? • Collision Detection (testing) • But want the physical effect of hitting an immovable object. • Also needed to provide the input (forces) for physical simulations (equations) of moveable or deformable objects. • More intelligent (automated) interpolation • Particle systems – Artistically defined generation with Newtonian-based controls.
Game Physics • What is meant by Physics in games (new)? • Fluid dynamics • Deformable models • Ragdoll (non-scripted) articulation • (More) Accurate simulation
Issues in Game Physics • Do I need to buy a separate processor? • What if the calculation takes too long? • How can I cheat? What can I cheat on? • How often do I need to update?
Discussion items • Dead-reckoning • Emergent Behavior • Collision Detection • Newtonian Physics and gravity • Forward Kinematics • Inverse Kinematics • Free-form deformation • Fluid Flow
Collision Detection Complicated for two reasons 1. Geometry is typically very complex, potentially requiring expensive testing 2. Naïve solution is O(n2) time complexity, since every object can potentially collide with every other object
Collision Detection Two basic techniques 1. Overlap testing • Detects whether a collision has already occurred 2. Intersection testing • Predicts whether a collision will occur in the future
Overlap Testing • Facts • Most common technique used in games • Exhibits more error than intersection testing • Concept • For every simulation step, test every pair of objects to see if they overlap • Easy for simple volumes like spheres, harder for polygonal models
Overlap Testing:Useful Results • Useful results of detected collision • Time collision took place • Collision normal vector
Overlap Testing:Collision Time • Collision time calculated by moving object back in time until right before collision • Bisection is an effective technique
Overlap Testing:Limitations • Fails with objects that move too fast • Unlikely to catch time slice during overlap • Possible solutions • Design constraint on speed of objects • Reduce simulation step size
Intersection Testing • Predict future collisions • When predicted: • Move simulation to time of collision • Resolve collision • Simulate remaining time step
Intersection Testing:Swept Geometry • Extrude geometry in direction of movement • Swept sphere turns into a “capsule” shape
Intersection Testing:Sphere-Sphere Collision • Smallest distance ever separating two spheres: • If there is a collision
Intersection Testing:Limitations • Issue with networked games • Future predictions rely on exact state of world at present time • Due to packet latency, current state not always coherent • Assumes constant velocity and zero acceleration over simulation step • Has implications for physics model and choice of integrator
Dealing with Complexity Two issues 1. Complex geometry must be simplified 2. Reduce number of object pair tests
Collision Resolution:Examples • Two billiard balls strike • Calculate ball positions at time of impact • Impart new velocities on balls • Play “clinking” sound effect • Rocket slams into wall • Rocket disappears • Explosion spawned and explosion sound effect • Wall charred and area damage inflicted on nearby characters • Character walks through wall • Magical sound effect triggered • No trajectories or velocities affected
Real-time Graphics Methods • Real-time graphics is all about hackery • It’s impossible to get a realtime, high-fidelity global illumination rendering • The questions you should ask: • What effects do I want in my game? • What corners am I willing to cut?
Billboards • A billboard is a flat object that faces something • There are lots of different billboarding methods, but we’ll stick with the easiest, most used one • Take a quad and slap a texture on it. Now we want it to face the camera. How do we do that? • Bread and butter of older 3d games and still used extensively today • Monsters (think Doom) • Items • Impostors (LOD) • Text • Faked smoke, fire, explosions, particle effects, halos, etc. • #*$&ing lens flares • Bad news: Little to no shading
Light Mapping • We’d like soft lighting and soft shadows but the fixed function pipeline won’t let us have our way. Plus, real lighting is slow once we involve multiple lights. • Hmm… • Most of our world geometry is static • We can blend multiple textures together in multiple passes (multitexturing) • Radiosity is good at diffuse • Radiosity is view independent
Light Mapping • Let’s precompute the global illumination (sans specular) using radiosity, store it in a light map, and blend that with the detail texture • That’s the gist of it. Implementing it can be tricky. • Don’t need to use radiosity either • Fun Fact: id software used tohave a SGI Origin 2000 (16 x 180mhz, 1.2GB RAM) to crunch maps. They sold it on ebay in 2000. • Note: probably should be called dark mapping…
No Light Mapping Quake 3: Arena nvnews.net
Light Mapping! Quake 3: Arena nvnews.net
Low-Poly Modeling • Trying to make effective, complex models that a game engine can handle is extremely difficult • For the longest time games were just forced to have blocky looking models • Thanks to normal mapping, now we can make really low poly models look incredibly complex
Low-Poly Modeling • This requires that the artist make a normal map • She can draw the normal map manually • Or create two versions of the model, one complex and one simplified, and use an automated tool to generate the normal map that represents the “differences” of the two models
Keyframed Animation • Same idea as keyframes in traditional animation • A keyframe represents position and orientation at a point in time • Break the model into chunks (head, torso, etc.) and each chunk has vectors/matrices associated with it • Keyframes specify the values of those matrices at specific points in time and their geometry • Interpolate position and rotation (quaternions again) between those time periods. • Quake 3 is keyframed and uses ~ 15 keyframes/sec • Uses a lot of memory because you need to store the geometry at each keyframe, but keyframing is fast
Skeletal Animation • The model has a skeleton and the skeleton is animated, not the model • Every vertex on the “skin” is connected to a bone so when the bone moves so does the skin. This is done with hierarchy and matrix transforms (sound familiar?) • This involves transforming vertices so we can do this in a vertex shader (blend registers) • Skeleton allows for realistic physics simulation on the model • Keyframing is almost dead. Doom III, Half-Life 2, and other new games all use skeletal animation. • The memory cost of keyframing was so high that Quake 3 was almost changed to skeletal animation at the last minute • Related: facial animation
Motion Capture • Elegant hack • If you’ve seen decent human animation in a game, it’s mocap. Video games are the biggest market for motion capture and now the movie industry is getting into it. • “Motion capture actor” is actually a legitimate profession now • Tom Hanks, that guy who did Gollum in LOTR Note: Former MLB pitcher John Rocker
Material Libraries • Technical Directors and Artists at a game company now have the luxury of creating material libraries – whole sets of shaders and associated texture maps that can be used to enrich in-game models • 3D movie production, especially at places like Pixar, always work with material libraries, allowing people to focus solely on shader production • This frees the 3D and 2D artists to focus on art, not technology