Volume Rendering Lecture 8 February 13, 2020 Overview Scalar - - PowerPoint PPT Presentation

volume rendering
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

CS53000 - Spring 2020

Introduction to Scientific Visualization

Lecture

Volume Rendering

February 13, 2020

8

slide-2
SLIDE 2

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Overview

Scalar Volumes Ray casting / Texture mapping Transfer functions

2

slide-3
SLIDE 3

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Isosurfaces

Level sets

Images (2D) → curves Volumes (3D) → surfaces

Marching cubes (Lorensen & Cline 87)

Triangulated surface at a given isovalue

3

slide-4
SLIDE 4

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Limitations

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

slide-5
SLIDE 5

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Basic Idea of Volume Rendering

“Every voxel contributes to image" Greater flexibility

5

Marc Levoy, 1988 "Display of Surfaces from Volume Data"

slide-6
SLIDE 6

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

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

slide-7
SLIDE 7

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

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

slide-8
SLIDE 8

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

What is Volume Rendering?

Any rendering process that maps from volume data to an image without introducing binary distinctions / intermediate geometry How to make the data visible?

7

slide-9
SLIDE 9

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

What is Volume Rendering?

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

slide-10
SLIDE 10

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Direct volume rendering

Directly get a 3D representation of the volume data

  • The data is considered to represent a semi-transparent

light-emitting medium — Even gaseous phenomena can be simulated

  • Approaches are based on the laws of physics (light

emission, absorption, scattering)

  • The volume data is used as a whole (look inside, see all

interior structures)

9

slide-11
SLIDE 11

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Isosurfacing is Limited

Isosurfacing poor for ...

measured, "real-world" (noisy) data amorphous, "soft" objects

10

virtual angiography bovine combustion simulation

slide-12
SLIDE 12

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Fundamentals (Physics)

Density attenuation

Kajiya: exponential decay of light intensity

Volume Rendering Integral

11

e−τ

R t2

t1 σ(t)dt

slide-13
SLIDE 13

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Fundamentals (Physics)

Density attenuation

Kajiya: exponential decay of light intensity

Volume Rendering Integral

11

e−τ

R t2

t1 σ(t)dt

c(R) = D c(s(x(t)))µ(s(x(t)))e−

R t

0 µ(s(u))dudt

slide-14
SLIDE 14

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Fundamentals (Physics)

Density attenuation

Kajiya: exponential decay of light intensity

Volume Rendering Integral

11

  • e−τ

R t2

t1 σ(t)dt

c(R) = D c(s(x(t)))µ(s(x(t)))e−

R t

0 µ(s(u))dudt

slide-15
SLIDE 15

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Fundamentals (Physics)

Density attenuation

Kajiya: exponential decay of light intensity

Volume Rendering Integral

11

e−τ

R t2

t1 σ(t)dt

c(R) = D c(s(x(t)))µ(s(x(t)))e−

R t

0 µ(s(u))dudt

slide-16
SLIDE 16

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Fundamentals (Physics)

Density attenuation

Kajiya: exponential decay of light intensity

Volume Rendering Integral

11

  • e−τ

R t2

t1 σ(t)dt

c(R) = D c(s(x(t)))µ(s(x(t)))e−

R t

0 µ(s(u))dudt

slide-17
SLIDE 17

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Fundamentals (Physics)

Density attenuation

Kajiya: exponential decay of light intensity

Volume Rendering Integral

11

e−τ

R t2

t1 σ(t)dt

c(R) = D c(s(x(t)))µ(s(x(t)))e−

R t

0 µ(s(u))dudt

slide-18
SLIDE 18

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Fundamentals (Physics)

Density attenuation

Kajiya: exponential decay of light intensity

Volume Rendering Integral

11

  • e−τ

R t2

t1 σ(t)dt

c(R) = D c(s(x(t)))µ(s(x(t)))e−

R t

0 µ(s(u))dudt

