Semi-Automatic Generation of Transfer Functions
for Direct Volume Rendering

Gordon Kindlmann 1 and James W. Durkin 2


Although direct volume rendering is a powerful tool for visualizing complex structures within volume data, the size and complexity of the parameter space controlling the rendering process makes generating an informative rendering challenging. In particular, the specification of the transfer function -- the mapping from data values to renderable optical properties -- is frequently a time-consuming and unintuitive task. Ideally, the data being visualized should itself suggest an appropriate transfer function that brings out the features of interest without obscuring them with elements of little importance. We demonstrate that this is possible for a large class of scalar volume data, namely that where the regions of interest are the boundaries between different materials. A transfer function which makes boundaries readily visible can be generated from the relationship between three quantities: the data value and its first and second directional derivatives along the gradient direction. A data structure we term the histogram volume captures the relationship between these quantities throughout the volume in a position independent, computationally efficient fashion. We describe the theoretical importance of the quantities measured by the histogram volume, the implementation issues in its calculation, and a method for semi-automatic transfer function generation through its analysis. We conclude with results of the method on both idealized synthetic data as well as real world datasets.

1 Address: Department of Computer Science, University of Utah, Salt Lake City, UT 84112. Email: damn spam crawlers can't see GIFs.
2 Address: Program of Computer Graphics, Cornell University, Ithaca, NY 14853. Email: damn spam crawlers can't see GIFs.

Download This Paper: Gzip'd PS | PS | PDF
Or Its Colorplate: Gzip'd PS | PS | PDF
Or View The Presentation Given At Viz: HTML
NEW   Or Download the Software   NEW

next up previous
Next: Introduction
Gordon Kindlmann