Game Physics

32
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.

description

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. - PowerPoint PPT Presentation

Transcript of Game Physics

Page 1: Game Physics

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.

Page 2: Game Physics

Game Physics

• What is meant by Physics in games (new)?– Fluid dynamics– Deformable models– Ragdoll (non-scripted)

articulation– (More) Accurate simulation

Page 3: Game Physics

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?

Page 4: Game Physics

Discussion items

• Dead-reckoning• Emergent Behavior• Collision Detection• Newtonian Physics and gravity• Forward Kinematics• Inverse Kinematics• Free-form deformation• Fluid Flow

Page 5: Game Physics

Collision Detection

Complicated for two reasons1. 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

Page 6: Game Physics

Collision Detection

Two basic techniques1. Overlap testing

• Detects whether a collision has already occurred

2. Intersection testing• Predicts whether a collision will occur in the future

Page 7: Game Physics

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

Page 8: Game Physics

Overlap Testing:Useful Results

• Useful results of detected collision– Time collision took place– Collision normal vector

Page 9: Game Physics

Overlap Testing:Collision Time

• Collision time calculated by moving object back in time until right before collision– Bisection is an effective technique

B B

t1

t0.375

t0.25

B

t0

I te r a tio n 1F o r w ar d 1 /2

I te r a tio n 2Bac k w ar d 1 /4

I te r a tio n 3F o r w ar d 1 /8

I te r a tio n 4F o r w ar d 1 /1 6

I te r a tio n 5Bac k w ar d 1 /3 2

I n itia l O v er lapT es t

t0.5t0.4375 t0.40625

BB B

A

A

A

AA A

Page 10: Game Physics

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

t0t -1 t1 t2

b u lle t

w in d o w

Page 11: Game Physics

Intersection Testing

• Predict future collisions

• When predicted:– Move simulation to time of collision– Resolve collision– Simulate remaining time step

Page 12: Game Physics

Intersection Testing:Swept Geometry

• Extrude geometry in direction of movement• Swept sphere turns into a “capsule” shape

t0

t1

Page 13: Game Physics

Intersection Testing:Sphere-Sphere Collision

Q 1

Q 2

P 1

P 2

P

Q

t= 0

t= 0

t= 1

t= 1

t

,

2

2222

B

rrΑBt

QP

BAΒΑ .QQPPB

QPA

1212

11

Page 14: Game Physics

Intersection Testing:Sphere-Sphere Collision

• Smallest distance ever separating two spheres:

• If

there is a collision

2

222

BAd

BA

22QP rrd

Page 15: Game Physics

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

Page 16: Game Physics

Dealing with Complexity

Two issues1. Complex geometry must be simplified

2. Reduce number of object pair tests

Page 17: Game Physics

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

Page 18: Game Physics

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?

Page 19: Game Physics

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

Page 20: Game Physics

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

Page 21: Game Physics

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…

Page 22: Game Physics

No Light Mapping

Quake 3: Arena nvnews.net

Page 23: Game Physics

Light Mapping!

Quake 3: Arena nvnews.net

Page 24: Game Physics

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

Page 25: Game Physics

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

Page 26: Game Physics

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

Page 27: Game Physics

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

Page 28: Game Physics

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

Page 29: Game Physics

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

Page 30: Game Physics

Doom III

Page 31: Game Physics

Halo 2

Page 32: Game Physics

Black and White 2