slide-19
SLIDE 19

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Volume Rendering Integral

12

  • µ
  • c(R) =

Z D c(s(x(t)))µ(s(x(t)))e−

R t

0 µ(s(u(t))dudt

slide-20
SLIDE 20

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

DVR

13

Optical Mo

Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes

slide-21
SLIDE 21

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

DVR

13

Optical Mo

Absorption active scattering scattering active Emission

Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes

slide-22
SLIDE 22

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

DVR

13

Optical Mo

Absorption active scattering scattering active Emission

Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes

slide-23
SLIDE 23

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Emission and absorption of light

s

DVR

Ray

s0

14

  • Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes

I(s) = I(s0)e−τ(s0,s) τ(s1, s2) = s2

s1

κ(s)ds

Integration

slide-24
SLIDE 24

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Emission and absorption of light

s

DVR

Ray

s0

  • I(s0)

14

  • Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes

I(s) = I(s0)e−τ(s0,s) τ(s1, s2) = s2

s1

κ(s)ds

Integration

slide-25
SLIDE 25

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Emission and absorption of light

s

DVR

Ray s0

15

Integration

  • I(s) = I(s0)e−τ(s0,s) +

s

s0

q(´ s)e−τ(s,´

s)d´

s

Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes

Integration

slide-26
SLIDE 26

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Emission and absorption of light

s

DVR

Ray s0 I(s0)

15

Integration

S‘

~

  • ~

q(s’)

  • I(s) = I(s0)e−τ(s0,s) +

s

s0

q(´ s)e−τ(s,´

s)d´

s

Markus Hadwiger, IEEE Visualization 2002 Tutorial Notes

Integration

slide-27
SLIDE 27

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Resample along ray

DVR

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)

slide-28
SLIDE 28

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Resample along ray

DVR

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)

slide-29
SLIDE 29

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Resample along ray

TF(si)

DVR

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)

slide-30
SLIDE 30

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Resample along ray

TF(si+1) TF(si)

DVR

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)

slide-31
SLIDE 31

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Resample along ray

TF(si+1) TF(si)

DVR

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)

slide-32
SLIDE 32

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

General Components

Basic diagram

17

t2 t1 Light

Ray

P

slide-33
SLIDE 33

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Color and Opacity Transfer Functions

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

slide-34
SLIDE 34

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Transfer Functions (TFs)

19

f

RGB

Map data value f to color and opacity

α

slide-35
SLIDE 35

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Transfer Functions (TFs)

19

Human Tooth CT

α(f)

RGB(f)

f

RGB

Map data value f to color and opacity

α

slide-36
SLIDE 36

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Transfer Functions (TFs)

19

Human Tooth CT

α(f)

RGB(f)

f

RGB

Shading, Compositing… Map data value f to color and opacity

α

slide-37
SLIDE 37

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Transfer Functions (TFs)

19

Human Tooth CT

α(f)

RGB(f)

f

RGB

Shading, Compositing… Map data value f to color and opacity

α

slide-38
SLIDE 38

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Volume Rendering Usefulness

Measured sources of volume data

CT (computed tomography) PET (positron emission tomography) MRI (magnetic resonance imaging) Ultrasound Confocal Microscopy

20

slide-39
SLIDE 39

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Volume Rendering Usefulness

Synthetic sources of volume data

CFD (computational fluid dynamics) Voxelization of discrete geometry

21

slide-40
SLIDE 40

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Volume Rendering: Interfaces

22

Transfer function, with shading Skin/Air Bone/Soft tissue Bone/Air

slide-41
SLIDE 41

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Concepts

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)

slide-42
SLIDE 42

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Concepts

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)

slide-43
SLIDE 43

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Concepts

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)

slide-44
SLIDE 44

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

∇f

Gradient

∇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

slide-45
SLIDE 45

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Compositing: Over Operator

25

cf = (0, 1, 0) αf = 0.4

