Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2....
Transcript of Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2....
![Page 1: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/1.jpg)
Stefan Bruckner Real-Time Visualization
Real-Time Visualization 04: Real-Time Computations on GPUs
Stefan Bruckner
![Page 2: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/2.jpg)
Stefan Bruckner Real-Time Visualization
Lectures
1. Introduction: Volume rendering basics, GPU architecture, OpenGL, CUDA, case studies, … (03.05.)
2. Real-Time Volume Graphics 1: GPU ray-casting, optimizations, memory management, OpenGL vs. CUDA, ... (10.05.)
3. Real-Time Volume Graphics 2: Advanced illumination, filtering, derivatives, advanced transfer functions, … (17.05.)
4. Real-Time Computations on GPUs: Fluid simulation, level-set deformation, … (24.05.)
5. Volumetric Special Effects: combining simulation and ray-casting, integration in game engine scenes, ... (31.05.)
6. Final event: Project presentations (28.06.)
2
![Page 3: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/3.jpg)
Stefan Bruckner Real-Time Visualization
Fluid Simulation
Applications
Scientific visualization (Water sewage system, dam construction)
Medical simulation (Blood flow)
Movie special effects (Finding Nemo, Pirates of Caribbean)
Games (Half Life, Crysis)
3
![Page 4: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/4.jpg)
Stefan Bruckner Real-Time Visualization
Fluid Characteristics (1)
Basic properties
Pressure, density, viscosity, surface tension
Different types of fluids:
Incompressible (divergence-free) fluids: no change in volume
Compressible fluids: the fluid’s volume can change significantly
Viscous fluids: the fluid tends to resist a certain degree of deformation
4
![Page 5: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/5.jpg)
Stefan Bruckner Real-Time Visualization
Fluid Characteristics (2)
Laminar flow
Flow that has smooth behavior
Turbulent flow
Flow that appears to have chaotic and random changes
Inviscid fluids
Fluids which do not have resistance to shear stress
Newtonian fluids
Constant viscosity – continue to flow, regardless of the force acting on it (e.g, water)
5
![Page 6: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/6.jpg)
Stefan Bruckner Real-Time Visualization
Fluid Characteristics (3)
Non-Newtonian fluids
Fluids that have non-constant viscosity
Typically dependent on shear rate or shear rate history
Phase Transition
Fluids may change physical behavior under different environmental conditions (e.g., temperature, pressure)
6
![Page 7: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/7.jpg)
Stefan Bruckner Real-Time Visualization
Challenges
Modeling continuum fluids on discrete systems – it’s all about approximations
Topological variations
Different kinds of behaviors with interacting subjects
Numerical stabilities, accuracy and convergence issues
Performance
Grid and temporal resolution
User interaction
Artistic control
7
![Page 8: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/8.jpg)
Stefan Bruckner Real-Time Visualization
Calculus Review (1)
Gradient ( ): A vector pointing in the direction of the greatest rate of increment
Divergence ( ): Measures how the vectors are converging or diverging at a given location (volume density of the outward flux)
z
u
y
u
x
uu ,,
u can be a scalar or a vector
zyx
uuuu u can only be a vector
Source, Div(u) > 0
Sink, Div(u) < 0
z
u
y
u
x
uu ,,
8
![Page 9: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/9.jpg)
Stefan Bruckner Real-Time Visualization
Calculus Review (2)
Laplacian (∆ or ): Divergence of the gradient
Finite Difference: Derivative approximation
2
2
2
2
2
2
22
z
u
y
u
x
uu
u can be a scalar or a vector
ii
ii
xx
uu
x
u
1
1
9
![Page 10: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/10.jpg)
Stefan Bruckner Real-Time Visualization
Navier-Stokes Equation
Momentum equation
Incompressibility Claude-Louis
Navier (1785 - 1836)
George Gabriel Stokes
(1819 - 1903)
ut = k2u –(u)u – p + f
u=0
change in velocity
diffusion/ viscosity
advection pressure body forces
u: the velocity field
k: kinematic viscosity
10
![Page 11: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/11.jpg)
Stefan Bruckner Real-Time Visualization
Finite Difference Grids (1)
All values live on regular grids
Need scalar and vector fields
Scalar fields: Amount of smoke or dye
Vector fields: Fluid velocity
Subtract adjacent quantities to approximate derivatives
11
![Page 12: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/12.jpg)
Stefan Bruckner Real-Time Visualization
Finite Difference Grids (2)
Use discretized forms of differential operators
12
![Page 13: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/13.jpg)
Stefan Bruckner Real-Time Visualization
Techniques Overview
Borrowed from CFD (Computational Fluid Dynamics)
Common techniques for solving Navier Stoke’s equation:
Eulerian approach (grid-based)
Lagrangian approach (particle-based)
Spectral method
Lattice Boltzmann method
13
![Page 14: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/14.jpg)
Stefan Bruckner Real-Time Visualization
Eulerian Approach
Discretize the domain using finite differences
Define scalar & vector fields on the grid
Use the operator splitting technique to solve each term separately
Evaluation:
Derivative approximation
Adaptive time step/solver
Memory usage & speed
Grid artifact/resolution limitation
14
![Page 15: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/15.jpg)
Stefan Bruckner Real-Time Visualization
Lagrangian Approach
Treat the fluid as discrete particles
Apply interaction forces (i.e. pressure/viscosity) according to certain pre-defined smoothing kernels
Evaluation:
Mass / Momentum conservation
More intuitive
Fast, no linear system solving
Connectivity information/surface reconstruction
15
![Page 16: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/16.jpg)
Stefan Bruckner Real-Time Visualization
scalar/vector fields defined
on the grid
advection body force diffusion
pressure solve
ut = k2u –(u)u – p + f
u=0 16
![Page 17: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/17.jpg)
Stefan Bruckner Real-Time Visualization
Advection
Sometimes called “convection” or “transport”
Defines how a quantity moves with the underlying velocity field
Ensures the conservation of momentum
Approaches:
Forward Euler (unstable)
Semi-Lagrangian advection (stable for large time steps, but suffers from the dissipation issue)
17
![Page 18: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/18.jpg)
Stefan Bruckner Real-Time Visualization
Forward Euler Advection
18
![Page 19: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/19.jpg)
Stefan Bruckner Real-Time Visualization
Semi-Lagrangian Advection
19
![Page 20: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/20.jpg)
Stefan Bruckner Real-Time Visualization
BFECC (1)
Forward schemes are unstable
Semi-Lagrangian approach leads to diffusion
Back and Forth Error Compensation and Correction (BFECC) [Moon 2005]
Perform forward advection
Do backward advection from new position
Compute error and take correction step
Do forward advection from corrected position
20
![Page 21: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/21.jpg)
Stefan Bruckner Real-Time Visualization
BFECC (2)
error
Compensate
Forward
Backward Forward
21
![Page 22: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/22.jpg)
Stefan Bruckner Real-Time Visualization
Scalar Field Advection
ct = –(u)c
change in value advection current values
22
![Page 23: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/23.jpg)
Stefan Bruckner Real-Time Visualization
ut = –(u)u
uxt = –(u)ux
uyt = –(u)uy
For each dimension:
Vector Field Advection
uzt = –(u)uz
23
![Page 24: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/24.jpg)
Stefan Bruckner Real-Time Visualization
Diffusion (1)
Define how a quantity in a cell inter-changes with its neighbors
Essentially results in a blurring process (i.e., dissipation to neighborhood)
24
Low Viscosity High Viscosity
![Page 25: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/25.jpg)
Stefan Bruckner Real-Time Visualization
Diffusion (2)
cij
25
![Page 26: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/26.jpg)
Stefan Bruckner Real-Time Visualization
Scalar Field Diffusion
1
1
1
1
-4
cijnew = cij + k Dt (ci-1j + ci+1j + cij-1 + cij+1 - 4cij)
ct = k2c
change in value
value relative to neighbors
26
![Page 27: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/27.jpg)
Stefan Bruckner Real-Time Visualization
ut = k2u
uxt = k2ux
uyt = k2uy
For each dimension
viscosity
Vector Field Diffusion
uzt = k2uz
27
![Page 28: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/28.jpg)
Stefan Bruckner Real-Time Visualization
Pressure Solve (1)
Sometimes called sometimes called “pressure projection”
Effects of pressure
Keeps the fluid at constant volume (incompressible, conservation of mass)
Makes sure the velocity field stays divergence-free
28
compressible incompressible
![Page 29: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/29.jpg)
Stefan Bruckner Real-Time Visualization
Pressure Solve (2)
Helmholtz-Hodge Decomposition
Vector field 𝐰 can be decomposed into
𝐰 = 𝐮+ 𝛻𝑝 where u has zero divergence.
We can decompose any vector field into a divergence-free vector field and the gradient of a scalar field
Means that we can correct for divergence by subtracting 𝛻𝑝 from a vector field 𝐰
29
![Page 30: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/30.jpg)
Stefan Bruckner Real-Time Visualization
Pressure Solve (3)
Helmholtz-Hodge Decomposition also leads to a method for computing the pressure field
𝐰 = 𝐮 + 𝛻𝑝
Apply the divergence operator to both sides of the equation:
𝛻 ⋅ 𝐰 = 𝛻 ⋅ 𝐮 + 𝛻2𝑝
Under the assumption of incompressibility (u=0) this becomes a Poisson equation:
𝛻2𝑝 = 𝛻 ⋅ 𝐰
30
![Page 31: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/31.jpg)
Stefan Bruckner Real-Time Visualization
Pressure Solve (4)
Boundary conditions
Periodic: wrap around (fluid “lives” on a torus with the respective dimensionality) – can lead to very simple formulations
Solid wall: The fluid can’t penetrate the wall but can flow freely in tangential directions (Neumann BC)
Free surface: The fluid can evolve freely (p = 0)
free surface
solid wall
31
![Page 32: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/32.jpg)
Stefan Bruckner Real-Time Visualization
Fluid Simulation and Rendering
Compute advection of fluid
(Incompressible) Navier-Stokes solvers
Lattice Boltzmann Method (LBM)
Discretized domain; stored in 2D/3D textures
Velocity, pressure
Dye, smoke density, vorticity, …
Updates in multi-passes
Render current frame
32
Courtesy Mark Harris
![Page 33: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/33.jpg)
Stefan Bruckner Real-Time Visualization
Stable Fluids
Basic approach [Stam 2000]:
Add forces:
Advect:
Diffuse:
Solve for pressure:
Subtract pressure gradient:
𝐰1 = 𝐮(𝐱, 𝑡) + 𝐟(𝐱, 𝑡)𝛥𝑡
𝐰2 = 𝐰1(𝐱 − 𝐰1𝛥𝑡)
𝐈 − 𝜈𝛥𝑡𝛻2 𝐰3 = 𝐰2
𝛻2𝑝 = 𝛻 ⋅ 𝐰3
𝐮(𝐱, 𝑡 + 𝛥𝑡) = 𝐰3 − 𝛻𝑝
33
![Page 34: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/34.jpg)
Stefan Bruckner Real-Time Visualization
Add Forces
Scale force by time step, add to velocity
Simple approach: “splatting”
Color of splat encodes direction and strength of force
Add Gaussian splat to velocity texture
𝐰1 = 𝐮(𝐱, 𝑡) + 𝐟(𝐱, 𝑡)𝛥𝑡
34
![Page 35: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/35.jpg)
Stefan Bruckner Real-Time Visualization
Advection
Advection: quantities in a fluid are carried along by its velocity
Want velocity at position x at new time t + Dt
Follow velocity field back in time from x: (x - w1Dt)
Like tracing particles
Simple in kernel or fragment program
u(x, t+Dt)
u(x’, t)
Path of fluid
Trace back in time
𝐰2(𝐱) = 𝐰1(𝐱 − 𝐰1𝛥𝑡)
35
![Page 36: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/36.jpg)
Stefan Bruckner Real-Time Visualization
Viscous Diffusion
Viscous fluid exerts drag on itself
Causes diffusion of velocity
Implicit, discrete form of
Explicit form is unstable
Requires solving of a Poisson equation (see also next step)
𝐈 − 𝜈𝛥𝑡𝛻2 𝐰3 = 𝐰2
𝜕𝐰2
𝜕𝑡= 𝜈𝛻2𝐰2
36
![Page 37: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/37.jpg)
Stefan Bruckner Real-Time Visualization
Poisson-Pressure Solution
Poisson Equation
Discretize, solve using iterative solver (relaxation)
Jacobi, Gauss-Seidel, Multigrid, etc.
Jacobi easy on GPU, the rest are trickier
Boils down to repeated evaluation of:
𝑝𝑖,𝑗𝑛+1 =
1
4𝑝𝑖+1,𝑗𝑛 + 𝑝𝑖−1,𝑗
𝑛 + 𝑝𝑖,𝑗+1𝑛 + 𝑝𝑖,𝑗−1
𝑛 − 𝛿2(𝛻 ⋅ 𝐰3 ,
𝛻 ⋅ 𝐰3 =1
2𝛿(𝑢3𝑖+1,𝑗 − 𝑢3𝑖−1,𝑗 + 𝑣3𝑖,𝑗+1 − 𝑣3𝑖,𝑗−1
𝛿 = grid spacing u, v = components of w3 i, j = grid coordinates n = solution iteration 37
![Page 38: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/38.jpg)
Stefan Bruckner Real-Time Visualization
Subtract Pressure Gradient
Last computation of the time step
u is now a divergence-free velocity field
Very simple operations
𝛿 = grid spacing u, v = components of w3 i, j = grid coordinates n = solution iteration
𝑢𝑖,𝑗 = 𝑢3𝑖,𝑗 −1
2𝛿 𝑝𝑖+1,𝑗 − 𝑝𝑖−1,𝑗 ,
𝑣𝑖,𝑗 = 𝑣3𝑖,𝑗 −1
2𝛿 𝑝𝑖,𝑗+1 − 𝑝𝑖,𝑗−1
𝐮(𝐱, 𝑡 + 𝛥𝑡) = 𝐰3 − 𝛻𝑝
38
![Page 39: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/39.jpg)
Stefan Bruckner Real-Time Visualization
Additional Quantities
Can advect/diffuse additional quantities along with velocity and pressure using essentially the same steps
Dye
Density
Temperature
Texture coordinates
39
![Page 40: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/40.jpg)
Stefan Bruckner Real-Time Visualization
Fluid-Solid Interaction
Use voxelized geometry to specify boundary conditions
GPU voxelization, inside-outside texture – non-watertight models can cause propblems
For dynamic geometry, we also need to voxelity the solid’s geometry
See Keenan Krane in GPU Gems 3 for more details
40
![Page 41: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/41.jpg)
Stefan Bruckner Real-Time Visualization
Fluid Simulation Demo
41
![Page 42: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/42.jpg)
Stefan Bruckner Real-Time Visualization
Diffusion Filtering (1)
Smoothing
Linear isotropic
Non-linear isotropic
Non-linear anisotropic
Scale space theory
42
![Page 43: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/43.jpg)
Stefan Bruckner Real-Time Visualization
Diffusion Filtering (2)
De-noising
Original
Linear isotropic
Non-linear isotropic
Non-linear anisotropic
43
![Page 44: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/44.jpg)
Stefan Bruckner Real-Time Visualization
Diffusion Filtering (3)
Coherence-enhancing diffusion
44
![Page 45: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/45.jpg)
Stefan Bruckner Real-Time Visualization
Diffusion Filtering of Volumes
Volume smoothing
Nonlinear isotropic diffusion
Edge-enhancing anisotropic diffusion
Diffusion-based segmentation
Steer diffusion of seeds in segmentation mask from density volume
45
![Page 46: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/46.jpg)
Stefan Bruckner Real-Time Visualization
Diffusion
Equilibrates concentration differences without creating or destroying mass
D … diffusion tensor
Isotropic: scalar function g() g controls intensity of flux
Anisotropic: matrix g controls intensity and orientation of flux
…concentration gradient at position u(x,y,z)
div …divergence operator
…modification of the volume at time step t
46
u)div(D· ut
u
tu
![Page 47: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/47.jpg)
Stefan Bruckner Real-Time Visualization
Non-linear, Isotropic Diffusion
Feedback system: diffusivity function g()
47
u)· div( ut ||)ug(|| D
![Page 48: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/48.jpg)
Stefan Bruckner Real-Time Visualization
Discretization
For each position in the volume at time step t do:
Approximate gradient and divergence with finite differences
Calculate diffusivity g() to scale gradient
Calculate for all directions and sum up
Add to original density value
48/17
48
Use modified volume to calculate next step
![Page 49: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/49.jpg)
Stefan Bruckner Real-Time Visualization
Edge-Enhancing Anisotropic Diffusion (1)
Tensor D
Tensor scales and rotates the flux
The flux is no longer parallel to which maintains the location and strength of edges
Preserves edges by smoothing parallel to edges instead across them
u)div(D· ut
u
49 49/17
![Page 50: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/50.jpg)
Stefan Bruckner Real-Time Visualization
Edge-Enhancing Anisotropic Diffusion (2)
T
T
T
3
2
1
3
2
1
321
v
v
v
00
00
00
v, v,v D
are the eigenvectors where
and
gradient defined by a Gaussian kernel with width
are the eigenvalues where
and is one of the diffusivities g()
If result is isotropic diffusion
50
321 v, v,v
u v,u ||v 2 1 u v3
u
132
321 ,,
1
()321 g
![Page 51: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/51.jpg)
Stefan Bruckner Real-Time Visualization
Edge-Enhancing Anisotropic Diffusion (3)
Homogeneous region:
flux high
gflux proceeds along
Near edges:
scaled because of diffusivity
flux decreases and rotates
u
51
has another orientation than the gradient at the same location from original density g important for rotation of flux!
u
u
u
![Page 52: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/52.jpg)
Stefan Bruckner Real-Time Visualization
Isotropic and Anisotropic Diffusion
52
![Page 53: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/53.jpg)
Stefan Bruckner Real-Time Visualization
Algorithm (1)
For each slice of the volume:
1st Pass: on-the-fly gradients calculated with Gaussian kernel
2nd Pass: calculate stencil to estimate divergence
53
For each slice of the volume:
![Page 54: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/54.jpg)
Stefan Bruckner Real-Time Visualization
Algorithm (2)
Smoothed gradients are calculated with Gaussian kernel
Gradient Slices:
High values at edges (high intensity contrast)
Low values in homogeneous regions
The more different are from the more edge-stopping the function is
gintensity and direction of flux controlled by Gaussian kernel
54
u
uu
u
![Page 55: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/55.jpg)
Stefan Bruckner Real-Time Visualization
Diffusivity g( )
Perona-Malik:
Tukey/Biweight:
is the most critical value for image smoothing and segmentation.
If too small for specific g small impact on volume
If too high for specific g excessive blurring
55
otherwise
u
||||,
0
||u||-1
2
1 ||)ug(||
22
)/||-(|| 22
e ||)g(|| uu
||u||
||u||
![Page 56: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/56.jpg)
Stefan Bruckner Real-Time Visualization
GPU Level-Sets (1)
Additional volume: distance field
Solve PDE for every sample
Speed function F determines evolution/deformation
56
![Page 57: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/57.jpg)
Stefan Bruckner Real-Time Visualization
GPU Level-Sets (2)
Hamilton-Jacobi equation (PDE)
Discretized and solved for each point of grid
∆t time step,
F gradient magnitude
F speed function, determines deformation
57
![Page 58: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/58.jpg)
Stefan Bruckner Real-Time Visualization
Volume Segmentation with Level-Sets
Motivation
Interactive segmentation
Simultaneous level-set computation and rendering
Minimal memory use
Compute in native format used by ray-caster
Both volumes can be bricked and use texture cache
Render both volumes with correct intersection:
58
![Page 59: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/59.jpg)
Stefan Bruckner Real-Time Visualization
Volume Segmentation with Level-Sets
Motivation
Interactive segmentation
Simultaneous level-set computation and rendering
Minimal memory use (work directly on brick cache)
Compute in native format used by ray-caster
59
![Page 60: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/60.jpg)
Stefan Bruckner Real-Time Visualization
Volume Segmentation with Level-Sets
Motivation
Interactive segmentation
Simultaneous level-set computation and rendering
Minimal memory use (work directly on brick cache)
Compute in native format used by ray-caster
60
![Page 61: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/61.jpg)
Stefan Bruckner Real-Time Visualization
Segmentation: Density-Dependent Speed
Simple segmentation:
61
![Page 63: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/63.jpg)
Stefan Bruckner Real-Time Visualization
Plus Curvature Term
Density-dependent speed (D)
Mean curvature term (κ)
Blend density term (D) and curvature term (κ)
63
α = 0.0
α = 1.0
α = 0.3
![Page 64: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/64.jpg)
Stefan Bruckner Real-Time Visualization
Level-Set Cache
Sparse virtual volume for computation
Case 1: virtual brick has no mapping
Case 2: virtual brick maps to physical (cache) brick
Case 3: cache brick has no mapping
64
cache texture
cache brick
virtual brick
Case 1
Case 2
Case 3
![Page 65: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/65.jpg)
Stefan Bruckner Real-Time Visualization
Narrow Band Culling and Packing
65
• Interior: Min = Max = 1.0 • Exterior: Min = Max = 0.0
![Page 66: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/66.jpg)
Stefan Bruckner Real-Time Visualization
Level-Set Solver (1)
1. Setup
Init signed distance field
Narrow band is [0.0, 1.0]
Perform initial culling
Allocate initial cache bricks
Compute clamped distances in active cache bricks
66
![Page 67: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/67.jpg)
Stefan Bruckner Real-Time Visualization
Level-Set Solver (2)
2. Level-set computation
PDE solved in fragment program
Need neighborhood for finite differences
Upwinding and mean curvature computation
67
![Page 68: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/68.jpg)
Stefan Bruckner Real-Time Visualization
Level-Set Solver (3)
3. Sparse volume update
GPU – CPU memory request
Determine brick activation/deactivation & encode
CPU – GPU memory allocation
Decode brick activation/deactivation
Allocate/deallocate physical cache bricks
68
![Page 69: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/69.jpg)
Stefan Bruckner Real-Time Visualization
Neighbor Activation (1)
Determine “leaking” of narrow band
Min/max computation for six brick faces
Encode in 6 bits and transmit to CPU
69
![Page 70: Stefan Bruckner - RTVis... · 2011. 6. 20. · Final event: Project presentations (28.06.) 2. Stefan Bruckner Real-Time Visualization Fluid Simulation Applications Scientific visualization](https://reader036.fdocuments.in/reader036/viewer/2022081621/613329addfd10f4dd73ae90d/html5/thumbnails/70.jpg)
Stefan Bruckner Real-Time Visualization
Thank You!
Markus Hadwiger
Michael Su
Greg Turk
Mark Harris
Laura Fritz
Oliver Klar
Veronika Solteszova
70