Envisioning Information Lecture 14 – Scientific Visualization Scalar 3D Data – Volume Rendering
-
Upload
sopoline-vance -
Category
Documents
-
view
34 -
download
0
description
Transcript of Envisioning Information Lecture 14 – Scientific Visualization Scalar 3D Data – Volume Rendering
ENV 2006 14.1
Envisioning Information
Lecture 14 – Scientific Visualization
Scalar 3D Data – Volume Rendering
ENV 2006 14.2
• This is a quite different mapping technique for visualization of 3D scalar data (compared with isosurfacing)
• Aims to relate volume to a partially opaque gel material - colour and opacity at a point depending on the scalar value
• By controlling the opacity, we can:– EITHER show surfaces through setting opacity to 0 or 1
– OR see both exterior and interior regions by grading the opacity from 0 to 1
[Note: opacity = 1 - transparency]
Volume Rendering
ENV 2006 14.3
Example - Forest Fire
From Numerical Model of Forest Fire, NCAR, USA
ENV 2006 14.4
• Major application area is medical imaging
• Different scanning techniques include:– CT (Computed Tomography)
– MRI (Magnetic Resonance Imaging)
– SPECT (Single Photon Emission Computed Tomography)
• Three-dimensional images constructed from multiple 2D slices
Scanners give averagevalue for a region - ratherthan value at a point
Interslice gap
Slice
Slice
Medical Imaging
ENV 2006 14.5
Examples of Brain Scans
ComputerizedTomography
MagneticResonanceImaging
SPECT
ENV 2006 14.6
Example - Medical Imaging
Renderedby VolPacksoftware
CT scan data256x256x226
ENV 2006 14.7
Data Classification – Assigning Opacity to CT data
• CT will identify fat, soft tissue and bone– Each will have known absorption levels, say ffat, fsoft_tissue, fbone
CT value
Opacity
fsoft_tissue
0
1This transfer function will highlight soft tissue
ENV 2006 14.8
Data Classificatiion – Assigning Opacity to CT Data
• To show all types of tissue, we assign opacities to each type and linearly interpolate between them
CT value
Opacity
fsoft_tissue
0
1
ffat fbone
ENV 2006 14.9
CT number
opacity
0.0
1.0This is knownas opacitytransfer function
In practice, the boundaries between materialsare of key importance - hence a two-stage algorithmused:(i) Calculate as above(ii) Scale by gradient of function to highlight boundaries
* = |grad f | grad f = [df/dx,df/dy,df/dz]
(f)
? So what is opacity in homogeneous areas ?
Data Classification – Constructing the Gel – CT Data
ENV 2006 14.10
• Colour classification is done similarly
white
red
yellow
Air Fat SoftTissue
Bone
CT number
Known as colour transfer function
Data Classification – Constructing the Gel – CT Data
ENV 2006 14.11
• Volume rendering is also useful for other data - eg CFD temperature
• Opacity transfer function: possibly increase with temperature• Colour transfer function:
blue(0,0,1)
red(1,0,0)
temperature
Data Classification – Constructing the Gel – Temperature Data
ENV 2006 14.12
Data Classification in IRIS Explorer
• The GenerateColormap tool in IRIS Explorer can be used to assign colour and transparency to data
• Make sure you know how to save colourmaps from one session to another
ENV 2006 14.13
Example
Storm clouddata renderedby IRIS Explorer –Isosurface & volumerendering
ENV 2006 14.14
Rendering the Volume
• There are two major techniques:– Ray casting
– Texture mapping
ENV 2006 14.15
Ray Casting to Render the Volume
1 Assign colour and opacity to data values– Classification process assigns gel colour to the original data
2 Apply light to volume– Lighting model will give the light reflected to the viewer at any
point in volume - if we know the normal
– Imagine an isosurface shell through each data point - surface normal is provided by gradient vector (remember from isosurfacing!)
– Thus we get colour reflected at each data point
ENV 2006 14.16
eyepoint
data volume
imageplane
ray
entrypoint
exit point
sample pointsone unit apart(colour andopacity byinterpolation)
3. For each pixel in image
a) cast ray from eye through pixel into volume, taking samples at regular unit intervals
b) measure colour reflected at each sample in direction of ray
c) composite colour from all samples along ray, taking into account the opacity of gel it passes through - en route to the eye
Casting the Rays and Taking Samples
ENV 2006 14.17
opaque background,emitting I0
eyepoint
I0I*
Intensity - I1
Opacity -
I* = I0 (1 - ) + I1
Imagine block of gel, one unit wide around sample point
Compositing the Samples Along the Ray – First Sample
ENV 2006 14.18
opaque background
eyepoint
I0I*
Intensity - I1
Opacity -
I* = I0 (1 - ) + I1... from previous slide
Intensity - I2
Opacity - 2
I**
I** = I* (1 - ) + I2
= I0 (1 - )(1 - ) + I1 - ) + I2
Compositing the Samples along the Ray – Two Samples
ENV 2006 14.19
• The process continues for all samples, yielding a final intensity, or colour, for the ray - and this is assigned to the pixel– try it for a third sample, then you should be able to deduce a
general formula
I = ni=0 Iii n
j=i+1(1 - j)
Note that if one compositing step is done for each ray in turn, then the next step, and so on, the image will be created in a sweep from back to front, showing all the data (even behind opaque parts)
Compositing the Samples along a Ray
ENV 2006 14.20
Compositing can also work front-to-back:
Intensity In
Opacity n
eyepoint
I*I* = n In
Intensity In
Opacity n
eyepoint
I**I** = I* + (1 - *)n-1In-1
Intensity In-1
Opacity n-1
* = n- cumulative opacity
** = * + (1-*)n-1
Front to Back Compositing
ENV 2006 14.21
• The advantage of front-to-back compositing is that we can stop the process if the accumulated opacity reaches 1.0 - no point in going further
• Again, you should be able to deduce the general formula if you look at three samples – can you show that front-to-back and back-to-front compositing give the
same answer?
Front-to-Back Compositing – Early Termination
ENV 2006 14.22
Maximum Intensity Projection
• When performance rather than accuracy is the goal, we can avoid compositing altogether and approximate I by maximum intensity along ray
• MIP : Maximum Intensity Projection
• Often used in angiography...
ENV 2006 14.23
Texture-based Volume Rendering
• Volume rendering by ray casting is time-consuming– one ray per pixel
– each ray involves tracking through volume calculating samples, and then compositing
– different for each viewpoint
• Alternative approach - using texture maps - can exploit graphics hardware
ENV 2006 14.24
Texture Mapping
• Modern graphics hardware includes facility to draw a textured polygon
• The texture is an image with red, green, blue and alpha components…
• … this is used in computer graphics to avoid constructing complex geometric models
… and we can exploit this in volume rendering
ENV 2006 14.25
Texture-based Volume Rendering
• Draw from back-to-front a set of rectangles
– first rectangle drawn as an area of coloured pixels, with associated opacity, as determined by transfer function and interpolation - and merged with background in a compositing operation (supported by hardware)
– successive rectangles drawn on top
ENV 2006 14.26
3D Texture-based Volume Rendering
• For a given viewing direction, we would need to select slices perpendicular to this direction
• This requires interpolation to get the values on the slices
• Until recently this has only been possible with expensive graphics boards
imageplane
volume
3D texture mapping
ENV 2006 14.27
Comparison of Ray Casting and Texture Approaches
Ray casting Ray castingTexture-based Texture-based
http://www.cora.nwra.com/Ogle/ http://vg.swan.ac.uk/vlibhttp://www.amiravis.com
ENV 2006 14.28
Close Up
Ogle: texture-based Vlib: ray casting
ENV 2006 14.29
Splatting
• Another commonly used method is splatting
• Fuzzy balls around each voxel projected on to image plane
• Composited in the image plane
• VolumeToGeom in IRIS Explorer
ENV 2006 14.30
References
• Classic paper:
• M. Levoy. Efficient ray tracing of volume data. ACM Trans Graphics, Vol 9, 3, pp245-261, 1990
• Recent work:
• Ray casting:– S. Grimm, S. Bruckner, A.
Kanitsar, E. Groller.Memory efficient acceleration structures and techniques for CPU-based volume raycasting of large data. In Proceedings of the IEEE Symposium on Volume Visualization and Graphics 2004 (Oct. 2004), pp. 1-8.
• Texture-based:– K. Engel et al, Real-time
volume graphics. Tutorial 28 in SIGGRAPH2004, See <http://www.vrvis.at/via/resources/course-volgraphics-2004/>