Volume visualization is the creation of graphical representations of data sets that are defined on three-dimensional grids. Volume data sets are characterized by multidimensional arrays of scalar or vector data. These data are typically defined on lattice structures representing values sampled in 3-D space. There are two basic types of volume data:
Scalar volume data contains single values for each point.
Vector volume data contains two or three values for each point, defining the components of a vector.
An example of scalar volume data is that produced by
The flow data represents the speed profile of a submerged jet within
an infinite tank. Typing
[x,y,z,v] = flow;
produces four 3-D arrays. The
z arrays specify the coordinates of the scalar
values in the array
wind data set is an example of vector
volume data that represents air currents over North America. You can
load this data in the MATLAB® workspace with the command:
This data set comprises six 3-D arrays:
z are the coordinate data for the arrays
w, which are the vector components for each
point in the volume.
The techniques you select to visualize volume data depend on what type of data you have and what you want to learn. In general:
Scalar data is best viewed with isosurfaces, slice planes, and contour slices.
Vector data represents both a magnitude and direction at each point, which is best displayed by stream lines (particles, ribbons, and tubes), cone plots, and arrow plots. Most visualizations, however, employ a combination of techniques to best reveal the content of the data.
The material in these sections describes how to apply a variety of techniques to typical volume data.
MATLAB provides functions that enable you to interpolate and restructure you data in preparation for visualization. See these sections for more information:
Creating an effective visualization requires a number of steps to compose the final scene. These steps fall into four basic categories:
Determine the characteristics of your data. Graphing volume data usually requires knowledge of the range of both the coordinates and the data values.
Select an appropriate plotting routine. The information in this section helps you select the right methods.
Define the view. The information conveyed by a complex three-dimensional graph can be greatly enhanced through careful composition of the scene. Viewing techniques include adjusting camera position, specifying aspect ratio and project type, zooming in or out, and so on.
Add lighting and specify coloring. Lighting is an effective means to enhance the visibility of surface shape and to provide a three-dimensional perspective to volume graphs. Color can convey data values, both constant and varying.
MATLAB functions enable you to apply a variety of volume visualization techniques. The following tables group these functions into two categories based on the type of data (scalar or vector) that each is designed to work with. The reference page for each function provides examples of the intended use.
Draw contours in volume slice planes
Compute isosurface end-cap geometry
Compute the colors of isosurface vertices
Compute normals of isosurface vertices
Extract isosurface data from volume data
Create a patch (multipolygon) graphics object
Reduce the number of patch faces
Reduce the number of elements in a volume data set
Reduce the size of each patch face
Draw slice planes in volume
Smooth 3-D data
Convert surface data to patch data
Extract subset of volume data set
Plot velocity vectors as cones in 3-D vector fields
Compute the curl and angular velocity of a 3-D vector field
Compute the divergence of a 3-D vector field
Interpolate streamline vertices from vector-field magnitudes
Draw stream lines from 2-D or 3-D vector data
Draw stream particles from vector volume data
Draw stream ribbons from vector volume data
Draw well-spaced stream lines from vector volume data
Draw stream tubes from vector volume data
Compute 2-D stream line data
Compute 3-D stream line data
Return coordinate and color limits for volume (scalar and vector)