46
Erin Catto Blizzard Entertainment Numerical Integration

Erin Catto Blizzard Entertainment Numerical Integration

Embed Size (px)

Citation preview

Page 1: Erin Catto Blizzard Entertainment Numerical Integration

Erin CattoBlizzard Entertainment

Numerical Integration

Page 2: Erin Catto Blizzard Entertainment Numerical Integration

Basic Idea

Games use differential equations for physics.

These equations are hard to solve exactly.

We can use numerical integration to solve them approximately.

Page 3: Erin Catto Blizzard Entertainment Numerical Integration

Overview

Differential Equations Numerical Integrators Demos

Page 4: Erin Catto Blizzard Entertainment Numerical Integration

Typical Game Loop

Start t = 0

Player Input

Simulate t

Render

t = t + t

Choose t

Page 5: Erin Catto Blizzard Entertainment Numerical Integration

Simulation

Animation AI Physics

Differential Equations

Page 6: Erin Catto Blizzard Entertainment Numerical Integration

What is a differential equation?

An equation involving derivatives.

rate of change of a variable = a function

Page 7: Erin Catto Blizzard Entertainment Numerical Integration

Anatomy of Differential Equations

State Dependent variables Independent variables

Initial Conditions Model

The differential equation itself

Page 8: Erin Catto Blizzard Entertainment Numerical Integration

Projectile Motion

State Independent variable: time (t) Dependent variables: position (y) and velocity (v)

Initial Conditions t0, y0, v0

Page 9: Erin Catto Blizzard Entertainment Numerical Integration

Projectile Motion

2

2

ma F

d ym mgdt

Model: vertical motion

x

y

2

2

d yg

dt

Page 10: Erin Catto Blizzard Entertainment Numerical Integration

First Order Form

Numerical integrators need differential equations to be put into a special format.

0

,

0

dxf t x

dtx x

Page 11: Erin Catto Blizzard Entertainment Numerical Integration

First Order Form

Arrays of equations work too.

11 1

1

, , ,

, , ,

n

nn n

dxf t x x

dt

dxf t x x

dt

,dt

dt

xf x

Page 12: Erin Catto Blizzard Entertainment Numerical Integration

Projectile MotionFirst Order Form

dyv

dtdv

gdt

x

y2

2

d yg

dt

Page 13: Erin Catto Blizzard Entertainment Numerical Integration

Projectile MotionFirst Order Form

0

0

0

0

y y

v v

x

y

Page 14: Erin Catto Blizzard Entertainment Numerical Integration

Mass-Spring Motion

Consider the vertical motion of a character.

Page 15: Erin Catto Blizzard Entertainment Numerical Integration

Mass-Spring Motion

State time: t position: x velocity: v

Initial Conditions t0, x0, v0

x

Page 16: Erin Catto Blizzard Entertainment Numerical Integration

Mass-Spring Motion

Idealized model

m

ground

k

2

2

ma F

d xm kxdt

x2

2

d x kx

dt m

Page 17: Erin Catto Blizzard Entertainment Numerical Integration

Mass-Spring Motion

First Order Form

dxv

dtdv k

xdt m

0

0

0

0

x x

v v

Page 18: Erin Catto Blizzard Entertainment Numerical Integration

Solving Differential Equations

Sometimes we can solve our DE exactly. Many times our DE is too complicated to be

solved exactly.

Page 19: Erin Catto Blizzard Entertainment Numerical Integration

Hard Problems

Nonlinear equations Multiple variables

Page 20: Erin Catto Blizzard Entertainment Numerical Integration

Hard Problems

Projectile with air resistance

dm c mdt

v v

v v gv

Page 21: Erin Catto Blizzard Entertainment Numerical Integration

Hard Problems

Mass-spring in 3D

0dm k Ldt

v x

xx

Page 22: Erin Catto Blizzard Entertainment Numerical Integration

Hard Problems Numerical integration can help!

Handles nonlinearities Handles multiple variables

Page 23: Erin Catto Blizzard Entertainment Numerical Integration

Numerical Integration

Start with our first order form

0

,

0

dxf t x

dtx x

Page 24: Erin Catto Blizzard Entertainment Numerical Integration

A Simple Idea

Approximate the slope.

