570 likes | 774 Views
Direct Volume Rendering Joe Michael Kniss jmk@cs.utah.edu http://www.cs.utah.edu/~jmk Scientific Computing and Imaging Institute University of Utah. Outline. What is Volume Rendering? Shading models Current hardware methods Visualization 2001 presentation. What?. Volume Rendering.
E N D
Direct Volume Rendering Joe Michael Kniss jmk@cs.utah.edu http://www.cs.utah.edu/~jmk Scientific Computing and Imaging Institute University of Utah
Outline • What is Volume Rendering? • Shading models • Current hardware methods • Visualization 2001 presentation
What? Volume Rendering • Volume Rendering is a visualization/graphics technique which directly renders data using a reasonable approximation to a physical light transport model.
Volume Rendering Overview • Data acquisition • Reconstruction • Sample & interpolate • Transfer function • Lighting • Blend/integrate Spiral CT Filtered back-projection Tri-linear Interp. 3D T.F. Light & shadow Back to Front
Volume Rendering Overview Acquisition type Reconstruction • CT (X-ray) • MRI • Simulation • Inverse Radon • Inverse Fourier • None? Others: PET, SPECT, EEG, MEG, Geological, Atmospheric
Overview Interpolation How do we recover a function that is at least C0 continuous?? ? Sampled Function Real Function
Overview Interpolation • Estimate values between samples • Reconstruct continuous function box sinc C0 C00 Catmul-Rom linear C0 C1
Overview Interpolation • Estimate values between samples • Reconstruct continuous function Best Bad box sinc Quality OK Good Catmul-Rom linear
Overview Interpolation • Estimate values between samples • Reconstruct continuous function Hard Easiest box sinc Use Easy OK Catmul-Rom linear
Overview Interpolation Laura Bush Sampled Function
Overview Interpolation Box What is the value here?
Overview Interpolation Box What is the value here?
Overview Interpolation Box What is the value here?
Overview Interpolation Box == Nearest Neighbor Reconstructed function
Overview Interpolation Linear What is the value here?
Overview Interpolation Linear What is the value here?
Overview Interpolation Linear What is the value here?
Overview Interpolation Linear == Connect the dots Reconstructed function
Overview Interpolation Catmull-Rom == Rolling Hills Reconstructed function
Overview Interpolation Sinc == Roller Coaster Reconstructed function But what about the ringing??
Overview Interpolation
Overview Interpolation In reality: Hmm… Bad box sinc Quality OK Better Catmul-Rom linear
Interpolation • Bi-linear • Tri-linear What is the value here?
Interpolation • Bi-linear = 3 linear interpolations, 2 axes • Tri-linear = 7 linear interpolations, 3 axes • 1st along x • 2nd along y • 1st along x
Interpolation • Bi-linear = 3 linear interpolations, 2 axes • Tri-linear = 7 linear interpolations, 3 axes • 1st along x • 2nd along y • 1st along x • 2nd along y
Interpolation • Bi-linear = 3 linear interpolations, 2 axes • Tri-linear = 7 linear interpolations, 3 axes • 1st along x • 2nd along y • 1st along x • 2nd along y • 3rd along z
Transfer Function • Assign optical properties to data • Color • Opacity Transfer function
Transfer Function • Assign optical properties to data • Color • Opacity x Transfer function
Transfer Function • Assign optical properties to data • Color • Opacity T(x) Transfer function
Overview Rendering Image plane Eye Projection Volume Data
Overview Rendering Image plane r1 r0 Eye Volume Data Ray Casting But how do we get the final color??
Overview Rendering r1 r0 Solution: Integrate T(x) r0 r1
Overview Rendering r1 r0 Solution: Sum (Riemann) r0 r1
Overview Rendering Emissive What about occlusion?? r0 r1
Overview Rendering Absorption • Use alpha channel for opacity • Values should approach ZERO Exponential-1 curve r0 r1
Overview Rendering r0 r1
Overview Rendering Emission & Absorption r0 r1
Overview Rendering Emission & Absorption r0 r1
Overview Rendering Emission & Absorption = cout = ci + ai*cin r0 r1
Overview Rendering Emission & Absorption Where did the light come from?? cout = ci + ai*ci-1 r0 r1
Overview Lighting Image plane r1 r0 Eye Light
Overview Lighting Sample ri Light The volume occludes some of the light
Overview Lighting Sample ri (s) First scattering/ shadows l0
Overview Lighting It still doesn’t look like a surface. Standard shading models need a surface normal
Overview Lighting Solution: use the gradient as the normal 14 10 linear 3 5 linear derivative
Overview Lighting Solution: use the gradient as the normal 14 dx = 3-10 = -7 dy = 5-14 = -9 10 linear 3 5 linear derivative
Overview Lighting Solution: use the gradient as the normal 14 10 3 light 5 normal reflection eye
Overview Lighting Diffuse 14 10 3 5 l n Color = C*(n l) C = object color
Overview Lighting Diffuse + specular 14 10 3 5 l n r e Color = C*(n l) + LC*(r l)P LC = light color P = specular power
Overview Lighting Diffuse + specular & shadow Color = [C*(n l) + LC*(r l)P ] * S S = shadow amount