c = αfcf + (1 − αf)αbcb α = αf + (1 − αf)αb

  • cb = (1, 0, 0)

αb = 0.9

c = 0.4   1   + (1 − 0.4) × 0.9   1   =   0.54 0.4   α = 0.94

slide-46
SLIDE 46

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Compositing: Over Operator

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  

slide-47
SLIDE 47

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Compositing: Over Operator

27

Order Matters!

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

slide-48
SLIDE 48

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Pixel Compositing Schemes

28

Depth

slide-49
SLIDE 49

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Pixel Compositing Schemes

28

Depth First

slide-50
SLIDE 50

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Pixel Compositing Schemes

28

Depth Max intensity First

slide-51
SLIDE 51

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Pixel Compositing Schemes

28

Depth Max intensity Average First

slide-52
SLIDE 52

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Pixel Compositing Schemes

28

Depth Max intensity Average Accumulate First

slide-53
SLIDE 53

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Extracts iso-surfaces (again!)

Compositing – First (Threshold)

Depth Intensity First

29

slide-54
SLIDE 54

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Compositing - Average

30

Depth Intensity Average

Synthetic Reprojection

slide-55
SLIDE 55

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Compositing - MIP

Depth Max Intensity

Maximum Intensity Projection Magnetic Resonance Angiogram

31

slide-56
SLIDE 56

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 32

slide-57
SLIDE 57

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 32

slide-58
SLIDE 58

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Compositing - Accumulate

Depth Intensity Accumulate

Make transparent layers visible; Uses a transfer function for color/opacity

33

slide-59
SLIDE 59

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Image Order

Render image one pixel at a time

34

For each pixel ...

  • cast ray
  • interpolate
  • transfer function
  • composite
slide-60
SLIDE 60

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Raycasting

Back to Front

straightforward use of over operator intuitively backwards

Front to Back

intuitively right not simple over operator facilitates early ray termination

35

slide-61
SLIDE 61

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Raycasting: compositing

Back to Front:

36

Ci ci ; ai Ci+1

Ci+1 = aici + (1-ai)Ci

(eye)

composite order

slide-62
SLIDE 62

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Raycasting: compositing

Front to Back:

37

Ci ; Ai ci ; ai Ci+1 ; Ai+1

Ci+1 = Ci + (1 - Ai)aici Ai+1 = Ai + (1 - Ai)ai

(eye)

composite order

slide-63
SLIDE 63

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Raycasting: compositing

Which is better?

Front to Back: Back to Front:

38

Ci+1 = Ci + (1 - Ai)ai ci Ai+1 = Ai + (1 - Ai)ai Ci+1 = ai ci + (1-ai)Ci

slide-64
SLIDE 64

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

General Components

Basic diagram

39

Light

Ray

t1 t2

slide-65
SLIDE 65

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

General Components

Basic diagram

40

Light

Ray

t1 t2

slide-66
SLIDE 66

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

General Components

Basic diagram

41

Light

Ray

t1 t2

P

slide-67
SLIDE 67

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

General Components

Basic diagram

42

Light

Ray

t1 t2

P

slide-68
SLIDE 68

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

General Components

Basic diagram

43

Light

Ray

t1 t2

P

slide-69
SLIDE 69

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

General Components

Basic diagram

44

Light

Ray

t1 t2

P

slide-70
SLIDE 70

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Ray-casting - Highlights

Advantages:

  • Simple algorithm
  • Inherently parallel
  • Can add features (like a ray-tracer)

Disadvantages:

  • Slow (lots of rays, lots of samples) though GPU friendly
  • Must sample densely
  • (Requires entire data set in memory)

45

slide-71
SLIDE 71

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Object Order

Render image one voxel at a time

46

for each voxel ...

  • transfer function
  • determine image

contribution

  • composite
slide-72
SLIDE 72

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Unstructured Volume Rendering

