Streaming and Out-of-Core Methods 205
Modern external memory and streaming formats for unstructured data
solve the first problem by in-lining the vertex data with the cell data (also
called normalized or triangle soup representations [6]). The cells and vertices
are kept together in portions called meta-cells [5], or by intermixing the vertex
and cell lists so that the vertices and the cells that reference them are kept
very close together in the data stream [19]. The second problem is solved by
keeping meta-information along with each portion.
A notable exception to the rule that unstructured data is hard to stream
is the point set. It is an unstructured data type that consists only of a set of
locations in space without any connections between them. The fact that one
level of indirection (from cell list to point list) is removed greatly simplifies
the handling of large point sets. There are also many algorithms that work on
point sets that do not require spatially coherent regions. For those algorithms
that do, standard OOC sorting algorithms [35] can be used in a pre-processing
step to produce regions that do not overlap.
Composite data sets, which consist of sets of structured or unstructured
data sets (i.e., blocks), can be straightforward to stream, as long as metadata
describing each block is available. In this situation it is straightforward to
process each block, in turn.
10.3.2 Repetition
In streaming visualization, the visualization pipeline has to support repe-
tition to iterate through all of the portions that make up the whole data set.
As Figure 10.3 illustrates, both push and pull pipeline models can support
streaming. In the push model, the system reads a portion at a time. The act
of reading each portion causes the pipeline to push it through toward the
rendering module. In the pull model, it is the rendering module that requests
each portion, in turn (see also 2.2.2).
Comparing the two, a push model is better suited to unbounded length
streams since the availability of new data can simply trigger the next cy-
cle. Push models also have less overhead in asynchronous streaming because
downstream modules can begin as soon as results are ready [36]. On the other
hand, push models are not as effective at sparse traversal because downstream
modules can not be as selective about what the pipeline processes [23].
With either approach, streaming visualization systems must aggregate re-
sults over time as each new result is produced. For example, with a scan-
converted rendering of opaque surfaces, the color and depth buffers are not
cleared in between portions, so that each pixel ends up with the color of the
nearest primitive out of the entire data set.
10.3.3 Algorithms
Some, but not all, visualization algorithms are inherently well-suited for
streaming [32, 34, 11]. The defining factor is how much support an algorithm