Presentation is loading. Please wait.

Presentation is loading. Please wait.

Animation of Fluids.

Similar presentations


Presentation on theme: "Animation of Fluids."— Presentation transcript:

1 Animation of Fluids

2 Animating Fluid is Hard…
Too complex to animate by hand Surface is changing very quickly Lots of small details In short, a nightmare! Need automatic simulations…

3 Ad-Hoc Methods Some simple algorithms exist for special cases
Mostly waves… What about water glass? Too much work to come up with empirical algorithms for each case…

4 Physically-Based Approach
Look to Fluid Dynamics Long history. Back to Newton… Equations that describe fluid motion Use numerical methods to approximate fluid equations, simulating fluid motion Like mass-spring systems

5 Current State-of-the-art in CG
Marker-And-Cell (MAC) Method fedkiw_fluid\glass00.avi fedkiw_fluid\splash-640.avi Smoothed Particle Hydrodynamics (SPH) muller_particles\sph.avi muller_particles\pool.avi

6 Applications Mostly Hollywood Games Engineering… Shrek Antz
Terminator 3 Many others… Games Engineering…

7 (with as little math as possible)
Fluid Dynamics (with as little math as possible)

8 What do we mean by ‘Fluid’?
liquids or gasses Mathematically: A vector field u (represents the fluid velocity) A scalar field p (represents the fluid pressure) fluid density (d) and fluid viscosity (v)

9 Vector Fields 2D Scalar function: 2D Vector function:
f(x,y) = z z is a scalar value 2D Vector function: u(x,y) = v v is a vector value v = (x’, y’) The set of values u(x,y) = v is called a vector field

10 Fluid Velocity == Vector Field
Can model a fluid as a vector field u(x,y) u is the velocity of the fluid at (x,y) Velocity is different at each point in fluid! Need to compute change in vector field Run AAA_PRESSURETEST.mb

11 Conceptual Leap Particle Simulation: Fluid Simulation :
Track particle positions x = (x,y) Numerically Integrate: change in position Fluid Simulation : Track fluid velocities u = (u,v) at all points x in some fluid volume D Numerically Integrate: change in velocity

12 Equations of Fluid Dynamics
Navier-Stokes Equation: Non-linear Partial Differential Equation Models fluid transport Derived from Newton’s second law conservation of momentum – all the forces go “somewhere” Mass-Conservation condition: If we have a liter of water at the beginning of the solution, we have a liter at the end…

13 Change in Velocity Derivative of velocity with respect to time
Change in velocity, or acceleration So this equation models acceleration of fluids

14 Advection Term Advection term
Force exerted on a particle of fluid by the other particles of fluid surrounding it How the fluid “pushes itself around” Change in Velocity

15 Particle Advection Video

16 Diffusion Term Advection
Change in Velocity Viscosity constant controls velocity diffusion Essentially, this term describes how fluid motion is damped Highly viscous fluids stick together Like maple syrup Low-viscosity fluids flow freely Gasses have low viscosity

17 Weather: Advection & Diffusion
“Jet-Stream”

18 Pressure Term Pressure follows a diffusion process Moving == velocity
Fluid moves from high-pressure areas to low-pressure areas Moving == velocity So fluid moves in direction of largest change in pressure This direction is the gradient Diffusion Advection Change in Velocity p = 0.5 p = 1 p = 0 Time…

19 Weather: Pressure “Fronts” are the boundaries between regions of air with different pressure… “High Pressure Zones” will diffuse into “Low Pressure Zones”

20 Fluid Example Fast moving fluid is “pulled” towards slower-moving fluid Maya AAA_FLUIDEXAMPLE.mb – play in step-frame… Viscosity = 0.7 -> kills wigglies

21 Body Force Body force term represents external forces that act on the fluid Gravity Wind Etc… Diffusion Advection Change in Velocity Pressure

22 Summary And 1 liter == 1 liter constraint:
Diffusion Advection Change in Velocity Pressure And 1 liter == 1 liter constraint: Need to simulate these equations…

23 Intermission Smoke Fire fedkiw_octree\smoke_octree.avi
fedkiw_fire\flammable.avi

24 Implementation Overview

25 Fluid Representation Want to simulate motion of some fluid body
fluid is represented by a vector field Two problems: Need to compute change in vector field (using Navier- Stokes equation) Need to track fluid position

26 Solution: Discretization
Create regular grid

27 Solution: Discretization
Create regular grid Discretize fluid into grid cells

28 Solution: Discretization
Create regular grid Discretize fluid into grid cells Track single velocity vector in each grid cell

29 Simulation Step f u + Ñ - × = ¶ p d v t 1 ) (
“Solve” Navier-Stokes equation for each grid cell to compute change in velocity: f u + Ñ - × = p d v t 1 ) ( Body Force is just like mass-spring systems non-linear Advection term is difficult. Can finite-difference, but is not robust… finite-difference Diffusion and Pressure terms are linear systems of equations

30 Free Surface Tracking with Marker Particles
Want higher-resolution surface for rendering Add a bunch of particles Passively Advect them based on fluid velocity

31 So the rest is easy, right?
No Still have to enforce mass-conservation constaint: Standard equation does not take boundary conditions into account Boundary conditions are things like walls, fluid/air boundaries, rubber duckies, and so on Have to ‘hack’ the equations…this is hard… Numerical Stability is elusive…

32 Intermission 2 Melting Rigid Body + Fluid
carlson_melting\bunnyside.mpg Rigid Body + Fluid carlson_rigidfluid\rigidfluid.avi

33 Problems with Fluid Simulation

34 Surface Resolution…

35 Weird Behavior….

36 Water or Vegetable Oil? fedkiw_fluid\glass00.avi
Oh, and it’s very, very slow 7 minutes per frame for water glass…

37 Hard to Control Animators want to control fluid behavior
Fluid simulation has a lot of free variables There has been limited success so far…

38 Numerical Stability

39 Maya Fluid Effects

40 What does fluid effects support?
Naver-Stokes-based Fluids: Smoke Clouds Explosions Fire “Goo” type-stuff Ad-Hoc / Mass-Spring fluids: Oceans Ponds

41 Fluid Effects Algorithms
Unconditionally Stable Navier-Stokes simulation Means they never explode, even with large timesteps Jos Stam, “Stable Fluids”, SIGGRAPH 99 Do not preserve volume very well Ok for smoke Problematic for water glass… Gets worse w/ larger timestep

42 Maya Smoke Smoke demo Create fluid volume w/ smoke emitter
Play w/ turbulence, volume, dissipation, etc Set color Add sphere, make collide Add fire

43 Maya Fire Looks like smoke…

44 More Fluid Effects Demos
misc\WindTunnelParticles.ma Smoke\Thick2DSmoke.ma Misc\RedGooCollision.ma

45 Maya Ocean 2D height field – no crashing waves
Can attach ‘bouyant’ objects

46 Maya Pond 2D height field Mass-spring system Bouys, Boats, Wakes
No splashing Mass-spring system Bouys, Boats, Wakes Can run in real-time

47 Fin (questions?)


Download ppt "Animation of Fluids."

Similar presentations


Ads by Google