In the following, the vertex coordinates
, with
being the
eight vertices of a cell, will be used as reference coordinates of a cell.
Cells which have been identified during preprocessing as relevant
cells are extracted from
the volume and stored into a similar RenderList structure as
described in section 4.1.2. Cells are sorted according to
descending cell-maximum (
) values within the cell
array. For every cell its
reference coordinates are stored into the corresponding 32 bit entry
in the array.
is stored as the key attribute at
RenderListEntrys.
Using this alternative storage scheme, it is trivial to start
MIP with high-valued cells. Speed-up factors of 10-20 compared to other
optimized high-quality MIP
approaches [5,51,67]
are gained by
just this part of the approach, in combination with the usual
optimizations like evaluating only cells with
current ray
maximum, and noise skipping (see table 4.3, row 3 for
detailed results).
Although sorting all cells by
would most effectively
reduce the number of interpolations required, sorting
them by
has several advantages. The
encoding of
in the RenderListEntry allows to access
it in an efficient way for testing a cell's relevance
during projection. Within a group of cells with the same
sub-sorting is done according to descending
. Due
to the small range of different values, sorting by
and
can be done using fast histogram-based sorting (complexity
).
During projection, cells with high
and
are processed
first.
The chosen cell order is also well-suited for efficiently skipping
cells which have been mapped to black due to windowing. If cells
are sorted by
and rendering is started with highest values of
, rendering can be stopped after reaching the first cell with
mapped to black. For realistic window definitions (as used by
medical doctors) this can significantly speed up the rendering (up to
several times faster).
In addition to the fast computation of MIP due to re-sorting, another big advantage is gained: progressive refinement is achieved automatically, as cells which are most relevant to MIP are projected first. Projection can be stopped any time - the result will always be optimal for the given time-constraints. Also, computation of cheap previews is simple. Since interaction is crucial for using MIP, this advantage is also very important for practical use.
In the following a rough comparison between the traditional way of volume storage and the RenderList-based representation of cells is given: Storing the position instead of data values doubles the amount of memory required. As roughly 30% of all cells remain after the preprocessing step (cell removal), the amount of memory required is about 0.6 * original volume size (per cluster of viewing directions). For 12 clusters this results in an approximately sevenfold increase in memory size compared with the original data set. Considering data sets from medical applications and regular hardware resources, the storage requirements are high, but acceptable. If, nevertheless, the memory resources are a limiting factor, the data set can also be transformed into a single cell array without prior view-dependent preprocessing. This, of course, slightly increases rendering time (see table 4.7), but still gains results significantly faster than conventional approaches of comparable image quality, while requiring just twice as much memory as the original data set.