570 likes | 1.05k Views
SCA 2006. Vortex Fluid Structure For Smoke Control. Alexis Angelidis (1) Fabrice Neyret (2) Karan Singh (1) Derek Nowrouzezahrai (1) (1): DGP, U of Toronto (2): Evasion-GRAVIR / IMAG-INRIA. Motivation. Fluid Animation: smoke , clouds, fire, explosion, splashes, sea…
E N D
SCA 2006 Vortex Fluid StructureFor Smoke Control Alexis Angelidis (1) Fabrice Neyret (2) Karan Singh (1) Derek Nowrouzezahrai (1) (1): DGP, U of Toronto (2): Evasion-GRAVIR / IMAG-INRIA
Motivation • Fluid Animation: smoke, clouds, fire, explosion, splashes, sea… • Simulation vs Animation [ Areté Entertainment, inc. 96] [ LOTR ]
Motivation • Fluid Animation: smoke, clouds, fire, explosion, splashes, sea… • Simulation vs Animation • Approaches to control: • Phenomenological, limited • Fake forces • Control by keyframing ‘shapes’ [ Areté Entertainment, inc. 96] [ LotR ]
Motivation [Treuille et al.03],[McNamara et al.04],[Fattal et al.04] Most related work • Density field given at keyframes • Solver between frames What we want • No hand-drawn smoke • Natural control key2 key1 [McNamara et al.04]
Background [AN05] Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian ‘‘Chart of methods for numerical fluid simulation’’
vorticity Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian 3D field velocity v Rotation in rad s-1 translation in m s-1
vorticity Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian velocity v Curl
vorticity Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian velocity v BIOT-SAVART
Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian Dynamics : Eulerian The flow modifies quantities held at static positions Lagrangian The flow carries floaters that hold the quantities
Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian Eulerian Lagrangian in grid at particle
Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian NAVIER-STOKES ( incompressible )
Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian
Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian VORTICITY EQUATION ( inviscid )
Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian No diffusion Implicit incompressibility compact Unbounded … Easy boundary conditions Easy extra differential eqn …
VORTICITY EQUATION Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian Vorticity: Vortex particle advected, vector stretched vorticity moves as material lines
w Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian Vorticity: Our primitive = curves = tangent
Background Velocity Vorticity moving quantity representation popular Eulerian our method Lagrangian Density: Dedicated particles - passive floaters - for rendering - only where smoke is Density: a quantity at nodes
Lagrangian primitives • Curves carry the vorticity • Each local vortex induces a weighted rotation
Lagrangian primitives • Curves carry the vorticity • Each local vortex induces a weighted rotation
Method of simulation • Vortex particles (for motion) organized as curves. = tangent • Smoke particles (for visualisation) • Curves carry vortices • Vortices induce a velocity field • velocity field deforms curves & smoke At every step: • Advect the curves • Stretch • Advect the smoke
Method of simulation • Vortex particles (for motion) organized as curves. = tangent • Smoke particles (for visualisation) • Curves carry vortices • Vortices induce a velocity field • velocity field deforms curves & smoke At every step: • Advect the curves • Stretch • Advect the smoke
Method of simulation • Vortex particles (for motion) organized as curves. = tangent • Smoke particles (for visualisation) • Curves carry vortices • Vortices induce a velocity field • velocity field deforms curves & smoke At every step: • Advect the curves • Stretch • Advect the smoke
Contributions • A new representation of vortex curves Compact, stable, controlable motion primitives • Controls of the motion primitives • Fast ‘‘noise’’ for fake turbulence details
Contributions • A new representation of vortex curves Compact, stable, controlable motion primitives • Controls of the motion primitives • Fast ‘‘noise’’ for fake turbulence details
Deformation of curves previous approach [AN05] If not refined: undersampling Polygon If refined: too complex Strategy to control complexity
… New representation • Solution: harmonic analysis of coordinates x = in y z a pair of coefficients for each harmonic • Reference frame: best ellipsoid Complexity control • Curves described by : • Frame o ex ey ez • Frequencies <cx cy cz>1..N Synthesis Advection Analysis
… New representation • Solution: harmonic analysis of coordinates x = in y z a pair of coefficients for each harmonic ez ey • Reference frame: best ellipsoid o ex Complexity control • Curves described by : • Frame o ex ey ez • Frequencies <cx cy cz>1..N Synthesis Advection Analysis
… New representation • Solution: harmonic analysis of coordinates x = in y z a pair of coefficients for each harmonic ez ey • Reference frame: best ellipsoid o ex Complexity control • Curves described by : • Frame o ex ey ez • Frequencies <cx cy cz>1..N Synthesis Advection Analysis
… New representation • Solution: harmonic analysis of coordinates x = in y z a pair of coefficients for each harmonic ez ey • Reference frame: best ellipsoid o ex Complexity control • Curves described by : • Frame o ex ey ez • Frequencies <cx cy cz>1..N Synthesis Advection Analysis
ez ey … o ex Meaning of description • ez points towards moving direction • Frequencies cx cy cz give texture to the flow • Thickness
Contributions • A new representation of vortex curves Compact, stable, controlable motion primitives • Controls of the motion primitives • Fast ‘‘noise’’ for fake turbulence details
+ without with ez ey <cx cy cz>1..N … o ex Control • direction: align ez with tangent • Targets: • Twisting smoke: spin vortices around ez • Edit, delete … • Modulate cx cy cz to texturethe flow
+ without with ez ey <cx cy cz>1..N … o ex Control • direction: align ez with tangent • Targets: • Twisting smoke: spin vortices around ez • Edit, delete … • Modulate cx cy cz to texturethe flow
+ without with ez ey <cx cy cz>1..N … o ex Control • direction: align ez with tangent • Targets: • Twisting smoke: spin vortices around ez • Edit, delete … • Modulate cx cy cz to texturethe flow
How to control • One cannot just translate the curves: the smoke does not follow • Solution: paddle(servoing ) ez ey o ex
Contributions • A new representation of vortex curves Compact, stable, controlable motion primitives • Controls of the motion primitives • Fast ‘‘noise’’ for fake turbulence details
[AN05]: noise = extra vortex particles advected in the flow, no stretch Costly (needs a lot) Source, sampling Tiled vortex noise: noise layer = separate simulation, in toroidal space Tiled in space Additional evolving velocity field Noise: fake turbulence details
[AN05]: noise = extra vortex particles advected in the flow, no stretch Costly (needs a lot) Source, sampling Tiled vortex noise: noise layer = separate simulation, in toroidal space Tiled in space Additional evolving velocity field Noise: fake turbulence details
[AN05]: noise = extra vortex particles advected in the flow, no stretch Costly (needs a lot) Source, sampling Tiled vortex noise: noise layer = separate simulation, in toroidal space Tiled in space Additional evolving velocity field Noise: fake turbulence details
Contributions • A new representation of vortex curves Compact, stable, controlable motion primitives • Controls of the motion primitives • Fast ‘‘noise’’ for fake turbulence details • Velocity cache, rendering
Octree cache • Velocity computed at octree leaves + inbetween interpolation • Velocity computed at every smoke particle &every vorticity curve sample
Octree cache • Velocity computed at octree leaves + inbetween interpolation • Velocity computed at every smoke particle &every vorticity curve sample
Rendering • Thick smoke: plain particles • Thin smoke: adaptive particles[AN05] • accumulate stretching
l n e Rendering • Thin smoke behaves like a surface [ William Brennan ]
Results - video fpsForest fire Genie&lamp Walkthrough Fly Modeler quality5 12 5 18 Final rendering quality0.54 0.2 1. 0.37
Conclusion Vorticity filaments: • Compact, high-res, fast • Good handles to manipulate a fluid • Can be manipulated interactively or post- Future work: • Split/merge • High-quality collisions • 2-phase, buoyancy, … Coupling with grids