t

x

x t h x tslope

h

t t+h

Page 25: Erin Catto Blizzard Entertainment Numerical Integration

A Simple Idea

x t h x tdx

dt h

Forward difference:

Page 26: Erin Catto Blizzard Entertainment Numerical Integration

A Simple Idea

,x t h x t

f t x th

Shuffle terms:

,x t h x t h f t x t

Page 27: Erin Catto Blizzard Entertainment Numerical Integration

A Simple Idea

Using this formula, we can make a time step h to find the new state.

We can continue making time steps as long as we want.

The time step is usually small

,x t h x t h f t x t

Page 28: Erin Catto Blizzard Entertainment Numerical Integration

Explicit Euler

This is called the Explicit Euler method. All terms on the right-hand side are known. Substitute in the known values and compute

the new state.

,x t h x t h f t x t

Page 29: Erin Catto Blizzard Entertainment Numerical Integration

What If …

This is called the Implicit Euler method. The function depends on the new state. But we don’t know the new state!

,x t h x t h f t h x t h

Page 30: Erin Catto Blizzard Entertainment Numerical Integration

Implicit Euler

We have to solve for the new state. We may have to solve a nonlinear equation. Can be solved using Newton-Raphson. Usually impractical for games.

,x t h x t h f t h x t h

Page 31: Erin Catto Blizzard Entertainment Numerical Integration

Implicit vs Explicit

Explicit is fast. Implicit is slow. Implicit is more stable than explicit. More on this later.

Page 32: Erin Catto Blizzard Entertainment Numerical Integration

Opening the Black Box

Explicit and Implicit Euler don’t know about position or velocity.

Some numerical integrators work with position and velocity to gain some advantages.

Page 33: Erin Catto Blizzard Entertainment Numerical Integration

The Position ODE

This equation is trivially linear in velocity. We can exploit this to our advantage.

dxv

dt

Page 34: Erin Catto Blizzard Entertainment Numerical Integration

Symplectic Euler

First compute the new velocity. Then compute the new position using the

new velocity.

, ,v t h v t

f t x t v th

x t h x tv t h

h

Page 35: Erin Catto Blizzard Entertainment Numerical Integration

Symplectic Euler

We get improved stability over Explicit Euler, without added cost.

But not as stable as Implicit Euler

Page 36: Erin Catto Blizzard Entertainment Numerical Integration

Verlet

Assume forces only depend on position. We can eliminate velocity from Symplectic

Euler.

,v t h v t

f t x th

x t h x tv t h

h

Page 37: Erin Catto Blizzard Entertainment Numerical Integration

Verlet

1 0 1

2 1 2

2 1 1

x x hv

x x hv

v v h f

Write two position formulas and one velocity formula.

Page 38: Erin Catto Blizzard Entertainment Numerical Integration

Verlet

22 1 0 12x x x h f

Eliminate velocity to get:

Page 39: Erin Catto Blizzard Entertainment Numerical Integration

Newton

Assume constant force:

21

2x t h x t v t h ah

Exact for projectiles (parabolic motion).

Page 40: Erin Catto Blizzard Entertainment Numerical Integration

Demos

Projectile Motion Mass-Spring Motion

Page 41: Erin Catto Blizzard Entertainment Numerical Integration

Integrator Quality

1. Stability

2. Performance

3. Accuracy

Page 42: Erin Catto Blizzard Entertainment Numerical Integration

Stability

Extrapolation Interpolation Mixed Energy

Page 43: Erin Catto Blizzard Entertainment Numerical Integration

Performance

Derivative evaluations Matrix Inversion Nonlinear equations Step-size limitation

Page 44: Erin Catto Blizzard Entertainment Numerical Integration

Accuracy

Accuracy is measured using the Taylor Series.

21

2x t h x t x t h x t h

Page 45: Erin Catto Blizzard Entertainment Numerical Integration

Accuracy

First-order accuracy is usually sufficient for games.

You can safely ignore RK4, BDF, Midpoint, Predictor-Corrector, etc.

Accuracy != Stability

Page 46: Erin Catto Blizzard Entertainment Numerical Integration

Further Reading &Sample Code

http://www.gphysics.com/downloads/ Hairer, Geometric Numerical Integration