How to accurately display a volume defined over an unstructured grid? Numerous approaches:

Ray casting Ray tracing Sweep plane algorithms (e.g., ZSWEEP) PT algorithm of Shirley and Tuchman

47

slide-73
SLIDE 73

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

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

slide-74
SLIDE 74

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Volume Density Optical Model

For the Volume Density Optical Model of Williams et

  • al. the emission and absorption along a light ray is

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

slide-75
SLIDE 75

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Tetrahedra Compositing

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

slide-76
SLIDE 76

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

3D Texturing Approach

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

slide-77
SLIDE 77

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Pros / Cons of PT Method

Pros:

Object order method Hardware-accelerated approach Per-pixel exact rendering

Cons:

Sort Required Slower than uniform volume rendering

52

slide-78
SLIDE 78

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Rendering by Slicing - Why?

Store volume in solid texture memory Hardware steps:

Slicing of the volume (proxy geometry) Composite the slices Back-to-Front

53

slide-79
SLIDE 79

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

54

color

  • pacity
  • bject (color, opacity)Similar to ray-casting with

simultaneous rays

1.0

slide-80
SLIDE 80

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

54

color

  • pacity
  • bject (color, opacity)Similar to ray-casting with

simultaneous rays

1.0

slide-81
SLIDE 81

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

55

Volume Data Eye

Image plane

Graphics Hardware

  • Polygons – Proxy geometry
  • Textures – Data & interpolation
  • Blending operations – Numerical integration

Slices

slide-82
SLIDE 82

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

56

Slices View direction

slide-83
SLIDE 83

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

56

Slices View direction

1 slice

slide-84
SLIDE 84

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

56

Slices View direction

1 slice 5 slices

slide-85
SLIDE 85

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

56

Slices View direction

1 slice 5 slices 20 slices

slide-86
SLIDE 86

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

56

Slices View direction

1 slice 5 slices 20 slices 45 slices

slide-87
SLIDE 87

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

56

Slices View direction

1 slice 5 slices 20 slices 45 slices 85 slices

slide-88
SLIDE 88

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Rendering

56

Slices View direction

1 slice 5 slices 20 slices 45 slices 85 slices 170 slices

slide-89
SLIDE 89

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Slice Based Problems?

Does not perform correct

  • Illumination
  • Accumulation - but can get close

Correct illumination and shadowing can be achieved but are nontrivial

57

slide-90
SLIDE 90

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Summary

Volume Ray Casting

(Requires entire data set in memory) Can produce reflections, shadows, and complex illumination “relatively” easily Easily parallelizable (GPU friendly)

58

slide-91
SLIDE 91

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Summary

Hardware Texture Mapping

Extremely Fast Correct illumination is hard Approximate accumulation Difficult to add detailed color and texture

59

slide-92
SLIDE 92

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

volume rendering:

Transfer functions make volume data visible by mapping data values to optical properties

8 14

slices: volume data:

Transfer functions

60

slide-93
SLIDE 93

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

f

RGB

Simple (usual) case: Map data value f to color and opacity

α

Transfer Functions (TFs)

61

slide-94
SLIDE 94

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Human Tooth CT

f

RGB

Simple (usual) case: Map data value f to color and opacity

α

Transfer Functions (TFs)

61

slide-95
SLIDE 95

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Human Tooth CT

α(f)

RGB(f)

f

RGB

Simple (usual) case: Map data value f to color and opacity

α

Transfer Functions (TFs)

61

slide-96
SLIDE 96

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Human Tooth CT

α(f)

RGB(f)

f

RGB

Shading, Compositing…

Simple (usual) case: Map data value f to color and opacity

α

Transfer Functions (TFs)

61

slide-97
SLIDE 97

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Human Tooth CT

α(f)

RGB(f)

f

RGB

Shading, Compositing…

Simple (usual) case: Map data value f to color and opacity

α

Transfer Functions (TFs)

61

