fluid animation cse 3541 matt boggus. procedural approximations – heightfield fluids mathematical...

24
Fluid Animation CSE 3541 Matt Boggus

Upload: hilary-mosley

Post on 11-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Fluid Animation

CSE 3541 Matt Boggus

Page 2: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Overview

• Procedural approximations– Heightfield fluids

• Mathematical background– Navier-Stokes equation

• Computational models for representing fluids– Grids– Particles– Hybrid

• Using the computational models– Forces– “Stable fluids” by Stam

Page 3: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Real-time Fluids

• Goals:– Cheap to compute– Low memory consumption– Stability– Plausibility– Interactivity

Page 4: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Real-time Fluids

• Procedural water– Unbounded surfaces, oceans

• Particle systems– Splashing, spray, puddles,

smoke, bubbles, rain

• Heightfield fluids– Ponds, lakes, rivers

Page 5: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Heightfield fluid

• Function u(x,y) gives height at (x,y)• Store height values in an array u[x,y]• Note: limited to one height per (x,y)

Page 6: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Heightfield or Heightmap terrain data

2D greyscale image Surface in 3D space

Images from http://en.wikipedia.org/wiki/Heightmap

Page 8: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Setting and updating heightfield fluids

• Methods– Sum of sines

• Add multiple sin functions together

– Pressure or height differences between cells– Collision detection and displacement

• Additional considerations– When updating, a second heightfield may be used to

preserve the values from the previous frame– Handle boundary cases differently

Page 9: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Pressure/Height differences

Initialize u[i,j] with some interesting functionInitialze v[i,j]=0loop

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.99u[i,j] += v[i,j]

endloop

Page 10: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Heightfield mesh creation and cell iteration

u[x,y] ; dimensions n by n

Page 11: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Heightfield mesh creation and cell iteration

Quad[i,j] such that i = 0, j = 0; Vertices are U[0,0], U[1,0], U[1,1], U[0,1] U[i,j], U[i+1,j], U[i+1,j+1], U[i,j+1]

Page 12: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Heightfield mesh creation and cell iteration

Inner loop iterates over i, the x coordinate Last quad: i=5 (i = n-1)

Page 13: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Heightfield mesh creation and cell iteration

Outer loop iterates over j, the y coordinateLast row: j=5 (j = n-1)

Page 14: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Smoothing

• For every grid cell u[i,j], set it to average of itself and neighbors

• Implementation concerns:– A. looping order– B. boundary cases– C. both– D. none

Page 15: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Heightfield mesh particle collection

Step 2. For each u[i,j], determine which particles are closet to it(bounding box collision test)

Step 1. Zero out all u[i,j]

Alternative Step 2. For each particle, determine which (i,j) it is closest to(translate position half a cell, then floor it)

Page 16: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Navier-Stokes Equation

• Momentum equation

• Incompressibility

ut = k2u –(u)u – p + f

u=0

Change in velocity

Diffusion/ Viscosity

Advection Pressure Body Forces

u: the velocity fieldk: kinematic viscosity

Page 17: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Fluid Models

Grid-based (Eulerian) d is density

Particle-based (Lagrangian)

Hybrid Animate the particles “Collect” particles to compute density

d d dd

d d dd

d d dd

d d dd

Page 18: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Fluid particle forces

• Adhesion forces : attract particles to each other and to other objects

• Viscosity forces : limit shear movement of particles in the liquid

• Friction forces: dampen movement of particles in contact with objects

Page 19: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Adhesion ForceAttract particles to each other and to other

objects (similar to gravitational force)

The adhesion force between (left) honey-honey, (middle) honey-ceramic and (right) non-mixing liquid

Page 20: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Viscosity Force

• Limit shear movement of particles in the liquid

• The momentum between the neighbour particles are exchanged

Pp

Ppn

exchpnpn

exchpp

exch

pnp

i

n

n i

pnppnexch

PPP

PPP

P

PP

d

k

v

dk

tPPdkvP

exchanced momentum:

pn and p of momentum:,

particle processed thefrom distance :

(Gaussian)function gA weightin :()

tcoefficien viscosity:

)(2

))((

1

Page 21: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Friction Force

tt fvv ˆ

• Dampen movement of particles in contact with objects in the environment

• Scale down the velocity by a constant value

Page 22: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Case Study: A 2D Fluid Simulator

• Incompressible, viscous fluid• Assuming the gravity is the only external force • No inflow or outflow • Constant viscosity, constant density

everywhere in the fluid

Page 23: Fluid Animation CSE 3541 Matt Boggus. Procedural approximations – Heightfield fluids Mathematical background – Navier-Stokes equation Computational models

Stable Fluids – overview of data

Velocity grid Density grid

Move densities around using velocity grid and dissipate densities

Move velocities around using velocity grid and dissipate velocities

Walkthrough: http://www.dgp.utoronto.ca/~stam/reality/Talks/FluidsTalk/FluidsTalkNotes.pdfSource code: http://www.autodeskresearch.com/publications/games