CS53000 - Spring 2020
Introduction to Scientific Visualization
Lecture
Dense Flow Visualization
February 27, 2020
Dense Flow Visualization Lecture 10 February 27, 2020 General - - PowerPoint PPT Presentation
CS53000 - Spring 2020 Introduction to Scientific Visualization Dense Flow Visualization Lecture 10 February 27, 2020 General Overview Dense methods in 2D Dense methods in 3D Dense methods on curved surfaces CS530 / Spring 2020 :
CS53000 - Spring 2020
Introduction to Scientific Visualization
February 27, 2020
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
2
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
3
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Noise in signal processing: signal produced by a stochastic (random) process Noise “color” describes its power distribution: how the signal’s energy is distributed across the frequency range Notion of noise extends to images (2D stochastic signals)
4
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
5
NB: wavelength = 1/frequency
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
6
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
7
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
8
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Noise image (2D signal)
9
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Noise image (2D signal)
10
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
11
Noise image (2D signal)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
12
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Value of each pixel in output image computed as convolution of value of neighboring pixels along the flow
Integration of streamlet from each pixel
Assuming pixel-wise constant vector (Euler) In both directions Length (pixel-wise) controlled by kernel size
13
f ∗ g ≡ ∞
−∞
f(τ)g(t − τ)dτ
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Value of each pixel in output image computed as convolution of value of neighboring pixels along the flow
Integration of streamlet from each pixel
Assuming pixel-wise constant vector (Euler) In both directions Length (pixel-wise) controlled by kernel size
13
f ∗ g ≡ ∞
−∞
f(τ)g(t − τ)dτ
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Value of each pixel in output image computed as convolution of value of neighboring pixels along the flow
Integration of streamlet from each pixel
Assuming pixel-wise constant vector (Euler) In both directions Length (pixel-wise) controlled by kernel size
13
f ∗ g ≡ ∞
−∞
f(τ)g(t − τ)dτ
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Value of each pixel in output image computed as convolution of value of neighboring pixels along the flow
Integration of streamlet from each pixel
Assuming pixel-wise constant vector (Euler) In both directions Length (pixel-wise) controlled by kernel size
13
f ∗ g ≡ ∞
−∞
f(τ)g(t − τ)dτ
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Aliasing problems induced by white noise input texture can be solved by applying low pass filter (blurring) in pre-processing Simple convolution kernel: box Special convolution kernels can be used to show flow direction (periodic motion) Normalization applied after convolution to preserve brightness and contrast
14
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Correlation of pixels along the flow No correlation orthogonal to the flow Resulting pictures are similar to visualizations achieved with oil film applied onto surface of embedded body in wind tunnel experiments
15
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Correlation of pixels along the flow No correlation orthogonal to the flow Resulting pictures are similar to visualizations achieved with oil film applied onto surface of embedded body in wind tunnel experiments
15
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
16
http://www.erc.msstate.edu/~zhanping/Research/FlowVis/LIC/LIC.htm
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020 17
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
18
http://www.erc.msstate.edu/~zhanping/Research/FlowVis/LIC/LIC.htm
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020 19
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
20
http://www.erc.msstate.edu/~zhanping/Research/FlowVis/LIC/LIC.htm
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020 21
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
22
http://www.erc.msstate.edu/~zhanping/Research/FlowVis/LIC/LIC.htm
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020 23
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Exploit redundancy of streamlines covering many pixels
Number of streamlines needed to cover entire image is only 2% of number of pixels!
Use correlation between convolution coefficients Integrate flow using RK 45 + cubic interpolation Algorithm is 10x faster than standard LIC
24
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Recycle texture: Improve contrast by iteratively taking last computed LIC texture as input for next iteration Combined with final high-pass filtering
25
IS & T / SPIE Electronics Imaging ‘97
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
26
Standard LIC Enhanced LIC
http://www.erc.msstate.edu/~zhanping/Research/FlowVis/LIC/LIC.htm
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
26
Standard LIC Enhanced LIC
http://www.erc.msstate.edu/~zhanping/Research/FlowVis/LIC/LIC.htm
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Change frequency of noise texture image based on flow properties (e.g speed)
27
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
28
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
28
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
29 Cabral & Leedam Interrante
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
ROI-based seeds 3D LIC computation over sparse input texture “Limb Darkening” to enhance depth perception
30
Fields Using Seed LIC and Volume Rendering, IEEE TVCG 10(6), 2004.
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
31
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Time-dependent flow Particle path: pathline (≠ streamline)
32
dx dt = ⇧ v(x(t), t)
x(t0 + ) = x0 + τ ⌃ v(x(t0 + t), t0 + t)dt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Time-dependent flow Particle path: pathline (≠ streamline)
32
dx dt = ⇧ v(x(t), t)
x(t0 + ) = x0 + τ ⌃ v(x(t0 + t), t0 + t)dt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
33
Eulerian: v( ) =
φ∆t
Lagrangian: φ∆t( ) =
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
LIC: weighted combination of neighboring texture values along flow Problem with unsteady flows
Neighboring values along pathlines have little (or no) correlation over time Missing temporal coherence between successive frames if convolution filter applied along pathlines
34
IEEE TVCG 1(2), 1995
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Basic idea: texture advection through backward coordinate integration Forward integration creates holes in regions of flow divergence
35
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Advect vertices of coarse triangulation Keep texture coordinates constant
Use periodic weight functions + alpha blending to address distortion problems Input texture is reinitialized periodically
36
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
37
Wiley & Sons, 1999
Vertices forward advection Backward texture advection Inverse flow
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Very fast visualization method for unsteady flows (interactive frame rates) Limited accuracy (improving) Combined CPU/GPU implementation (straightforward)
38
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Start with current image (e.g., noise) Overlay coarse mesh (texture coordinates) Advect mesh vertices (cf. Moving Texture): CPU Render distorted mesh (texture mapping of current image) Blend low-pass filtered noise Optional: Inject dye Overlay geometry
39
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
40
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Advected texture F over domain S Account for progressive distortion and texture shift by blending new texture G in place
41
if pk ∈ S
F(pk, k) = α
k−1
(1 − α)iG(pk−i, k − i)
F(pk+1, k + 1) = (1 − α)F(pk, k) + αG(pk+1, k + 1)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
low-pass filtered noise Blended random spot (cf. spot noise) with
42
1
1
h G
G(x, k) =
h(x s − i)h(y s − j)Gi,j,k
Gi,j,k = ω(µk + φi,j)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
low-pass filtered noise Blended random spot (cf. spot noise) with
42
1
1
h G
h(x s − i)h(y s − j)Gi,j,k
Gi,j,k = ω(µk + φi,j)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
43
S S’ B
F ∗(pk, k − 1) =
if pk ∈ B F(pk−1, k − 1)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
44
F (x, k) = (1 − αD(x, k))F(x, k) + αD(x, k)GD(x, k)
αD = 1
αD = 0
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
45
Scale of noise texture
Image Based Flow Visualization, ACM SIGGRAPH 2002
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
46
Various profiles of periodic function
Image Based Flow Visualization, ACM SIGGRAPH 2002
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
47
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
48
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
49
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Basic idea: advect texture along projection of visible pathlines onto screen
50
x = T(x)
Ft(p⇥
k, k) = (1 − γ(p⇥ k))Ft(p⇥ k1, k − 1) + γ(pk)G(p⇥ k, k)
F(p
k+1, k + 1) =
k, k)
if p
k ∈ Ω
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Basic idea: advect texture along projection of visible pathlines onto screen
50
Ft(p⇥
k, k) = (1 − γ(p⇥ k))Ft(p⇥ k1, k − 1) + γ(pk)G(p⇥ k, k)
F(p
k+1, k + 1) =
k, k)
if p
k ∈ Ω
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Additional cue for surface shape obtained by blending shaded surface
51
=
F(x, k) = βFt(x, k) + (1 − β)Fs(x, k)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Texture warping: advection over the mesh
52
ti = T(ri − ⇤ vi∆t)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Texture warping: advection over the mesh
52
vi∆t)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
53
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
54
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
55
Results
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Texture advection in image space IBFVS: project advected texture ISA: advect texture along projected flow Surface geometry + associated vector values combined in velocity image
56
vx vy vz ⇥ R G B
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Projection of vertices + vector values done by graphics hardware
Occlusion culling Interpolation (Gouraud shading) Subpixel sized cells discarded
3D vectors projected onto screen afterwards
57
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
Mesh advection and noise blending in image space similar to 2D IBFV Detect edges to avoid mesh advection across flow discontinuity Edges are restored by blending grey values along edge mask
58
|zk−1 − zk| > |pk−1 − pk|
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
59
Visualization 2003
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
60
Visualization 2003
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
61
Results
Visualization 2003
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
62
Results
CS530 / Spring 2020 : Introduction to Scientific Visualization.
Feb 27, 2020
62
Results