slide-98
SLIDE 98

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Terminology

  • Basic Transfer Functions:

62

Vol Range/ TF Domain Range

Data Value Color And Opacity

TF

Space Vol

Domain

slide-99
SLIDE 99

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

What else in range?

  • Optical Properties: Anything that can be composited

with a standard graphics operator (“over”)

  • Opacity: opacity functions: most important
  • Color: Can help distinguish features
  • Emittance: rarely used
  • Phong parameters (ka, kd, ks)
  • Index of refraction

63

slide-100
SLIDE 100

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Setting Transfer Function: Hard

64

v α v α v α v α

slide-101
SLIDE 101

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Volumes as Consisting of Materials

65

Num voxels Data value Grey-Level Histogram

Material 1 Material 2 Material 3

slide-102
SLIDE 102

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Finding edges: easy

66

x v = f (x) “ here’s the edge ”

“Where’s the edge?”

slide-103
SLIDE 103

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Finding edges: easy

66

x v = f (x) “ here’s the edge ”

“Where’s the edge?” Result: edge pixels

slide-104
SLIDE 104

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Finding edges: easy

66

x v = f (x) “ here’s the edge ”

“Where’s the edge?” Result: edge pixels

slide-105
SLIDE 105

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Transfer function Unintuitive

67

“ here’s the edge ” v α v v = f (x) v0 x

slide-106
SLIDE 106

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

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

TF

TFs as feature detection

68

slide-107
SLIDE 107

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

  • Non-spatial: spatial isolation does not

imply data value isolation

  • Many degrees of freedom
  • No constraints or guidance
  • Material uniformity assumption

Difficulties

69

slide-108
SLIDE 108

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Tools for TFs

  • Make good renderings easier to come by
  • Make space of TFs less confusing
  • Remove excess “flexibility”
  • Provide one or more of:
  • Information
  • Guidance
  • Semi-automation
  • Automation

70

slide-109
SLIDE 109

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

  • Trial and Error (manual)
  • Data-Centric
  • Other

TF Tools

71

slide-110
SLIDE 110

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

  • Manually edit graph of

transfer function

  • Enforces learning by

experience

  • Get better with practice
  • Can make terrific images

William Schroeder, Lisa Avila, and Ken Martin; Transfer Function Bake-off Vis ’00

Trial and Error

72

slide-111
SLIDE 111

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

  • Trial and Error (manual)
  • Data-Centric
  • Other

TF Tools

73

slide-112
SLIDE 112

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Semi-Automatic TF Generation

74

Reasoning:

  • TFs are volume-position invariant
  • Histograms “project out” position
  • Interested in boundaries between materials
  • Boundaries characterized by derivatives

➔ 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

slide-113
SLIDE 113

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Derivatives Relationship

75

Edges at maximum

  • f 1st derivative or

zero-crossing of 2nd

slide-114
SLIDE 114

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Scatterplots

76

Ideal Turbine Blade Engine Block

Project histogram volume to 2D scatterplots

  • Visual summary
  • Interpreted for TF

guidance

  • No reliance on

boundary model at this stage

slide-115
SLIDE 115

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Analysis

77

x y z Volume Graphics Distance Map

d x y z

3D position

data value

Signed distance to boundary

slide-116
SLIDE 116

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Analysis

77

x y z Volume Graphics Distance Map

(x,y,z)

d x y z

3D position

data value

Signed distance to boundary

slide-117
SLIDE 117

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Analysis

77

x y z Volume Graphics Distance Map d

(x,y,z)

d x y z

3D position

data value

Signed distance to boundary

slide-118
SLIDE 118

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Analysis

77

x y z Volume Graphics Distance Map d

(x,y,z)

d x y z

New Distance Map

255

v

v

3D position

data value

Signed distance to boundary

slide-119
SLIDE 119

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

New Distance Maps

78

d(v) v v = f (x) x

v0 v0

  • Supports 2D distance map:

