Real Time Fluids in Games

32
1/32 Real Time Fluids in Real Time Fluids in Games Games Matthias Müller-Fischer, ageia

description

Real Time Fluids in Games. Matthias Müller-Fischer, ageia. ageia. PhysX accelerator chip (PPU) PhysX SDK (PPU accelerated) rigid bodies + joints cloth simulation fluid simulation (SPH). Real Time Fluids in Games. Fluids in Games Heightfield Fluids A very simple program - PowerPoint PPT Presentation

Transcript of Real Time Fluids in Games

Page 1: Real Time Fluids in Games

1/32

Real Time Fluids in GamesReal Time Fluids in Games

Matthias Müller-Fischer, ageia

Page 2: Real Time Fluids in Games

2/32

ageia• PhysX accelerator chip (PPU)

• PhysX SDK (PPU accelerated)

– rigid bodies + joints

– cloth simulation

– fluid simulation (SPH)

Page 3: Real Time Fluids in Games

3/32

Real Time Fluids in GamesReal Time Fluids in Games

• Fluids in Games

• Heightfield Fluids

• A very simple program

• Mathematical background

• Particle Based Fluids

• Simple particle systems

• Smoothed Particle Hydrodynamics (SPH)

Page 4: Real Time Fluids in Games

4/32

Game RequirementsGame Requirements

• CHEAP TO COMPUTE!

• 40-60 fps of which fluid only gets a small fraction

• Low memory consumption

• Must run on consoles

• Stable even in non-realistic settings

• Visually plausible

Page 5: Real Time Fluids in Games

5/32

SolutionsSolutions

• Procedural Water

• Unbounded surfaces, oceans

• Heightfield Fluids

• Ponds, lakes

• Particle Systems

• Splashing, spray, puddles

Page 6: Real Time Fluids in Games

6/32

Procedural AnimationProcedural Animation

• Simulate the effect, not the cause

• No limits to creativity

• E.g. superimpose sine waves:meshuggah.4fo.de, [2],[3]

• See Splish Splash session!

• Difficult but not impossible:

• Fluid – scene interaction

Page 7: Real Time Fluids in Games

7/32

Heightfield FluidsHeightfield Fluids

Page 8: Real Time Fluids in Games

8/32

Heightfield FluidsHeightfield Fluids

• Represent fluid surface as a 2D function u(x,y)

• Pro: Reduction from 3D to 2D

• Cons: One value per (x,y) no breaking waves

u

x

y

u

i

j

continuous discrete

Page 9: Real Time Fluids in Games

9/32

Heightfield „Heightfield „Hello WorldHello World““

loop

v[i,j] +=(u[i-1,j] + u[i+1,j] + u[i,j-1] + u[i,j+1])/4 – u[i,j]

v[i,j] *= 0.99

u[i,j] += v[i,j]

endloop

• Clamp on boundary e.g. def. u[-1,j] = u[0,j]

• A trivial algorithm with impressive results!

• Initialize u[i,j] with some interesting function, v[i,j]=0

Page 10: Real Time Fluids in Games

10/32

The Math Behind It

u

xx x+dx

A

u

Vibrating string

fu

f

• u(x) displacement normal to x-axis

• Assuming small displacements and constant stress

• Force acting normal to cross section A is f =

Infinitesimal element

Page 11: Real Time Fluids in Games

11/32

PDE for the 1D String

u

xx x+dx

A

u

Vibrating string

fu

f

• Force acting normal to cross section A is f =

• Component in u-direction fu ux(ux derivative w.r.t. x)

• Newton’s 2nd law for an infinitesimal segment

dx)utt = uxx+dx - uxx utt = uxx

Infinitesimal element

Page 12: Real Time Fluids in Games

12/32

The 1D Wave Equation

• For the string we have utt = uxx

• Standard form: utt = c2 uxx, where c2=

• General solution:u(t) = a · f (x + ct) + b · f (x - ct) for any function f.

• Thus, c is the speed at which waves travel

Page 13: Real Time Fluids in Games

13/32

Intuition

• Positive curvature is accelerated upwards

• Negative curvature is accelerated downwards

utt = c2 uxx

Page 14: Real Time Fluids in Games

14/32

The 2D Wave Equation

• The wave equation generalizes to 2D as

utt = c2 (uxx + uyy)

utt = c2 2u

utt = c2 u

Page 15: Real Time Fluids in Games

15/32

Discretization

• Replace the 2nd order PDE by two first order PDEsut = v

vt = c2 (uxx + uyy)

• Discretize in space and time (semi-implicit Euler, time step t, grid spacing h)

vt+1[i,j]= vt[i,j] +tc2(u[i+1,j]+u[i-1,j]+u[i,j+1]+u[i,j-1]-4u[i,j])/h2

ut+1[i,j]= ut[i,j] +t vt+1[i,j]

• We are where we started! (without damping)

Page 16: Real Time Fluids in Games

16/32

Remarks on Heightfields

• The simulation is only conditionally stable

