Cs 378 computer game technology
Download
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