d(v,g); g = gradient magnitude

  • Produced automatically from histogram volume

via boundary model

slide-120
SLIDE 120

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Whole Process

79

data value: v “distance”: x

distance function:

d(v)

  • pacity: a

boundary emphasis function: b(x)

  • pacity function:

α(v)

Automatically generated from histogram volume Created by user x α = b(x)

  • 1
  • 2

2 1

slide-121
SLIDE 121

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Whole Process

79

Opacity function: α(v) = b(d(v))

data value: v “distance”: x

distance function:

d(v)

  • pacity: a

boundary emphasis function: b(x)

  • pacity function:

α(v)

Automatically generated from histogram volume Created by user x α = b(x)

  • 1
  • 2

2 1

slide-122
SLIDE 122

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Whole Process

79

Opacity function: α(v) = b(d(v))

α(v,g) = b(d(v,g))

data value: v “distance”: x

distance function:

d(v)

  • pacity: a

boundary emphasis function: b(x)

  • pacity function:

α(v)

Automatically generated from histogram volume Created by user x α = b(x)

  • 1
  • 2

2 1

slide-123
SLIDE 123

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Results: CT Head

80

f -- f ’ f -- f ’’ CT head slice

d(v)

v x α

slide-124
SLIDE 124

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Results: CT Head

81

slide-125
SLIDE 125

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Boundary Emphasis Function

82

slide-126
SLIDE 126

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Boundary Emphasis Function

82

slide-127
SLIDE 127

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Results: Tooth

83

x

b(x)

  • 1
  • 2

2 1

Boundary emphasis function simple to set

a(v) = b(d(v))

slide-128
SLIDE 128

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Terminology

Basic Transfer Functions:

84

Space Vol

Vol Range/ TF Domain Range

Value + Grad Mag Color And Opacity

TF

Domain

slide-129
SLIDE 129

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Tooth: 2D Transfer Function

85

+

  • Color transfer function
  • Pulp
  • Background
  • Dentine
  • Enamel

d(v,g)

Detected 4 distinct boundaries between 4 materials

slide-130
SLIDE 130

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Tooth: 2D Transfer Function

85

+

  • White regions in color

mapped 2D distance function plot are boundary centers Color transfer function

  • Pulp
  • Background
  • Dentine
  • Enamel

d(v,g)

Detected 4 distinct boundaries between 4 materials

slide-131
SLIDE 131

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Tooth: 2D Opacity Function

86

Mostly accurate isolation of all material boundaries

slide-132
SLIDE 132

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

2D Opacity Functions

87

slide-133
SLIDE 133

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

1.Trial and Error (manual) 2.Data-Centric 3.Other

TF Tools

88

slide-134
SLIDE 134

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 89

Different Interaction

“Interactive Volume Rendering Using Multi-Dimensional Transfer Functions and Direct Manipulation Widgets” Kniss, Kindlmann, Hansen: Vis ’01

  • Make things opaque by pointing at them
  • Uses 3D transfer functions (value, 1st, 2nd derivative)
  • “Paint” into the transfer function domain
slide-135
SLIDE 135

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

enamel dentin pulp background

RGB(f )

1D TFs: limitation

90

Slice 1D TF output Rendering

slide-136
SLIDE 136

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

enamel dentin pulp background

RGB(f )

1D TFs: limitation

90

Slice 1D TF output Rendering

slide-137
SLIDE 137

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

enamel dentin pulp background

RGB(f )

1D TFs: limitation

90

1D transfer functions cannot accurately

Slice 1D TF output Rendering

slide-138
SLIDE 138

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

enamel dentin pulp background

RGB(f )

1D TFs: limitation

90

1D transfer functions cannot accurately capture all material boundaries

Slice 1D TF output Rendering

slide-139
SLIDE 139

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 91

RGB( )

α

f

( )

1D to 2D Transfer Function

Generalize…

f

