CS53000 - Spring 2020
Introduction to Scientific Visualization
Lecture
Stream Lines and Surfaces
February 20, 2020
Stream Lines and Surfaces Lecture 9 February 20, 2020 Outline - - PowerPoint PPT Presentation
CS53000 - Spring 2020 Introduction to Scientific Visualization Stream Lines and Surfaces Lecture 9 February 20, 2020 Outline Introduction Overview of basic techniques Mathematical / numerical foundations CS530 / Spring 2020 : Introduction
CS53000 - Spring 2020
February 20, 2020
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
2
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
General Goal:
Domain Specific:
3
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Data set is given by a vector component and its
magnitude Often results from study of fluid flow or by looking at derivatives (rate of change) of some scalar quantity (e.g., bioelectric field) No visual intuition for what a vector field should look like Many visualization techniques proposed
4
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Rich field of Fluid Flow Visualization (experimental) Hundreds of years old!! Computational fluid dynamics (CFD) simulations require powerful computational flow visualization techniques
5
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
6
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
7
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
8
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
9
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
10
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
11
Streaklines in the wake behind a cylinder (from Batchelor 1967)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Texture-based and dense methods Topology Feature extraction Coherent structures Extension to tensor data
12
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Glyphs: visual encoding (geometry + color) of local data attributes
13
Peikert and Roth, ETH Zurich Pieter W. Groen, Universiteit Amsterdam
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
14
Hans-Georg Pagendarm, DLR Göttingen Mat Ward WPI Gerris Flow Solver
Stream ribbons
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
15
Greg Turk, Georgia Tech Konrad Polthier, Zuse Institut Berlin Mallo et al., ETH Zurich
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
16
Christoph Garth, University of Kaiserslautern Markus Ruetten, DLR Goettingen
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
17
⌃ v : I ⊆ I R × Mn → TMn
x : I R → Mn
x(0) = x0
dx dt = ⇧ v(t, x)
x(0) = x0
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Flow of a vector field tells us where a particle ends up after a certain time given a particular starting point. Existence and uniqueness if is smooth (“Lipschitz continuity”)
18
⌅⇥(x, t) ⌅t
t=τ = ⌥
v(x, )
⌅⇥(x, t) ⌅t
t=τ = ⌥
v(x, )
φ : U ⊆ I Rn × I ⊆ I R → I Rn
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Requires solution (integration) of an ordinary differential equation (ODE): Closed form solutions (analytic) do not exist in general (linear vector fields are a special case) Numerical ODE solvers
19
x(t) = x0 + Z t ~ v(x(u))du
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
20
(x0, t0) (x1, t1) (x2, t2) (x3, t3) (x4, t4)
xn+1 = xn + h⌃ v(xn, tn) + O(h2)
(x0, t0) (x1, t1) (x2, t2) (x3, t3) (x4, t4)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
21
⌃ k1 = h⌃ v(xn, tn) ⌃ k2 = h⌃ v(1 2 ⌃ k1, tn + 1 2h) xn+1 = xn + ⌅ k2 + O(h3)
(x0, t0) (x1, t1) (x2, t2) (x3, t3)
⌃ k1 = h⌃ v(xn, tn) xn+1 = xn + ⌅ k2 + O(h3)
(x0, t0) (x1, t1) (x2, t2) (x3, t3)
~ k2 = h~ v(xn + 1 2 ~ k1, tn + 1 2h)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
22
⌃ k3 = h⌃ v(xn + 1 2 ⌃ k2, tn + 1 2h) ⌃ k3 = h⌃ v(xn + 1 2 ⌃ k2, tn + 1 2h) ⌃ k1 = h⌃ v(xn, tn)
⌃ k3 = h⌃ v(xn + 1 2 ⌃ k2, tn + 1 2h)
⌃ k1 = h⌃ v(xn, tn)
⇧ xn+1 = ⇧ xn + 1 6 ⇧ k1 + 1 3 ⇧ k2 + 1 3 ⇧ k3 + 1 6 ⇧ k4 + O(h5) ~ k2 = h~ v(xn + 1 2 ~ k1, tn + 1 2h)
~ k4 = h~ v(xn + ~ k3, tn + h)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
RK4 requires 4 evaluations of RK2 requires only 2 RK4 more “accurate” if same accuracy can be achieved with double step size (at least)
23
⇧ v(t, ⇧ x)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Reduce computational effort Increase accuracy
24
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
25
⌥ x(t + 2h) = ⌥ k1 + (2h)5⌥ + O(h6) ⌥ x(t + 2h) = ⌥ k2 + 2(h)5⌥ + O(h6) ⇥ ∆ = ⇥ k2 − ⇥ k1 ⌃ x(t + 2h) = ⌃ k2 + ⌃ ∆ 15 + O(h6)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
26
x∗
n+1 = xn + c∗ 1k1 + c∗ 2k2 + c∗ 3k3 + c∗ 4k4 + c∗ 5k5 + c∗ 6k6 + O(h5)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
27
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
28
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Error evaluation For a desired accuracy , required step size Used to adjust step size
29
∆ = xn+1 − x∗
n+1 = 6
(ci − c∗
i )ki = O(h5)
∆0
h0 = h1
∆1
5
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Streamline
trajectory of massless particle in a steady flow or path of a particle in a frozen unsteady field (non-physical)
Pathline
trajectory of massless particle in an unsteady flow
Timeline
connect particles released simultaneously at discrete time-steps
Streakline
continuously inject particles at a fixed point in the flow, connect consecutive particles
30
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
31
releasing particles and calculating a series of particle positions based on the vector field
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
32
can only visualize the flow directions initiated from one
becomes cluttered
seed particles (seeding strategy)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Many streamlines can give an overall / global view of the vector field
33
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
34
Rake: geometric primitive (typically a line) along which multiple streamlines are seeded at regular interval.
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
35
(unsteady flows) Pathlines:
T=1 T=2 T=3 T=4 T=5
Pathline: Trajectory of a given particle. This is generated by injecting a dye into the fluid and following its path by photography or other means
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
36
(unsteady flows)
T = 1 T = 2 T = 3 timeline
Timeline is generated by drawing a line through adjacent particles in flow at any instant of time
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
37
b.t. =5 b.t. =4 b.t. =3 b.t. =2 b.t. =1
Streakline concentrates on fluid particles that have gone through a fixed station or point. At some instant of time the position of all these particles are marked and a line is drawn through them. Such a line is called a streakline.
(unsteady flows)
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
38
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Basic idea:
Need a means of visualizing swirling flow behavior (vortices) A point primitive or an icon can hardly convey this Idea: advect neighboring particles and connect them with polygons Shade those polygons appropriately and one will detect twists
39
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Problem - when flow diverges Solution: Just trace one streamline and a constant size vector with it:
40
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Ribbons can be constructed using 2 or 3 particle advections per segment.
41
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
42
θ θ
γ
L R V N I = Ia + Id + Is = ka + kd L · N + ks (V · R)n
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Rewrite with Hence Similarly
43
T
L = LT + LN
LT = L · T
L · N = |LN| = p 1 − |LT |2 = p 1 − (L · T)2
V · R = (L · T)(V · T)−
p 1 − (L · T)2p 1 − (V · T)2
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
44
Interactive visualization of 3D-vector fields using illuminated stream lines. Zöckler, Stalling, Hege, IEEE Vis 1996
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
45
Illuminated Streamlines Revisited. Mallo, Peikert, Sigg, Sadlo, IEEE Vis 2005
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Isolated streamlines provide poor picture of the flow continuum Large number of streamlines create visual clutter Seeding strategy is important to effectively use streamlines in visualization
46
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Mimic hand-drawn flows Use multi-scale analysis to determine position/ density Minimize energy function Rules for adding/removing/moving streamlines
47
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
48
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
49
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
50
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
51
Evenly sampled “Optimized”
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Streamline Placement
52
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Speed up Turk and Banks algorithm (x200!) Achieve better results by mitigating issue of short streamlines
53
Mebarki et al., Farthest point seeding for efficient placement of streamlines. IEEE Visualization 2005
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Streamlines are approximated by discrete set of points Points are Delaunay triangulated Empty circumscribed circle of triangles used to determine largest empty regions
54 Mebarki et al., Farthest point seeding for efficient placement of streamlines. IEEE Visualization 2005
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
55 Mebarki et al., Farthest point seeding for efficient placement of streamlines. IEEE Visualization 2005
streamlines are approximated by discrete set of points points are Delaunay triangulated Empty circumscribed circle of triangles used to determine largest empty regions
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Rake, polygonal line, closed curve, … Remark: circle ⇒ “stream tube”
Capture volumes, shading, depth cues
56
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
57
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Starting curve (→ front) Along the flow (integration parameter, time)
58
t s
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
59
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Ensure well-shaped triangles Local heuristic Handle shearing effects
60
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
61
i i-1 i+1
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
62
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
63
i i-1 i+1
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Objective: maintain front locally orthogonal to flow direction Triangulation heuristic creates shortest diagonal (greedy algo.)
64
i i-1 i+1
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
i i-1 i+1
65
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
66
i i-1 i+1
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
67
i i-1 i+1
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
68
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Front resolution (=distance between neighboring streamlines) varies during integration (convergence/ divergence) Ensure constant resolution by inserting or removing additional streamlines when necessary Requires to advance all streamlines simultaneously
69
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
70
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
71
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
72
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Higher integration accuracy (RK 45) Integration step controlled by arc length
73
integration parameter arc length
Joint Eurographics - IEEE TCVG Symposium on Visualization
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Curvature control in refinement criterion
Avoids creases on surface Properly handle folding behavior (vortex)
74
segment size only inter-segment angle
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Front resolution control Ripping criterion
75
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
76
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
77
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
78
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
79
in Time-Dependent Vector Fields. IEEE Visualization 2008
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
80
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
81
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Integral surfaces have natural 2d-parameterization (s,t)
earlier work on this by Löffelmann et al., 1997 animated textures to convey temporal flow behavior
82
t → s →
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
83
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
83
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
83
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Vortex formation behind an ellipsoid (2.6e6 cells, 400 timesteps)
84
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Vortex formation behind an ellipsoid (2.6e6 cells, 400 timesteps)
84
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Vortex formation behind an ellipsoid (2.6e6 cells, 400 timesteps)
85
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Vortex formation behind an ellipsoid (2.6e6 cells, 400 timesteps)
85
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
Vortex formation behind an ellipsoid (2.6e6 cells, 400 timesteps)
86
in Time-Dependent Vector Fields. IEEE Visualization 2008
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020 87
in Time-Dependent Vector Fields. IEEE Visualization 2008
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020 87
in Time-Dependent Vector Fields. IEEE Visualization 2008
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
88
in Large Time-Varying Data Sets. IEEE Visualization 2009
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
plane to the surface) of surface may not be available or not exist
89
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
90
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
91
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
92
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
the surface
93
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
94
Mathematical Visualization, H.C. Hege, K. Polthier (eds.), Springer Verlag, 1998
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
95
Mathematical Visualization, H.C. Hege, K. Polthier (eds.), Springer Verlag, 1998
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
: Parallel transport
along
96
: Geodesic path
Mathematical Visualization, H.C. Hege, K. Polthier (eds.), Springer Verlag, 1998
⇧ yi+1 = (h, yi, ⇧ yi)
δ π|δ
δ
CS530 / Spring 2020 : Introduction to Scientific Visualization. Streamlines and Stream Surfaces Feb 20, 2020
97
: Parallel transport
along : Geodesic path
⇧ yi+1 = (h, yi, ⇧ yi)
δ π|δ
δ
Mathematical Visualization, H.C. Hege, K. Polthier (eds.), Springer Verlag, 1998