Direct Volume Rendering

17
Direct Volume Rendering

description

Direct Volume Rendering. What is volume rendering?. Accumulate information along 1 dimension line through volume. Volume rendering vs. isosurfaces. No intermediate geometry No thresholding needed View dependent Uses all data instead of just some Fuzzy vs sharp appearance. - PowerPoint PPT Presentation

Transcript of Direct Volume Rendering

Page 1: Direct Volume Rendering

Direct

Volume

Rendering

Page 2: Direct Volume Rendering

What is volume rendering?

• Accumulate information along 1 dimension line through volume

Page 3: Direct Volume Rendering

Volume rendering vs. isosurfaces

• No intermediate geometry

• No thresholding needed

• View dependent

• Uses all data instead of just some

• Fuzzy vs sharp appearance

Page 4: Direct Volume Rendering

Two General Methods

Two general methods:

–Image order: ray casting

–Object order: splatting

Page 5: Direct Volume Rendering

Other methods (handwaving only!)

• Texture slabs– Volume loaded into texture map

memory of graphics card – “slab” between each pair of volume

rendering slices– Pre-integration of volume rendering

integral possible

Page 6: Direct Volume Rendering

Other methods, cont’d

• Fourier volume rendering– Many 1D projections from

unique angles– 1D Fourier transform

interpolated to 2D array F(wx,wy)

– Invert Fourier to recover original density function f(x,y)

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Page 7: Direct Volume Rendering

The Volume Integral• B = ∫I D (cos ) e-∫D ds dt : angle between I & E at each voxel on ray• B: cumulative attenuated info along ray : decay constant• D ds: accumulated densities between voxel &

light source I

E

Attenuate: to lessen the amount, force, magnitude, or value of

Page 8: Direct Volume Rendering

Image Order, color C, opacity

• Ray Casting• 3D density data (e.g., CAT scan)

– 3D color C(x,y,z)– 3D opacity (x,y,z)

• C(x,y,z) determined by gradient (“surface” normal) & lighting (independent of other volume voxels between the point & the light)

(x,y,z) determined by mapping density values to different types of tissue

DVR

Page 9: Direct Volume Rendering

Raycast!

• Raycast: combine c & into C(R), color seen by ray R.

K KC(R) =∑ C(R,k) (R,k) (1 - (R,j)) k=0 j=k+1

(R,k) : kth voxel along ray

C(R,0): color of background (back to front!)

(R,0) = 1 (opaque background)

For each pixel, shoot ray, calculate C(R)

Page 10: Direct Volume Rendering

Raycasting Variations/Issues 1. MIP- maximum intensity projection

good for noisy data but lose differentiation of in front/behind - where does max lay?

Single Ray

Sca

lar

valu

e

Distance along ray

Max intensity

Mean Intensity

A

C

B

C(R) = A or C(R) = B or C(R) = C, (distance to reach accumulated value)

Page 11: Direct Volume Rendering

More Variations/Issues

2. Sampling• Regular sampling

– What is correct step size? Computation cost vs smoothness, may miss details

• Cell intersection– What if ray enters near 90 degrees?– Bresenham method– Other issues covered in VTK text

Page 12: Direct Volume Rendering

More Variations/Issues• Parallel (easy for hardware!) vs.

perspective projection( will image warp?)

• Starting point for sampling

Initial point of ray

1st intersection

Page 13: Direct Volume Rendering

More Variations/Issues

• Data vs color– Calculate color at each vertex, then

trilinear interpolate to sample– Use data at each vertex, trilinear

interpolate to sample. THEN convert to color based on interpolated values

• Early termination based on accumulated opacity

Page 14: Direct Volume Rendering

Object Order

• For each voxel– Project (throw) voxel to projection screen– Apply filtering to ‘splat’, e.g. gaussian,

proportional to distance from plane– Alpha blending– Splatting may be done

• Front to back• Back to front

Page 15: Direct Volume Rendering

Object Order• Discrete process which produces holes on

the periphery or when perspective projection gets extreme.!

• Countered by distributing the energy across multiple pixels via a footprint table. All splats make a footprint and, using the table, adjustmentscan be made beforerendering.

Note: Footprint is the same for each voxel when using parallel projection

Page 16: Direct Volume Rendering

Coherent Projection

• Scanline algorithm• Much faster than splatting• for parallel projection• Scan converts the depth information behind

each projected polygon. (Recall scan conversion: line-by-line, fill polygons)

• Interpolated data and color samples used in raycasting can be accounted for by integrating the values at each scan converting step.

Page 17: Direct Volume Rendering