slide-140
SLIDE 140

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 92

RGB( )

α

f

( )

1D to 2D Transfer Function

Generalize…

f

slide-141
SLIDE 141

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 93

RGB( )

α

f

( )

1D to 2D Transfer Function

Generalize…

f

slide-142
SLIDE 142

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 94

RGB( )

α

f

( )

1D to 2D Transfer Function

Generalize…

f

slide-143
SLIDE 143

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 95

RGB( )

α

f

( )

1D to 2D Transfer Function

Generalize…

f

slide-144
SLIDE 144

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 96

RGB( )

α

f

( )

1D to 2D Transfer Function

Generalize…

f

slide-145
SLIDE 145

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 97

  • α

f f |⇥f|

|⇥f|

RGB( ) ( ) RGB( )

α

f

( )

2D Transfer Function

Generalize…

f

slide-146
SLIDE 146

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 98

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-147
SLIDE 147

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 99

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-148
SLIDE 148

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 100

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-149
SLIDE 149

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 101

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-150
SLIDE 150

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 102

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-151
SLIDE 151

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 103

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-152
SLIDE 152

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 104

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-153
SLIDE 153

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 105

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-154
SLIDE 154

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 105

2D transfer functions give greater flexibility in boundary visualization

Display of Surfaces from Volume Data, Levoy 1988

Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-155
SLIDE 155

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 106

Trying to reintroduce dentin / background boundary … Modify…

α

f f |⇥f|

|⇥f|

RGB( ) ( )

2D Transfer Function

slide-156
SLIDE 156

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 107

Second directional derivative

measured with Hessian

D2

ˆ ff

2D to 3D Transfer Function

RGB

+

f, |rf| , D2

ˆ rff

α ⇣ f, |rf| , D2

ˆ rff

slide-157
SLIDE 157

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 108

Modify…

3D Transfer Function

RGB

+

f, |rf| , D2

ˆ rff

α ⇣ f, |rf| , D2

ˆ rff

slide-158
SLIDE 158

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 109

Modify…

3D Transfer Function

RGB

+

f, |rf| , D2

ˆ rff

α ⇣ f, |rf| , D2

ˆ rff

slide-159
SLIDE 159

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 110

Modify…

3D Transfer Function

RGB

+

f, |rf| , D2

ˆ rff

α ⇣ f, |rf| , D2

ˆ rff

slide-160
SLIDE 160

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 111

Modify…

3D Transfer Function

RGB

+

f, |rf| , D2

ˆ rff

α ⇣ f, |rf| , D2

ˆ rff

slide-161
SLIDE 161

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 112

Modify…

3D Transfer Function

RGB

+

f, |rf| , D2

ˆ rff

α ⇣ f, |rf| , D2

ˆ rff

slide-162
SLIDE 162

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 113

Done

RGB

+

f, |rf| , D2

ˆ rff

α ⇣ f, |rf| , D2

ˆ rff

3D Transfer Function

slide-163
SLIDE 163

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 114

enamel / background dentin / background dentin / enamel dentin / pulp

3D Transfer Function

slide-164
SLIDE 164

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 114

enamel / background dentin / background dentin / enamel dentin / pulp

3D Transfer Function

slide-165
SLIDE 165

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020 114

enamel / background dentin / background dentin / enamel dentin / pulp

1D: not possible 2D: specificity not as good

3D Transfer Function

slide-166
SLIDE 166

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Multi-dimensional TFs

Higher dimensional transfer functions:

+ Better flexibility, specificity +Higher quality visualizations

115

slide-167
SLIDE 167

CS530 / Spring 2020 : Introduction to Scientific Visualization.

  • 08. Volume Rendering

February 13, 2020

Multi-dimensional TFs

Higher dimensional transfer functions:

+ Better flexibility, specificity +Higher quality visualizations

115

– Even harder to specify – Unintuitive relationship with boundaries – Greater demands on user interface