Prepare video Simulation of Smoke based on Vortex
Prepare video!!!
Simulation of Smoke based on Vortex Filament Primitives Alexis Angelidis Graphics & Vision Research Lab Otago - New Zealand Fabrice Neyret GRAVIR / IMAG - INRIA Grenoble - France
Tangled-Spaghettis Alexis Angelidis Graphics & Vision Research Lab Otago - New Zealand Fabrice Neyret GRAVIR / IMAG - INRIA Grenoble - France
Background Fluid animation approaches: Lagrangian vs Eulerian
Background Fluid animation approaches: Lagrangian vs Eulerian Popular: Eulerian velocity grid [Fedkiw et al. 01] [Pighin et al. 04] [Mc. Namara et al. 04] [Fattal et al. 04]
Background Fluid animation approaches: Lagrangian vs Eulerian Popular: Eulerian velocity grid [Fedkiw et al. 01] [Pighin et al. 04] [Mc. Namara et al. 04] [Fattal et al. 04] A. Velocity grid B. Update rules
One Alternative – Vortex Methods velocity vs. vorticity Curl velocity v vorticity w
One Alternative – Vortex Methods velocity vs. vorticity Curl velocity v vorticity w v w
One Alternative – Vortex Methods velocity vs. vorticity Curl vorticity w velocity v BIOT-SAVART
One Alternative – Vortex Methods Fine simulations • Filaments • Features w BIOT-SAVART Fluid described with curves What’s induced by these curves?
Geometric Interpretation BIOT-SAVART
Geometric Interpretation BIOT-SAVART Vortex
Geometric Interpretation BIOT-SAVART Vortex Rotation magnitude
Lagrangian Vortex Methods • Entire fluid = curves of vortices ! C 3 Dynamics C 2 • Curves induce movement • Curves are animated with this movement Consequence • Cheap storage • Dynamic-keyframed curve C 0 C 1
Video #2 -5
Geometric Interpretation BIOT-SAVART Contributions • Efficiency • stable vortex + noise • closed-form integral • O(N 2), accelerated with LOD • time integration • Define smoke particles
Sum of vortices along curves A more convenient amplitude Biot-Savart Cauchy There are closed-forms for the Cauchy kernel [MS. 98] integral along a circle and a segment Discrete segments
Large time steps: high order scheme • Biot-Savart tells more than velocity • Traditional forward Euler , BS trajectory = sum of velocities of rotation • Our scheme trajectory = sum of Rotation
Levels of detail p p q Too detailed Alright Too coarse • We precompute a binary tree for each filament • We define a bound to the error between a segment and split segments
Divergence-free Noise Smoke Filaments • 3 types of noise vortices : – Tangent vortex – Normal vortex – Binormal vortex Good distribution of directions
Smoke • Particles – accumulate deformation – split when accumulated deformation too big • Rendering – 2 D ellipses – Self-shadowing
Video
Smoke solver overview • • • Filaments induce movement (everywhere) Filaments are animated with the movement Smoke-particles are animated with LODfilaments and divergence-free noise
Conclusion • • • Separated dynamics & rendering Efficient & hi-resolution Not bounded in space Compact: easy to load and save Dynamics or keyframes Improvements • • • Smoke particle merging Curve split/collapse or resampling Currently, limited boundary conditions
THANK YOU Questions ?
A new integration scheme • With our closed form, induced velocity is given by a 4 x 4 matrix • Traditional forward Euler • Our scheme a translation is a translation a rotation is a rotation a twist is a twist
Simple rotation algebra • Rotation of center c around axis of angle given by the magnitude of
Motivation A fluid is not an actor Existing fluid-directing techniques are slow OR tedious Aim A technique for keyframing fluid animation • Not bounded in a cube • Predictable fluid-editing primitives • Fast/Robust
One Alternative – Vortex Methods velocity vs. vorticity Curl vorticity w velocity v Biot-Savart To get the motion: compute velocity from vorticity
What does the Biot-Savart Law mean? BIOT-SAVART Vortex Rotation magnitude vortices vortex
The domain of the BS integral change In 3 D, vortices concentrate along tubes (with a distribution profile around axis) 1. Integral over a slice of vortices : 2. Integral over a curve of a slice : C 3. Integral on many curves C 1
- Slides: 32