– Courant-Friedrichs-Lewy stability condition: ct < h

Mirror: Reflection

Periodic: Wrap around

• Boundary conditions needed

Page 17: Real Time Fluids in Games

17/32

Particle Based FluidsParticle Based Fluids

Page 18: Real Time Fluids in Games

18/32

Particle Based Fluids

• Particle systems are simple and fast

• With particle-particle interaction

– Small puddles, blood, runnels

– Small water accumulations

• Without particle-particle interaction

– Spray, splashing

Page 19: Real Time Fluids in Games

19/32

Simple Particle Systems

• Particles storemass, position, velocity, external forces, lifetimes

mi

vi fi

xi

• Integrated/dt xi = vi

d/dt vi = fi/mi

emitter• Generated by emitters,

deleted when lifetime is exceeded

Page 20: Real Time Fluids in Games

20/32

Particle-Particle Interaction

• No interaction decoupled system fast

• For n particles n2 potential interactions!

• To reduce to linear complexity O(n)define interaction cutoff distance d

d

Page 21: Real Time Fluids in Games

21/32

Spatial Hashing

• Fill particles into grid with spacing d

• Only search potential neighbors in adjacent cells

• Map cells [i,j,k] into 1D array via hash function h(i,j,k)

d

d

Page 22: Real Time Fluids in Games

22/32

Lennard-Jones Interaction

• For simple fluid-like behavior:EquilibriumAttraction

Repulsion

ji

ji

n

ji

m

ji

ji

kk

xx

xx

xxxxxxf

21),(

• k1, k2, m, n control parameters

Page 23: Real Time Fluids in Games

23/32

Solving Navier-Stokes Eqn.

• How formulate Navier-Stokes Eqn. on particles?

• We need continuous fields, e.g. v(x)

• Only have v1, v2, .. vn sampled on particles

• Basic idea:

– Particles induce smooth local fields

– Global field is sum of local fields

Page 24: Real Time Fluids in Games

24/32

SPH

• Smoothed Particle Hydrodynamics

• Invented for the simulation of stars [5]

• Often used for real-time fluid simulation in CG [6]

• Use scalar kernel function W(r)

– Symmetric: W(|x-xi|)

– Normalized: W(x) dx = 1xi

xr

Page 25: Real Time Fluids in Games

25/32

Density Computation

• Global density field

j

jjWm )()( xxx

)( ii x • Density of each particle

• Mass conservation guaranteed

j

jj

jj mdWmd xxxxx )()(

Page 26: Real Time Fluids in Games

26/32

Smoothing Attributes

• Smoothing of attribute A

j

jj

jjs W

AmA )()( xxx

j

jj

js W

AmA )()( xxx

• Gradient of smoothed attribute

Page 27: Real Time Fluids in Games

27/32

Equation of Motion

vgvvv 2

p

t

• The acceleration ai of particle i is, thus

i

ii

fa fi is body force evaluated at xi

ii

dt

d

tDt

Da

vvv

vv

• Because particles follow the fluid we have:

Page 28: Real Time Fluids in Games

28/32

Pressure

• The pressure term yields

)()(pressureji

j j

jjii W

pmp xxxf

)(2

pressureji

j j

jii W

ppm xxf

• Symmetrize (SPH problem: actio reactio)

where pi = ki and k gas constant

Page 29: Real Time Fluids in Games

29/32

Remaining Forces

• Gravity as in simple particle systems

ga i

• Viscosity (simmetrized)

)(2viscosityji

j j

iji Wm xx

vvf

Page 30: Real Time Fluids in Games

30/32

Remarks on SPH

• Incompressibility

– Pressure force reacts to density variation (bouncy)

– Predict densities, solve for incompressibility [8]

• Rendering

– Marching cubes of density iso surface [6]

– Sprites, depth buffer smoothing

• Combine particles and heightfields [7]

Page 31: Real Time Fluids in Games

31/32

References 1/2

[1] AGEIA: www.ageia.com, physx.ageia.com

[2] A. Fournier and W. T. Reeves. A simple model of ocean waves, SIGGRAPH 86, pages 75–84

[3] D. Hinsinger, F. Neyret, M.P. Cani, Interactive Animation of Ocean Waves, In Proceedings of SCA 02

[4] A. Jeffrey, Applied Partial Differential Equations, Academic Press, ISBN 0-12-382252-1

Page 32: Real Time Fluids in Games

32/32

References 2/2

[5] J. J. Monaghan, Smoothed particle hydrodynamics. Annual Review of Astronomy and Astrophysics, 30:543–574, 1992.

[6] M. Müller, D. Charypar, M. Gross. Particle-Based Fluid Simulation for Interactive Applications, In Proceedings of SCA 03, pages 154-159.

[7] J. O’Brien and J. Hodgins, Dynamic simulation of splashing fluids, In Computer Animation 95, pages 198–205

[8] S. Premoze et.al, Particle based simulation of fluids, Eurographics 03, pages 401-410