Using multi-dimensional transfer functions heightens the importance of densely sampling the voxel data in rendering. With each new axis in the transfer function, there is another dimension along which neighboring voxels can differ. It becomes increasingly likely that the data sample points at the corners of a voxel straddle an important region of the transfer function (such as a region of high opacity) instead of falling within it. Thus, in order for the boundaries to be rendered smoothly, the distance between view-aligned sampling planes through the volume must be very small. Most of the figures in this paper were generated with sampling rates of about 6 to 10 samples per voxel. At this sample rate, frame updates can take nearly two seconds on the Octane2, and nearly a second on the GeForce3. For this reason, we lower the sample rate during interaction, and re-render at the higher sample rate once an action is completed. During interaction, the volume rendered surface will appear coarser, but the surface size and location are usually readily apparent. Thus, even with lower volume sampling rates during interaction, the rendered images are effective feedback for guiding the user in transfer function exploration.
One benefit of using our 3D transfer functions is the ability to use a ``default'' transfer function which is produced without any user interaction. Given our interest in visualizing the boundaries between materials, this was achieved by assigning opacity to high gradient magnitudes and low-magnitude second derivatives, regardless of data value, while varying hue along the data value. This default transfer function is intended only as a starting point for further modification with the widgets, but often it succeeds in depicting the main structures of the volume, as seen in Figure 8 (on colorplate). Other application areas for volume rendering may need different variables for multi-dimensional transfer functions, with their own properties governing the choices for default settings.
Dual-domain interaction has utility beyond setting multi-dimensional transfer functions. Of course, it can assist in setting 1D transfer functions, as well as isovalues for isosurface visualization. Dual-domain interaction also helps answer other questions about the limits of direct volume rendering for displaying specific features in the data. For example, the feedback in the transfer function domain can show the user whether a certain feature of interest detected during spatial domain interaction is well-localized in the transfer function domain. If re-projected voxels from different positions, in the same feature, map to widely divergent locations in the transfer function domain, then the feature is not well-localized, and it may be hard to create a transfer function which clearly visualizes it. Similarly, if probing inside two distinct features indicates that the re-projected voxels from both features map to the same location in the transfer function domain, then it may be difficult to selectively visualize one or the other feature.
A surprising variety of different structures can be extracted with multi-dimensional transfer functions, even from standard datasets which have been rendered countless times before. For instance, Figure 9 shows how using the clipping plane and probing makes it easy to detect and then visualize the surface of the the frontal sinuses (above the eyes) in the well-known UNC Chapel Hill CT Head dataset, using a 3D transfer function. This is a good example of a surface that can not be visualized using isosurfacing or 1D transfer functions.
|(a) Clipping plane with probe||(b) Showing frontal sinuses|