Transfer Functions in Direct Volume Rendering: Design, Interface, Interaction Gordon Kindlmann Scientific Computing and Imaging Institute School of Computing University of Utah gk@cs.utah.edu A principle of direct volume rendering is that visualizations can be created without creating intermediate geometric structure, such as polygons comprising an isosurface, but simply by a “direct” mapping from volume data points to composited image elements. Together with traditional computer graphics elements such as cam- era, lighting, and shading, the central ingredient in that direct map- ping is the assignment of optical properties (opacity, color, etc.) to the values comprising the volume dataset. This is the role of the transfer function [6, 26, 28]. As simple and direct as that map- ping is, it is also extremely flexible, because of the immense variety of possible transfer functions. Because that flexibility is generally unconstrained, the most important parameter in producing a mean- ingful and intelligible volume rendering is also one of the hardest parameters to set appropriately. This motivates the study of trans- fer function design, the development of new interfaces for transfer function specification, and a consideration of how interaction tech- niques in visualization systems can simplify transfer function cre- ation. These course notes attempt to describe the current state of the art of transfer functions in direct volume rendering. Existing approaches can be approximately located in a continuum between data-driven and image-driven methods, which determine transfer functions based on information extracted from the volume dataset, or from direct volume rendered images, respectively. Keywords: Volume visualization, Direct volume rendering, Trans- fer functions, feature detection, data exploration 1 Introduction Before describing the various approaches to finding and specifying transfer functions, the basic types of transfer function should be out- lined. Because they are functions in the strict mathematical sense, when talking about transfer functions it is important to identify the domain and range of transfer function in question. This is also a natural way to categorize the different types of transfer functions. In the simplest type of transfer function, the domain is the scalar data value (assuming the volume dataset itself is scalar), and the range is opacity. Since the direct volume rendered image is gen- erally composed through repeated applications of the over opera- tor [39], the extent to which a data value is visible in the final im- age is determined by how much opacity it contributes. Only impor- tant features should receive high opacity, so as to not be obscured by opacity from uninteresting regions. Because of the fundamen- tal role opacity plays in creating an intelligible volume visualiza- tion, this particular type of transfer function can be given the more specific term opacity function. On the other hand, the process of assigning opacity to a volume data point is often called classifica- tion [28]. Figure 1 illustrates the application of opacity functions to some different datasets, showing slices of the dataset before and af- ter classification, as well as a shaded volume rendering. This figure also demonstrates a very common class of transfer function, based on linear ramps between user-specified control points. 0 50 100 150 200 250 0.2 0.4 0.6 0.8 1.0 0 α(v) v 0 50 100 150 200 250 0.2 0.4 0.6 0.8 1.0 0 α(v) v 0 50 100 150 200 250 0.2 0.4 0.6 0.8 1.0 0 α(v) v Figure 1: Opacity function demonstration for (from left to right) synthetic cylinder, CT engine block, and electron microscopy den- drite. Going from top to bottom: a slice of the dataset, a plot of the opacity function which assigns opacity α according to data value v, the result of applying the opacity function to the slice, and an image rendered using the shown opacity function. Opacity functions can be generalized to different types of trans- fer function by augmenting the function’s range. The range often includes color, because color is a simple and natural way to visually distinguish between structures [28]. In general, any optical prop- erty that can be represented and composited by computer graphics can be in the range of a transfer function. This includes opacity, color, emittance, scattering by phase functions [23], shading pa- rameters, texturing [17], and even index of refraction [42]. These elements can be represented in varying degrees of sophistication; for instance, opacity can vary according to color, instead of being a single scalar [34]. Transfer functions can also be generalized by increasing the di- mension of the function’s domain. These can be termed multi- dimensional transfer functions. In scalar volume datasets, a useful