cs 378 computer game technology
Download
Skip this Video
Download Presentation
CS 378: Computer Game Technology

Loading in 2 Seconds...

play fullscreen
1 / 26

CS 378: Computer Game Technology - PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on

CS 378: Computer Game Technology. Physics for Games Spring 2012. Game Physics – Basic Areas. Point Masses Particle simulation Collision response Rigid-Bodies Extensions to non-points Soft Body Dynamic Systems Articulated Systems and Constraints Collision Detection. Physics Engines.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' CS 378: Computer Game Technology' - elroy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cs 378 computer game technology

CS 378: Computer Game Technology

Physics for Games

Spring 2012

game physics basic areas
Game Physics – Basic Areas
  • Point Masses
    • Particle simulation
    • Collision response
  • Rigid-Bodies
    • Extensions to non-points
  • Soft Body Dynamic Systems
  • Articulated Systems and Constraints
  • Collision Detection
physics engines
Physics Engines
  • API for collision detection
  • API for kinematics (motion but no forces)
  • API for dynamics
  • Examples
    • Box2d
    • Bullet
    • ODE (Open Dynamics Engine)
    • PhysX
    • Havok
    • Etc.

University of Texas at Austin CS 378 – Game Technology Don Fussell 3

particle dynamics and particle systems
Particle dynamics and particle systems
  • A particle system is a collection of point masses that obeys some physical laws (e.g, gravity, heat convection, spring behaviors, …).
  • Particle systems can be used to simulate all sorts of physical phenomena:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 4

particle in a flow field
Particle in a flow field
  • We begin with a single particle with:
    • Position,
    • Velocity,
  • Suppose the velocity is actually dictated by some driving function g:

y

x

g(x,t)

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 5

vector fields
Vector fields
  • At any moment in time, the function g defines a vector field over x:
  • How does our particle move through the vector field?

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 6

diff eqs and integral curves
Diff eqs and integral curves
  • The equation

is actually a first order differential equation.

  • We can solve for x through time by starting at an initial point and stepping along the vector field:
  • This is called an initial value problem and the solution is called an integral curve.

Start Here

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 7

eulers method
Eulersmethod
  • One simple approach is to choose a time step, Dt, and take linear steps along the flow:
  • Writing as a time iteration:
  • This approach is called Euler’s method and looks like:
  • Properties:
    • Simplest numerical method
    • Bigger steps, bigger errors. Error ~ O(Dt2).
  • Need to take pretty small steps, so not very efficient. Better (more complicated) methods exist, e.g., “Runge-Kutta” and “implicit integration.”
particle in a force field
Particle in a force field
  • Now consider a particle in a force field f.
  • In this case, the particle has:
    • Mass, m
    • Acceleration,
  • The particle obeys Newton’s law:
  • The force field f can in general depend on the position and velocity of the particle as well as time.
  • Thus, with some rearrangement, we end up with:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 9

second order equations
Second order equations

This equation:

is a second order differential equation.

Our solution method, though, worked on first order differential equations.

We can rewrite this as:

where we have added a new variable v to get a pair of coupled first order equations.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 10

phase space
Phase space
  • Concatenate x and v to make a 6-vector: position in phase space.
  • Taking the time derivative: another 6-vector.
  • A vanilla 1st-order differential equation.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 11

differential equation solver
Differential equation solver

Starting with:

Applying Euler’s method:

And making substitutions:

Writing this as an iteration, we have:

Again, performs poorly for large Dt.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 12

particle structure
Particle structure

How do we represent a particle?

Position in phase space

position

velocity

force accumulator

mass

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 13

single particle solver interface
Single particle solver interface

getDim

getState

setState

derivEval

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 14

particle systems

n

time

particles

Particle systems

In general, we have a particle system consisting of n particles to be managed over time:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 15

particle system solver interface

n

time

particles

Particle system solver interface

For n particles, the solver interface now looks like:

get/setState

getDim

derivEval

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 16

particle system diff eq solver
Particle system diff. eq. solver

We can solve the evolution of a particle system again using the Euler method:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 17

forces
Forces
  • Each particle can experience a force which sends it on its merry way.
  • Where do these forces come from? Some examples:
    • Constant (gravity)
    • Position/time dependent (force fields)
    • Velocity-dependent (drag)
    • Combinations (Damped springs)
  • How do we compute the net force on a particle?

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 18

particle systems with forces
Particle systems with forces
  • Force objects are black boxes that point to the particles they influence and add in their contributions.
  • We can now visualize the particle system with force objects:

nf

forces

n

time

particles

Fnf

F1

F2

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 19

gravity and viscous drag
Gravity and viscous drag

The force due to gravity is simply:

p->f += p->m * F->G

Often, we want to slow things down with viscous drag:

p->f -= F->k * p->v

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 20

damped spring

r= rest length

Damped spring

Recall the equation for the force due to a spring:

We can augment this with damping:

The resulting force equations for a spring between two particles become:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 21

deriveval
derivEval

Clear forces

Loop over particles, zero force accumulators

Calculate forces

Sum all forces into accumulators

Return derivatives

Loop over particles, return v and f/m

Clear force

accumulators

1

Apply forces to particles

2

Fnf

F1

F2

F3

3

Return derivativesto solver

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 22

bouncing off the walls

P

N

Bouncing off the walls
  • Add-on for a particle simulator
  • For now, just simple point-plane collisions

A plane is fully specified by any point P on the plane and its normal N.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 23

collision detection

x

v

N

P

Collision Detection

How do you decide when you’ve crossed a plane?

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 24

normal and tangential velocity

v

v

N

P

Normal and tangential velocity

To compute the collision response, we need to consider the normal and tangential components of a particle’s velocity.

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 25

collision response
Collision Response

before

after

Without backtracking, the response may not be enough to bring a particle to the other side of a wall.

In that case, detection should include a velocity check:

University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell 26

ad