vortex fluid structure for smoke control
DESCRIPTION
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… - PowerPoint PPT PresentationTRANSCRIPT
Vortex Fluid StructureVortex Fluid StructureFor Smoke ControlFor Smoke Control
SCA 2006SCA 2006
Alexis Angelidis Alexis Angelidis (1)
Fabrice Neyret Fabrice Neyret (2)
Karan Singh Karan Singh (1)
Derek Nowrouzezahrai Derek Nowrouzezahrai (1)
(1): DGP, U of Toronto(2): Evasion-GRAVIR / IMAG-INRIA
MotivationMotivation• Fluid Animation: Fluid Animation: smokesmoke, clouds, fire, explosion, splashes, sea…, clouds, fire, explosion, splashes, sea…
• Simulation vs AnimationSimulation vs Animation
[ Areté Entertainment, inc. 96][ Areté Entertainment, inc. 96] [ [ LOTRLOTR ] ]
MotivationMotivation• Fluid Animation: Fluid Animation: smokesmoke, clouds, fire, explosion, splashes, sea…, clouds, fire, explosion, splashes, sea…
• Simulation vs AnimationSimulation vs Animation
• Approaches to control:Approaches to control:– Phenomenological, limitedPhenomenological, limited– Fake forcesFake forces– Control by keyframing ‘shapes’Control by keyframing ‘shapes’
[ Areté Entertainment, inc. 96][ Areté Entertainment, inc. 96] [ [ LotRLotR ] ]
MotivationMotivation
Most related workMost related work• Density field given at keyframesDensity field given at keyframes• Solver between framesSolver between frames
What we wantWhat we want• No hand-drawn smokeNo hand-drawn smoke• Natural controlNatural control
[Treuille [Treuille et al.et al.03],[McNamara 03],[McNamara et al.et al.04],[Fattal 04],[Fattal et al.et al.04]04]
[McNamara [McNamara et al.et al.04]04]
key1 key2
Background Background [AN05][AN05]
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
representationrepresentation
ourourmethodmethod
v ω
‘‘‘‘Chart of methods for numerical fluid simulation’’Chart of methods for numerical fluid simulation’’
popularpopular
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ωrepresentationrepresentation
velocity velocity vv
translation in translation in m sm s-1-1 Rotation in Rotation in rad srad s-1-1
vorticity vorticity ω
popularpopular
3D3Dfield field
vω CurlCurl
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ωrepresentationrepresentation
velocity velocity vv vorticityvorticity ω
popularpopular
dx
xpxp
34)(
ωv
BIOT-SAVARTBIOT-SAVART
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ωrepresentationrepresentation
velocity velocity vv vorticityvorticity ω
popularpopular
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
representationrepresentation
ourourmethodmethod
v ω
EulerianEulerian
LagrangianLagrangian
The flow modifies quantitiesThe flow modifies quantitiesheld at static positionsheld at static positions
The flow carries floaters thatThe flow carries floaters thathold the quantitieshold the quantities
Dynamics :Dynamics :
popularpopular
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
representationrepresentation
ourourmethodmethod
v ω
dtd
t v
)(
LagrangianLagrangianEulerianEulerianv v v
at particleat particlein gridin grid
popularpopular
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
popularpopular
ourourmethodmethod
v ω
ijkv
0
1)( 2
v
gvvvv p
t
NAVIER-STOKESNAVIER-STOKES
( incompressible )( incompressible )
representationrepresentation
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ω
representationrepresentation
gvvvv
2 1)(
p
t
popularpopular
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ω
VORTICITY EQUATIONVORTICITY EQUATION
vωω )( dtd
representationrepresentation
( inviscid )( inviscid )
popularpopular
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ωrepresentationrepresentation
popularpopular
Easy boundary conditionsEasy boundary conditionsEasy extra differential eqnEasy extra differential eqn……
No diffusionNo diffusionImplicit incompressibilityImplicit incompressibility compactcompactUnboundedUnbounded……
ω
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ω
VORTICITY EQUATIONVORTICITY EQUATION
vωω )( dtd
representationrepresentation
popularpopular
Vorticity:Vorticity:Vortex particle advected,Vortex particle advected, vector stretched vector stretchedω
vorticity moves as vorticity moves as material linesmaterial lines
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ωrepresentationrepresentation
popularpopular
Vorticity:Vorticity:Our primitive = curvesOur primitive = curves = tangent= tangentω
BackgroundBackground
EulerianEulerian
VorticityVorticityVelocityVelocity
LagrangianLagrangian
movingmovingquantityquantity
ourourmethodmethod
v ωrepresentationrepresentation
Density: Density: a quantity at nodesa quantity at nodes
Density:Density: Dedicated particlesDedicated particles - passive floaters- passive floaters - for rendering- for rendering - only where smoke is- only where smoke is
popularpopular
Lagrangian primitivesLagrangian primitives
• Curves carry the Curves carry the vorticityvorticity
• Each local Each local vortexvortex induces a weighted rotation induces a weighted rotation
dlxpxp
34
)(ωv
dx
xpxp
34)(
ωv
Lagrangian primitivesLagrangian primitives
• Curves carry the Curves carry the vorticityvorticity
• Each local Each local vortexvortex induces a weighted rotation induces a weighted rotation
dlxpxp
34
)(ωv
dx
xpxp
34)(
ωv
Method of simulationMethod of simulation• Vortex particlesVortex particles (for motion) (for motion)
organized as curves. = tangent organized as curves. = tangent • Smoke particlesSmoke particles (for visualisation) (for visualisation)
• Curves carry vorticesCurves carry vortices• Vortices induce a velocity fieldVortices induce a velocity field• velocity field deforms curves & smokevelocity field deforms curves & smoke
At every step:At every step: • Advect the curvesAdvect the curves• Stretch Stretch • Advect the smokeAdvect the smoke
ω
ω
Method of simulationMethod of simulation• Vortex particles (for motion)Vortex particles (for motion)
organized as curves. = tangent organized as curves. = tangent • Smoke particles (for visualisation)Smoke particles (for visualisation)
• Curves carry vorticesCurves carry vortices• Vortices induce a velocity fieldVortices induce a velocity field• velocity field deforms curves & smokevelocity field deforms curves & smoke
At every step:At every step: • Advect the curvesAdvect the curves• Stretch Stretch • Advect the smokeAdvect the smoke
ω
ω
Method of simulationMethod of simulation• Vortex particles (for motion)Vortex particles (for motion)
organized as curves. = tangent organized as curves. = tangent • Smoke particles (for visualisation)Smoke particles (for visualisation)
• Curves carry vorticesCurves carry vortices• Vortices induce a velocity fieldVortices induce a velocity field• velocity field deforms curves & smokevelocity field deforms curves & smoke
At every step:At every step: • Advect the curvesAdvect the curves• Stretch Stretch • Advect the smokeAdvect the smoke
ω
ω
• A A new representationnew representation of vortex curves of vortex curvesCompact, stable, controlable motion primitivesCompact, stable, controlable motion primitives
• Controls Controls of the motion primitivesof the motion primitives
• Fast ‘‘Fast ‘‘noisenoise’’ for fake turbulence details’’ for fake turbulence details
ContributionsContributions
• A A new representationnew representation of vortex curves of vortex curvesCompact, stable, controlable motion primitivesCompact, stable, controlable motion primitives
• Controls Controls of the motion primitivesof the motion primitives
• Fast ‘‘Fast ‘‘noisenoise’’ for fake turbulence details’’ for fake turbulence details
ContributionsContributions
Deformation of curves Deformation of curves previous approach previous approach [AN05][AN05]
If refined:If refined:too complextoo complex
PolygonPolygonIf not refined:If not refined:
undersamplingundersampling
Strategy to control complexityStrategy to control complexity
New representationNew representation• Solution: Solution: harmonic analysisharmonic analysis of coordinates of coordinates
xx= in = in yy
zz
• Reference frame: Reference frame: best ellipsoid best ellipsoid
a a pair of coefficientspair of coefficients for each harmonic for each harmonic
• Curves described by :Curves described by :– Frame Frame o eo exx e eyy e ezz
– FrequenciesFrequencies <c <cxx c cyy c czz>>1..N1..N
SynthesisSynthesisAdvectionAdvectionAnalysisAnalysis
Complexity controlComplexity control
……
New representationNew representation• Solution: Solution: harmonic analysisharmonic analysis of coordinates of coordinates
xx= in = in yy
zz
• Reference frame: Reference frame: best ellipsoid best ellipsoid
a a pair of coefficientspair of coefficients for each harmonic for each harmonic
• Curves described by :Curves described by :– Frame Frame o eo exx e eyy e ezz
– FrequenciesFrequencies <c <cxx c cyy c czz>>1..N1..N
SynthesisSynthesisAdvectionAdvectionAnalysisAnalysis
Complexity controlComplexity controleexx
eeyyeezz
oo
……
New representationNew representation• Solution: Solution: harmonic analysisharmonic analysis of coordinates of coordinates
xx= in = in yy
zz
• Reference frame: Reference frame: best ellipsoid best ellipsoid
a a pair of coefficientspair of coefficients for each harmonic for each harmonic
• Curves described by :Curves described by :– Frame Frame o eo exx e eyy e ezz
– FrequenciesFrequencies <c <cxx c cyy c czz>>1..N1..N
SynthesisSynthesisAdvectionAdvectionAnalysisAnalysis
Complexity controlComplexity controleexx
eeyyeezz
oo
……
New representationNew representation• Solution: Solution: harmonic analysisharmonic analysis of coordinates of coordinates
xx= in = in yy
zz
• Reference frame: Reference frame: best ellipsoid best ellipsoid
a a pair of coefficientspair of coefficients for each harmonic for each harmonic
• Curves described by :Curves described by :– Frame Frame o eo exx e eyy e ezz
– FrequenciesFrequencies <c <cxx c cyy c czz>>1..N1..N
SynthesisSynthesisAdvectionAdvectionAnalysisAnalysis
Complexity controlComplexity controleexx
eeyyeezz
oo
……
Meaning of descriptionMeaning of description
• eezz points towards moving direction points towards moving direction
eexx
eeyyeezz
oo
• FrFrequenciesequencies c cxx c cyy c czz give give texture texture to the flowto the flow
……
• ThicknessThickness
Video: representationVideo: representation
• A A new representationnew representation of vortex curves of vortex curvesCompact, stable, controlable motion primitivesCompact, stable, controlable motion primitives
• Controls Controls of the motion primitivesof the motion primitives
• Fast ‘‘Fast ‘‘noisenoise’’ for fake turbulence details’’ for fake turbulence details
ContributionsContributions
• directiondirection: : alignalign e ezz with tangent with tangent
• TargetsTargets::
• TwistingTwisting smoke: smoke: spin vortices around spin vortices around eezz
• Edit, delete …Edit, delete …
• Modulate Modulate ccxx c cyy c czz to to texturetexture the flowthe flow
ControlControl
without with
eexx
eeyyeezzoo ……
<cx cy cz>1..N
++
• directiondirection: : alignalign e ezz with tangent with tangent
• TargetsTargets::
• TwistingTwisting smoke: smoke: spin vortices around spin vortices around eezz
• Edit, delete …Edit, delete …
• Modulate Modulate ccxx c cyy c czz to to texturetexture the flowthe flow
ControlControl
without with
eexx
eeyyeezzoo ……
<cx cy cz>1..N
++
• directiondirection: : alignalign e ezz with tangent with tangent
• TargetsTargets::
• TwistingTwisting smoke: smoke: spin vortices around spin vortices around eezz
• Edit, delete …Edit, delete …
• Modulate Modulate ccxx c cyy c czz to to texturetexture the flowthe flow
ControlControl
without with
eexx
eeyyeezzoo ……
<cx cy cz>1..N
++
How to controlHow to control
• One cannot just translate the curves: One cannot just translate the curves: the smoke does not followthe smoke does not follow
eexx
eeyyeezz
oo
• Solution: Solution: paddlepaddle (servoing )(servoing ) ω
Video: controlVideo: control
• A A new representationnew representation of vortex curves of vortex curvesCompact, stable, controlable motion primitivesCompact, stable, controlable motion primitives
• Controls Controls of the motion primitivesof the motion primitives
• Fast ‘‘Fast ‘‘noisenoise’’ for fake turbulence details’’ for fake turbulence details
ContributionsContributions
[AN05]:[AN05]: noise = extra vortex particles noise = extra vortex particles advected in the flow, no stretchadvected in the flow, no stretch• Costly (needs a lot)Costly (needs a lot)• Source, samplingSource, sampling
Tiled vortex noise:Tiled vortex noise:noise layer =noise layer =• separate simulation, in toroidal spaceseparate simulation, in toroidal space• Tiled in spaceTiled in space• Additional evolving velocity fieldAdditional evolving velocity field
Noise: fake turbulence detailsNoise: fake turbulence details
[AN05]:[AN05]: noise = extra vortex particles noise = extra vortex particles advected in the flow, no stretchadvected in the flow, no stretch• Costly (needs a lot)Costly (needs a lot)• Source, samplingSource, sampling
Tiled vortex noise:Tiled vortex noise:noise layer =noise layer =• separate simulation, in toroidal spaceseparate simulation, in toroidal space• Tiled in spaceTiled in space• Additional evolving velocity fieldAdditional evolving velocity field
Noise: fake turbulence detailsNoise: fake turbulence details
[AN05]:[AN05]: noise = extra vortex particles noise = extra vortex particles advected in the flow, no stretchadvected in the flow, no stretch• Costly (needs a lot)Costly (needs a lot)• Source, samplingSource, sampling
Tiled vortex noise:Tiled vortex noise:noise layer =noise layer =• separate simulation, in toroidal spaceseparate simulation, in toroidal space• Tiled in spaceTiled in space• Additional evolving velocity fieldAdditional evolving velocity field
Noise: fake turbulence detailsNoise: fake turbulence details
Video: noiseVideo: noise
• A A new representationnew representation of vortex curves of vortex curvesCompact, stable, controlable motion primitivesCompact, stable, controlable motion primitives
• Controls Controls of the motion primitivesof the motion primitives
• Fast ‘‘Fast ‘‘noisenoise’’ for fake turbulence details’’ for fake turbulence details
• Velocity cache, renderingVelocity cache, rendering
ContributionsContributions
Octree cacheOctree cache
• Velocity computed at Velocity computed at every every smoke particlesmoke particle & & every every vorticity curve samplevorticity curve sample
• Velocity computed at Velocity computed at octree leavesoctree leaves + + inbetween interpolationinbetween interpolation
Octree cacheOctree cache
• Velocity computed at Velocity computed at every every smoke particlesmoke particle & & every every vorticity curve samplevorticity curve sample
• Velocity computed at Velocity computed at octree leavesoctree leaves + + inbetween interpolationinbetween interpolation
RenderingRendering• Thick smoke: plain particlesThick smoke: plain particles• Thin smoke: adaptive particlesThin smoke: adaptive particles [AN05][AN05]
– accumulate stretchingaccumulate stretching
01nTOT JJJJ ...
RenderingRendering• Thin smoke behaves like a surfaceThin smoke behaves like a surface
[ William Brennan ][ William Brennan ]
ee
nnll
eJJn 1T
Results - videoResults - video
fpsfps Forest fire Genie&lamp Walkthrough Fly Forest fire Genie&lamp Walkthrough Fly Modeler qualityModeler quality 55 12 12 5 18 5 18Final rendering qualityFinal rendering quality 0.540.54 0.2 1. 0.2 1. 0.37 0.37
Vorticity filaments:Vorticity filaments:• Compact, high-res, fastCompact, high-res, fast• Good handles to manipulate a fluidGood handles to manipulate a fluid• Can be manipulated Can be manipulated interactivelyinteractively or or postpost--
Future work:Future work:• Split/mergeSplit/merge• High-quality collisionsHigh-quality collisions• 2-phase, buoyancy, …2-phase, buoyancy, …
ConclusionConclusion
Coupling with gridsCoupling with grids
Thanks!Thanks!
Video: collisionsVideo: collisions
Video: thicknessVideo: thickness
RenderingRendering• Thin smoke behaves like a surfaceThin smoke behaves like a surface
eJJn 1T Diffuse offDiffuse off Diffuse onDiffuse on
ee
nnll
RenderingRendering• Thin smoke behaves like a surfaceThin smoke behaves like a surface
Lagrangian primitivesLagrangian primitives
• Curves carry the Curves carry the vorticityvorticity
• Each Each vortexvortex induces a weighted rotation induces a weighted rotation
Effect of one vortex on aEffect of one vortex on ashape :shape :
dlxpxp
34
)(ωv
dx
xpxp
34)(
ωv
Control currentsControl currents
• Without controlWithout control • With controlWith control
LL
eezz
LL
CheckpointCheckpoint• With controlWith control