CS53000 - Spring 2020
Introduction to Scientific Visualization
Lecture
Volume Rendering
February 13, 2020
Volume Rendering Lecture 8 February 13, 2020 Overview Scalar - - PowerPoint PPT Presentation
CS53000 - Spring 2020 Introduction to Scientific Visualization Volume Rendering Lecture 8 February 13, 2020 Overview Scalar Volumes Ray casting / Texture mapping Transfer functions CS530 / Spring 2020 : Introduction to Scientific
CS53000 - Spring 2020
Introduction to Scientific Visualization
February 13, 2020
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Scalar Volumes Ray casting / Texture mapping Transfer functions
2
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Level sets
Images (2D) → curves Volumes (3D) → surfaces
Marching cubes (Lorensen & Cline 87)
Triangulated surface at a given isovalue
3
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Isosurfacing is "binary"
point inside isosurface? voxel contributes to image?
Is a hard, sharp boundary necessarily appropriate for the visualization task?
4
Isosurface Volume Rendering Slice
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
5
Marc Levoy, 1988 "Display of Surfaces from Volume Data"
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Pipelines: Isosurface vs. Volume Rendering
"no intermediate geometric structures"
6
Volume Data Triangles Rendered Image Volume Data Rendered Image Isosurface extraction surface rendering volume rendering
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Pipelines: Isosurface vs. Volume Rendering
"no intermediate geometric structures"
6
Volume Data Triangles Rendered Image Volume Data Rendered Image Isosurface extraction surface rendering volume rendering
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Any rendering process that maps from volume data to an image without introducing binary distinctions / intermediate geometry How to make the data visible?
7
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Any rendering process which maps from volume data to an image without introducing binary distinctions / intermediate geometry How to make the data visible? ➡ color and opacity
8
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Directly get a 3D representation of the volume data
light-emitting medium — Even gaseous phenomena can be simulated
emission, absorption, scattering)
interior structures)
9
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Isosurfacing poor for ...
measured, "real-world" (noisy) data amorphous, "soft" objects
10
virtual angiography bovine combustion simulation
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Kajiya: exponential decay of light intensity
11
e−τ
R t2
t1 σ(t)dt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Kajiya: exponential decay of light intensity
11
e−τ
R t2
t1 σ(t)dt
c(R) = D c(s(x(t)))µ(s(x(t)))e−
R t
0 µ(s(u))dudt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Kajiya: exponential decay of light intensity
11
R t2
t1 σ(t)dt
c(R) = D c(s(x(t)))µ(s(x(t)))e−
R t
0 µ(s(u))dudt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Kajiya: exponential decay of light intensity
11
e−τ
R t2
t1 σ(t)dt
c(R) = D c(s(x(t)))µ(s(x(t)))e−
R t
0 µ(s(u))dudt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Kajiya: exponential decay of light intensity
11
R t2
t1 σ(t)dt
c(R) = D c(s(x(t)))µ(s(x(t)))e−
R t
0 µ(s(u))dudt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Kajiya: exponential decay of light intensity
11
e−τ
R t2
t1 σ(t)dt
c(R) = D c(s(x(t)))µ(s(x(t)))e−
R t
0 µ(s(u))dudt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Kajiya: exponential decay of light intensity
11
R t2
t1 σ(t)dt
c(R) = D c(s(x(t)))µ(s(x(t)))e−
R t
0 µ(s(u))dudt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
12
Z D c(s(x(t)))µ(s(x(t)))e−
R t
0 µ(s(u(t))dudt
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
13
Optical Mo
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
13
Optical Mo
Absorption active scattering scattering active Emission
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
13
Optical Mo
Absorption active scattering scattering active Emission
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
s
Ray
s0
14
I(s) = I(s0)e−τ(s0,s) τ(s1, s2) = s2
s1
κ(s)ds
→
Integration
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
s
Ray
s0
14
I(s) = I(s0)e−τ(s0,s) τ(s1, s2) = s2
s1
κ(s)ds
→
Integration
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
s
Ray s0
15
Integration
s
s0
q(´ s)e−τ(s,´
s)d´
s
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
Integration
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
s
Ray s0 I(s0)
15
Integration
S‘
~
q(s’)
s
s0
q(´ s)e−τ(s,´
s)d´
s
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
Integration
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
16
Discrete Approximation
I(si) I(si+1)
s0
si si+1 I(si+1) = αq(si+1) + (1 − α)I(si) I(s0) q(si), A(si) q(si+1), A(si+1) α = A(si+1)
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
= q(si+1) OVER I(si)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
16
Discrete Approximation
Ray
I(si) I(si+1)
s0
si si+1 I(si+1) = αq(si+1) + (1 − α)I(si) I(s0) q(si), A(si) q(si+1), A(si+1) α = A(si+1)
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
= q(si+1) OVER I(si)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
TF(si)
16
Discrete Approximation
Ray
I(si) I(si+1)
s0
si si+1 I(si+1) = αq(si+1) + (1 − α)I(si) I(s0) q(si), A(si) q(si+1), A(si+1) α = A(si+1)
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
= q(si+1) OVER I(si)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
TF(si+1) TF(si)
16
Discrete Approximation
Ray
I(si) I(si+1)
s0
si si+1 I(si+1) = αq(si+1) + (1 − α)I(si) I(s0) q(si), A(si) q(si+1), A(si+1) α = A(si+1)
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
= q(si+1) OVER I(si)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
TF(si+1) TF(si)
16
Discrete Approximation
Ray Back-to-front Compositing with
I(si) I(si+1)
s0
si si+1 I(si+1) = αq(si+1) + (1 − α)I(si) I(s0) q(si), A(si) q(si+1), A(si+1) α = A(si+1)
Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes
= q(si+1) OVER I(si)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
17
t2 t1 Light
Ray
P
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
C(p), α(p) – p is a point in volume Functions of input data f(p)
C(f), α(f) – these are 1D functions
Can include lighting affects
C(f, N(p), L) where N(p) = grad(f)
Derivatives of f
C(f, grad(f) ), α(f, grad(f) )
18
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
19
f
RGB
Map data value f to color and opacity
α
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
19
Human Tooth CT
α(f)
RGB(f)
f
RGB
Map data value f to color and opacity
α
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
19
Human Tooth CT
α(f)
RGB(f)
f
RGB
Shading, Compositing… Map data value f to color and opacity
α
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
19
Human Tooth CT
α(f)
RGB(f)
f
RGB
Shading, Compositing… Map data value f to color and opacity
α
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Measured sources of volume data
CT (computed tomography) PET (positron emission tomography) MRI (magnetic resonance imaging) Ultrasound Confocal Microscopy
20
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Synthetic sources of volume data
CFD (computational fluid dynamics) Voxelization of discrete geometry
21
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
22
Transfer function, with shading Skin/Air Bone/Soft tissue Bone/Air
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Voxels
basic unit of volume data
Interpolation
trilinear common, others possible
Gradient
direction of fastest change
Compositing
"over operator"
23
f(0,0,0) f(1,0,0) f(0,1,0)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Voxels
basic unit of volume data
Interpolation
trilinear common, others possible
Gradient
direction of fastest change
Compositing
"over operator"
23
f(0,0,0) f(1,0,0) f(0,1,0)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Voxels
basic unit of volume data
Interpolation
trilinear common, others possible
Gradient
direction of fastest change
Compositing
"over operator"
23
f(0,0,0) f(1,0,0) f(0,1,0)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
∇f
∇f = (∂f/∂x, ∂f/∂y, ∂f/∂z) ≈ ( (f(1,0,0) - f(-1,0,0))/2, (f(0,1,0) - f(0,-1,0))/2, (f(0,0,1) - f(0,0,-1))/2) Approximates "surface normal“ (of isosurface)
24
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
25
cf = (0, 1, 0) αf = 0.4
c = αfcf + (1 − αf)αbcb α = αf + (1 − αf)αb
αb = 0.9
c = 0.4 1 + (1 − 0.4) × 0.9 1 = 0.54 0.4 α = 0.94
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
26
cf = (0, 1, 1) αf = 0.4
c = αfcf + (1 − αf)αbcb α = αf + (1 − αf)αb
cb = (1, 0, 0) αb = 0.9
cm = (0, 1, 0) αm = 0.4
0.4 1 1 + (1 − 0.4) × 0.9 1 = 0.54 0.4 0.4 0.4 1 + (1 − 0.4) × 0.9 1 = 0.54 0.4
0.4 1 1 + (1 − 0.4) 0.54 0.4 = 0.324 0.64 0.4
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
27
≠
c = αfcf + (1 − αf)αbcb α = αf + (1 − αf)αb
c = (0.324, 0.64, 0.4) α = 0.964
c = (0.324, 0.64, 0.24) α = 0.964
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
28
Depth
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
28
Depth First
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
28
Depth Max intensity First
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
28
Depth Max intensity Average First
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
28
Depth Max intensity Average Accumulate First
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Depth Intensity First
29
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
30
Depth Intensity Average
Synthetic Reprojection
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Depth Max Intensity
Maximum Intensity Projection Magnetic Resonance Angiogram
31
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 32
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 32
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Depth Intensity Accumulate
Make transparent layers visible; Uses a transfer function for color/opacity
33
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
34
For each pixel ...
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
straightforward use of over operator intuitively backwards
intuitively right not simple over operator facilitates early ray termination
35
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
36
Ci ci ; ai Ci+1
Ci+1 = aici + (1-ai)Ci
(eye)
composite order
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
37
Ci ; Ai ci ; ai Ci+1 ; Ai+1
Ci+1 = Ci + (1 - Ai)aici Ai+1 = Ai + (1 - Ai)ai
(eye)
composite order
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
38
Ci+1 = Ci + (1 - Ai)ai ci Ai+1 = Ai + (1 - Ai)ai Ci+1 = ai ci + (1-ai)Ci
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
39
Light
Ray
t1 t2
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
40
Light
Ray
t1 t2
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
41
Light
Ray
t1 t2
P
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
42
Light
Ray
t1 t2
P
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
43
Light
Ray
t1 t2
P
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
44
Light
Ray
t1 t2
P
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
45
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
46
for each voxel ...
contribution
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Ray casting Ray tracing Sweep plane algorithms (e.g., ZSWEEP) PT algorithm of Shirley and Tuchman
47
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Projected Tetetrahedra (Shirley & Tuchman)
Decompose each cell into tetrahedra Sort the tetrahedra back-to-front Project each tetrahedron and render its decomposition into 3 or 4 triangles
48
Two different non-degenerate classes of the projected tetrahedra
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
For the Volume Density Optical Model of Williams et
defined by the transfer functions κ(f(x,y,z)) and ρ(f(x,y,z)) with f(x,y,z) being the scalar function Usually the transfer functions are given as a linear or piecewise linear function, or as a lookup table
49
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
For each rendered pixel the ray integral of the corresponding ray segment has to be computed Observation: The ray integral depends only on Sf, Sb, and l for the Volume Density Optical Model of Williams et al.
50
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Compute the three-dimensional ray integral by numerical integration and store the integrated chromaticity and opacity in a 3D texture Assign appropriate texture coords (Sf,Sb,l) to the projected vertices of each tetrahedron
51
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Object order method Hardware-accelerated approach Per-pixel exact rendering
Sort Required Slower than uniform volume rendering
52
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Slicing of the volume (proxy geometry) Composite the slices Back-to-Front
53
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
54
color
simultaneous rays
1.0
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
54
color
simultaneous rays
1.0
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
55
Volume Data Eye
Image plane
Graphics Hardware
Slices
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
56
Slices View direction
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
56
Slices View direction
1 slice
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
56
Slices View direction
1 slice 5 slices
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
56
Slices View direction
1 slice 5 slices 20 slices
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
56
Slices View direction
1 slice 5 slices 20 slices 45 slices
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
56
Slices View direction
1 slice 5 slices 20 slices 45 slices 85 slices
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
56
Slices View direction
1 slice 5 slices 20 slices 45 slices 85 slices 170 slices
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
57
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Volume Ray Casting
(Requires entire data set in memory) Can produce reflections, shadows, and complex illumination “relatively” easily Easily parallelizable (GPU friendly)
58
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Hardware Texture Mapping
Extremely Fast Correct illumination is hard Approximate accumulation Difficult to add detailed color and texture
59
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
volume rendering:
Transfer functions make volume data visible by mapping data values to optical properties
8 14
slices: volume data:
60
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
f
RGB
Simple (usual) case: Map data value f to color and opacity
α
61
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Human Tooth CT
f
RGB
Simple (usual) case: Map data value f to color and opacity
α
61
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Human Tooth CT
α(f)
RGB(f)
f
RGB
Simple (usual) case: Map data value f to color and opacity
α
61
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Human Tooth CT
α(f)
RGB(f)
f
RGB
Shading, Compositing…
Simple (usual) case: Map data value f to color and opacity
α
61
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Human Tooth CT
α(f)
RGB(f)
f
RGB
Shading, Compositing…
Simple (usual) case: Map data value f to color and opacity
α
61
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
62
Vol Range/ TF Domain Range
Data Value Color And Opacity
Space Vol
Domain
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
with a standard graphics operator (“over”)
63
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
64
v α v α v α v α
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
65
Num voxels Data value Grey-Level Histogram
Material 1 Material 2 Material 3
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
66
x v = f (x) “ here’s the edge ”
“Where’s the edge?”
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
66
x v = f (x) “ here’s the edge ”
“Where’s the edge?” Result: edge pixels
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
66
x v = f (x) “ here’s the edge ”
“Where’s the edge?” Result: edge pixels
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
67
“ here’s the edge ” v α v v = f (x) v0 x
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
“ here’s the edge ! ” v0 x v = f (x) x v = f (x)
“ here’s the edge ! ” Domain of the transfer function does not include position
Domain
Data Value
68
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
imply data value isolation
69
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
70
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
71
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
transfer function
experience
William Schroeder, Lisa Avila, and Ken Martin; Transfer Function Bake-off Vis ’00
72
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
73
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
74
Reasoning:
➔ Make 3D histograms of value, 1st, 2nd deriv. By (1) inspecting and (2) algorithmically analyzing histogram volume, we can create transfer functions
Kindlmann & Durkin, VolVis ’98
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
75
Edges at maximum
zero-crossing of 2nd
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
76
Ideal Turbine Blade Engine Block
Project histogram volume to 2D scatterplots
guidance
boundary model at this stage
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
77
x y z Volume Graphics Distance Map
3D position
data value
Signed distance to boundary
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
77
x y z Volume Graphics Distance Map
(x,y,z)
3D position
data value
Signed distance to boundary
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
77
x y z Volume Graphics Distance Map d
(x,y,z)
3D position
data value
Signed distance to boundary
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
77
x y z Volume Graphics Distance Map d
(x,y,z)
New Distance Map
255
v
3D position
data value
Signed distance to boundary
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
78
d(v) v v = f (x) x
v0 v0
d(v,g); g = gradient magnitude
via boundary model
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
79
data value: v “distance”: x
distance function:
d(v)
boundary emphasis function: b(x)
α(v)
Automatically generated from histogram volume Created by user x α = b(x)
2 1
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
79
Opacity function: α(v) = b(d(v))
data value: v “distance”: x
distance function:
d(v)
boundary emphasis function: b(x)
α(v)
Automatically generated from histogram volume Created by user x α = b(x)
2 1
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
79
Opacity function: α(v) = b(d(v))
α(v,g) = b(d(v,g))
data value: v “distance”: x
distance function:
d(v)
boundary emphasis function: b(x)
α(v)
Automatically generated from histogram volume Created by user x α = b(x)
2 1
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
80
f -- f ’ f -- f ’’ CT head slice
d(v)
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
81
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
82
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
82
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
83
x
b(x)
2 1
Boundary emphasis function simple to set
a(v) = b(d(v))
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Basic Transfer Functions:
84
Space Vol
Vol Range/ TF Domain Range
Value + Grad Mag Color And Opacity
Domain
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
85
+
d(v,g)
Detected 4 distinct boundaries between 4 materials
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
85
+
mapped 2D distance function plot are boundary centers Color transfer function
d(v,g)
Detected 4 distinct boundaries between 4 materials
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
86
Mostly accurate isolation of all material boundaries
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
87
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
88
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 89
“Interactive Volume Rendering Using Multi-Dimensional Transfer Functions and Direct Manipulation Widgets” Kniss, Kindlmann, Hansen: Vis ’01
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
enamel dentin pulp background
RGB(f )
90
Slice 1D TF output Rendering
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
enamel dentin pulp background
RGB(f )
90
Slice 1D TF output Rendering
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
enamel dentin pulp background
RGB(f )
90
1D transfer functions cannot accurately
Slice 1D TF output Rendering
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
enamel dentin pulp background
RGB(f )
90
1D transfer functions cannot accurately capture all material boundaries
Slice 1D TF output Rendering
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 91
RGB( )
α
( )
Generalize…
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 92
RGB( )
α
( )
Generalize…
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 93
RGB( )
α
( )
Generalize…
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 94
RGB( )
α
( )
Generalize…
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 95
RGB( )
α
( )
Generalize…
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 96
RGB( )
α
( )
Generalize…
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 97
|⇥f|
RGB( ) ( ) RGB( )
α
( )
Generalize…
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 98
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 99
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 100
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 101
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 102
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 103
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 104
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 105
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 105
2D transfer functions give greater flexibility in boundary visualization
Display of Surfaces from Volume Data, Levoy 1988
Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 106
Trying to reintroduce dentin / background boundary … Modify…
α
|⇥f|
RGB( ) ( )
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 107
Second directional derivative
measured with Hessian
D2
ˆ ff
RGB
f, |rf| , D2
ˆ rff
⌘
α ⇣ f, |rf| , D2
ˆ rff
⌘
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 108
Modify…
RGB
f, |rf| , D2
ˆ rff
⌘
α ⇣ f, |rf| , D2
ˆ rff
⌘
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 109
Modify…
RGB
f, |rf| , D2
ˆ rff
⌘
α ⇣ f, |rf| , D2
ˆ rff
⌘
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 110
Modify…
RGB
f, |rf| , D2
ˆ rff
⌘
α ⇣ f, |rf| , D2
ˆ rff
⌘
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 111
Modify…
RGB
f, |rf| , D2
ˆ rff
⌘
α ⇣ f, |rf| , D2
ˆ rff
⌘
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 112
Modify…
RGB
f, |rf| , D2
ˆ rff
⌘
α ⇣ f, |rf| , D2
ˆ rff
⌘
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 113
Done
RGB
f, |rf| , D2
ˆ rff
⌘
α ⇣ f, |rf| , D2
ˆ rff
⌘
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 114
enamel / background dentin / background dentin / enamel dentin / pulp
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 114
enamel / background dentin / background dentin / enamel dentin / pulp
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020 114
enamel / background dentin / background dentin / enamel dentin / pulp
1D: not possible 2D: specificity not as good
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Higher dimensional transfer functions:
+ Better flexibility, specificity +Higher quality visualizations
115
CS530 / Spring 2020 : Introduction to Scientific Visualization.
February 13, 2020
Higher dimensional transfer functions:
+ Better flexibility, specificity +Higher quality visualizations
115
– Even harder to specify – Unintuitive relationship with boundaries – Greater demands on user interface