Next: Rendering
Up: Summary
Previous: Preprocessing
  Contents
Figure 8.1:
Data structure for efficient volume rendering. During
preprocessing, potentially relevant voxels are extracted from the
volume and stored into a list (an array). For each voxel, the
position, and a set of attributes are stored. The voxels are
ordered by one of the attributes, the ``key'' attribute. This
might be, for example, data value, or one of the
coordinates. Groups of voxels
with an identical key value are joint into RenderListEntrys. All RenderListEntrys sorted by the
key value form a RenderList.
![\includegraphics[width=\linewidth]{Figures/rl.eps}](img57.png) |
All voxels which have been
classified as relevant are extracted from the volume and stored in
a secondary data structure. The structure is simply a list, or array,
containing attribute information for the extracted voxels. Each entry
corresponds to one extracted voxel, and holds the voxel's position,
data value, gradient information and/or other attributes. If
different objects are distinguished within the volume, separate
lists are created for the voxels of each object.
The voxels are sorted by one of the attributes (for example, data
value, or one of the coordinates), voxels within the list can be
grouped into blocks, so-called RenderListEntrys, with the same
value of a ``key'' attribute
(figure 8.1). To save memory, the key attribute
has to be stored just once for all voxels of the group. All RenderListEntrys, sorted by the value of the key attribute form a
RenderList.
For rendering, only information contained within the list is used.
Different compositing methods require a specific ordering of the voxels:
- For DVR, a consistent front-to-back or back-to-front
order is required. Voxels are sorted according to depth (or the axis
most parallel to the viewing direction, for shear/warp-based rendering).
- For MIP, the spatial ordering of voxels is not relevant. By
sorting voxels by value several important advantages are gained.
The voxels can be splatted in the order of ascending data
values as the array is traversed for rendering. Therefore comparing the value of the actual voxel with the screen content
is not necessary at all. Instead of directly mapping data
values to a linear ramp of gray
values for viewing (
,
), medical
data sets are usually viewed using a window to improve
contrast and to focus on certain details. The window is defined by a
center value
and a width
which maps all data values below
to black, all data values above
to white, and the
data in between to a gray ramp. As realistic window functions
(such as used by doctors) map
significant portions of the data to black, the corresponding parts
of the voxel array can be skipped during rendering at
almost zero cost.
- For non-photorealistic volume rendering which enhances
object contours, opacity of a voxel may depend on the direction
of the gradient vector. By grouping voxels according to gradient
direction, entire groups of transparent voxels can be skipped.
Next: Rendering
Up: Summary
Previous: Preprocessing
  Contents
Lukas Mroz, May 2001, mailto:mroz@cg.tuwien.ac.at.