After extraction, the RenderLists and attribute data of volumetric objects are encapsulated into so-called VolumeObjects and added to a common scene graph for rendering (figure 6.4). A common task of all types of nodes within the scene graph is to deliver up-to-date RenderLists which represent the content of their subgraphs. In the following a short overview on the most important node types is given:
Each node is responsible for tracking changes of parameters which affect it's content and for performing appropriate actions according to changes. The actual update of renderable data to reflect parameter changes is carried out as late as possible, i.e., when a request for the affected voxel data is issued for rendering (lazy evaluation). Keeping just the currently visible data up-to-date improves the responsiveness of the visualization during interactive parameter changes significantly. Furthermore, keeping every voxel which is affected by a parameter change immediately up-to-date would spoil the efficiency of any caching scheme. An example for this would be a clipping operation applied to the representations of an object in 100 time steps of the data.
The volume information which is contained within a single scene graph can be displayed within multiple views. For multiple 3D views just the viewing parameters, like camera position may vary, remaining parameters are encoded into the RenderList, which is shared among all views. Additional 2D views on the data may display sections through the volume, histograms, etc.