Advected textures Fabrice Neyret EVASION - GRAVIR / IMAG - INRIA Grenoble, France
Purpose: amplifying fluid simulation
Why not simply increase resolution ? Cost: N log(N) / time step with N=1000^3 Storage Problems with CFD for CG [Lamorlette&Foster 02] Unknown small scale phenomena vs artist desires + phenomenological knowledge
Why not simply increase resolution ? Cost: N log(N) / time step with N=1000^3 Storage Problems with CFD for CG [Lamorlette&Foster 02] Unknown small scale phenomena vs artist desires + phenomenological knowledge
Why not simply increase resolution ? Cost: N log(N) / time step with N=1000^3 Storage Problems with CFD for CG [Lamorlette&Foster 02] Unknown small scale phenomena vs artist desires + phenomenological knowledge
Why not simply increase resolution ? Cost: N log(N) / time step with N=1000^3 Storage Problems with CFD for CG [Lamorlette&Foster 02] Unknown small scale phenomena vs artist desires + phenomenological knowledge
Advecting textures = Advecting u,v [Max&Becker 96, Stam 99] Regeneration blending 3 dephased textures (illusion of motion) latency = life duration
Problems with texture advection Choosing the latency Blending textures Sub-animation123
Problems with texture advection Choosing the latency Blending textures Sub-animation123
Problems with texture advection Choosing the latency Blending textures ghosting effects Sub-animation123
Problems with texture advection Choosing the latency Blending textures Sub-animation123
Problems with texture advection Choosing the latency Blending textures Sub-animation123
1. 1. Advecting textures A latency value is ok for a range of velocities (V) bad motion illusion if V < texture stretching if V >
1. Advecting textures Adapting latency locally Layers of given latency + masks Local criterion – – cumulated deform = particle integral of | | – – Target deform d*
1. Advecting textures Adapting latency locally Layers of given latency + masks Local criterion – – cumulated deform = particle integral of | | – – Target deform d* Layer 1: lat1 Layer 2: lat2 (>lat1) Layer 3: lat3 (>lat2)
1. Advecting textures Adapting latency locally Layers of given latency + masks Local criterion – – cumulated deform = particle integral of | | – – Target deform d* 1 2 3
2. 2. Blending textures Image textures Procedural textures
2. Blending textures: image textures What to do ? (morphing ?)
2. Blending textures: procedural textures Our solution:
3. 3. Sub-animation Flownoise [Perlin&Neyret 01]
3. Sub-animation Flownoise for sub-scales rotations vorticity spectrum Kolmogorov cascade
3. Sub-animation Flownoise for sub-scales rotations vorticity spectrum Kolmogorov cascade
3. Sub-animation Flownoise for sub-scales rotations vorticity spectrum Kolmogorov cascade k = E k0k0k0k0 kkkk sub-grid CFD microscale
3. Sub-animation Vorticity energy transfer through scales distribution law for ( power law ) only needs to scale it ( estimate ) Our case: heterogeneous fluid ( locality no Fourier ) not at equilibrium ( transfer delay time ) user control relaxation
3. Sub-animation Vorticity energy transfer through scales distribution law for ( power law ) only needs to scale it ( estimate ) Our case: heterogeneous fluid ( locality no Fourier ) not at equilibrium ( transfer delay time ) user control relaxation ( user-defined parameters k and k )
Results
Conclusion Mixing lo-res CFD and hi-res animated texture: A model efficient & controllable Future work: –3D applications: detailed clouds & avalanches –Better flownoise control –Manage empty space –Hardware procedural shader
Advected textures Fabrice Neyret EVASION - GRAVIR / IMAG - INRIA (Grenoble, France)
Sub-animation parameters parameters k and k: small : reactive high : inertial small : viscous high : light
1. Advecting textures
3D