* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Document
Boundary layer wikipedia , lookup
Euler equations (fluid dynamics) wikipedia , lookup
Flow measurement wikipedia , lookup
Accretion disk wikipedia , lookup
Drag (physics) wikipedia , lookup
Coandă effect wikipedia , lookup
Sir George Stokes, 1st Baronet wikipedia , lookup
Magnetorotational instability wikipedia , lookup
Aerodynamics wikipedia , lookup
Lattice Boltzmann methods wikipedia , lookup
Stokes wave wikipedia , lookup
Airy wave theory wikipedia , lookup
Hydraulic machinery wikipedia , lookup
Reynolds number wikipedia , lookup
Navier–Stokes equations wikipedia , lookup
Magnetohydrodynamics wikipedia , lookup
Bernoulli's principle wikipedia , lookup
Computational fluid dynamics wikipedia , lookup
Derivation of the Navier–Stokes equations wikipedia , lookup
Animation of Fluids 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… 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… 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 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 Applications • Mostly Hollywood – Shrek – Antz – Terminator 3 – Many others… • Games • Engineering… Fluid Dynamics (with as little math as possible) 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) Vector Fields • 2D Scalar 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 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 Conceptual Leap • Particle 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 dx dt du dt 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… Change in Velocity • Derivative of velocity with respect to time • Change in velocity, or acceleration – So this equation models acceleration of fluids Advection Term Change in Velocity • Advection term – Force exerted on a particle of fluid by the other particles of fluid surrounding it – How the fluid “pushes itself around” Particle Advection Video Diffusion Term Change in Velocity Advection • 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 Weather: Advection & Diffusion • “Jet-Stream” Pressure Term Change in Velocity Advection Diffusion • Pressure follows a diffusion process – 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 p=0 p=1 Time… p = 0.5 Weather: Pressure • “Fronts” are the boundaries between regions of air with different pressure… • “High Pressure Zones” will diffuse into “Low Pressure Zones” Fluid Example • Fast moving fluid is “pulled” towards slower-moving fluid Body Force Change in Velocity Advection Diffusion Pressure • Body force term represents external forces that act on the fluid – Gravity – Wind – Etc… Summary Change in Velocity Advection Diffusion Pressure • And 1 liter == 1 liter constraint: • Need to simulate these equations… Intermission • Smoke – fedkiw_octree\smoke_octree.avi • Fire – fedkiw_fire\flammable.avi Implementation Overview 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 NavierStokes equation) – Need to track fluid position Solution: Discretization • Create regular grid Solution: Discretization • Create regular grid • Discretize fluid into grid cells Solution: Discretization • Create regular grid • Discretize fluid into grid cells • Track single velocity vector in each grid cell Simulation Step • “Solve” Navier-Stokes equation for each grid cell to compute change in velocity: u 1 = -(u )u + (vu) - p + f t d non-linear Advection term is difficult. Can finite-difference, but is not robust… finite-difference Diffusion and Pressure terms are linear systems of equations Body Force is just like massspring systems Free Surface Tracking with Marker Particles • Want higher-resolution surface for rendering • Add a bunch of particles • Passively Advect them based on fluid velocity 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… Intermission 2 • Melting – carlson_melting\bunnyside.mpg • Rigid Body + Fluid – carlson_rigidfluid\rigidfluid.avi Problems with Fluid Simulation Surface Resolution… Weird Behavior…. Water or Vegetable Oil? • fedkiw_fluid\glass00.avi • Oh, and it’s very, very slow – 7 minutes per frame for water glass… Hard to Control • Animators want to control fluid behavior • Fluid simulation has a lot of free variables • There has been limited success so far… Numerical Stability Maya Fluid Effects What does fluid effects support? • Naver-Stokes-based Fluids: – – – – – Smoke Clouds Explosions Fire “Goo” type-stuff • Ad-Hoc / Mass-Spring fluids: – Oceans – Ponds 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 Maya Smoke • Smoke demo Maya Fire • Looks like smoke… More Fluid Effects Demos Maya Ocean • 2D height field – no crashing waves • Can attach ‘bouyant’ objects Maya Pond • 2D height field – No splashing • Mass-spring system • Bouys, Boats, Wakes • Can run in real-time Fin (questions?)