1. Field of the Invention
The present invention relates generally to computer graphics systems and, more particularly, to volume rendering in a computer graphics system.
2. Related Art
Computer graphics systems are commonly used for displaying two- and three-dimensional graphics representations of objects on a two-dimensional display screen. Current computer graphics systems provide highly detailed representations and are used in a variety of applications.
Volume rendering is an important branch of computer graphics, following behind the development of geometric rendering and pixel rendering. Volume rendering is a method for directly rendering a volume data set, or volume, to show the characteristics of the interior of a solid object when displayed on a two-dimensional computer monitor or other output device.
A volume data set is a three-dimensional array of data points referred to as volume elements, or voxels. A voxel can be thought of as the three-dimensional analogue of a pixel. A voxel is a three-dimensional volume element representing a discrete sample of a volume in three-dimensional space. Voxels are commonly defined as sample points separated by a finite distance, with each voxel having a position and a value. The position of a voxel specifies the x,y,z coordinates of the center of the voxel in the 3D volume data set. The value of the voxel depends on its format. For example, a voxel can have an intensity element and an index element. These elements are usually treated differently in the volume rendering process.
Volume data sets can be generated by numerous means, but most commonly by some method of three-dimensional scanning or sampling and by numerical modeling. For example, a volume data set may be generated by magnetic resonance imaging (MRI), wherein the density of human or animal tissue is computed at each point of a 3D grid. A display of this information could indicate the boundaries of the various types of tissue, as indicated by density changes. Volume rendering is the process by which this data is displayed on a 2D graphics device. The text xe2x80x9cIntroduction to Volume Renderingxe2x80x9d by Barthold Lichtenbelt, Randy Crane and Shaz Naqvi, Prentice Hall PTR, 1998, provides a comprehensive introduction to volume rendering, and is hereby incorporated by reference herein in its entirety.
To render a 2D representation of a 3D volume data set, the volume rendering system passes imaginary rays emanating from a pixel on an image plane through the volume data set. As each ray travels through the data, the volume rendering system calculates the intensity of each data point, or datum, traversed by the imaginary ray. The volume rendering system uses a compositing function to generate a single accumulated value from the resulting texel values. These accumulated values are then used to project the volume data set onto a two-dimensional space to form a two-dimensional representation of the three-dimensional volume data set. Certain data points in the three-dimensional volume data set can be made transparent or translucent in varying degrees by changing the classification function, allowing internal features of interest to become visible when rendered.
Volume data sets are quite large and, as a result, can place a strain on system responses. A typical volume data set from an MRI scanner, for example, can contain as many as 6.7 million voxels, whereas a typical polygon data set for geometric rendering contain fewer than 0.5 million polygons. As a result, conventional graphics systems typically implement volume rendering operations in software. Such implementations, however, have exhibited poor performance when used to render large volume data sets. For example, it is not uncommon for software-based volume rendering system to take up to several minutes to completely render a single image of a large volume data set. Thus, there is a need in the art for a more efficient approach to volume rendering.
The present invention is directed to a voxel transfer circuit that implements high-speed voxel transfer operations. As such, when implemented in a 2D or 3D texture mapping circuit of a graphics system, or a graphics card adapter of a workstation, the present invention provides a comprehensive, accelerated volume rendering capability to the existing texture mapping pipeline. For each voxel in a volume data set, the voxel transfer circuit generates a texel having an opacity value and a color value based on one or more properties of voxel including the local gradient magnitude and a lighting model. The relationship between these values is referred to herein as a classification or transfer function. In the present invention, the voxel transfer circuit implements a transfer function that employs a gradient-influenced classification. Such a transfer function generates opacity and color values of structures with excellent edge and surface discrimination. Preferably the voxel transfer circuit also includes the influence of a lighting model on the voxel, providing improved three-dimensional clarity and depth cues.
As a result, the present invention enables existing systems to perform complete volume rendering at accelerated texture mapping speeds. Thus, the invention allows for modifications to the transfer function during successive voxel transfer operations, enabling the operator to interactively modify the results of the volume rendering operations at accelerated rates. This allows graphics applications to expand the use of volume rendering. The present invention also provides operators with the ability to interactively explore different ways of visualizing their 3D volume data. That is, the present invention enables the operator to re-render a voxel repeatedly, gradually modifying the transfer function in small increments, viewing the results of the modification in a sequence of volume-rendered frames that are rendered quickly.
A number of aspects of the invention are summarized below, along with different embodiments that may be implemented for each of the summarized aspects. It should be understood that the embodiments are not necessarily inclusive or exclusive of each other and may be combined in any manner that is non-conflicting and otherwise possible. It should also be understood that these summarized aspects of the invention are exemplary only and are considered to be non-limiting.
In one aspect of the invention, a voxel transfer circuit for processing a volume element is disclosed. The volume element has an intensity component and a gradient component. The voxel transfer circuit includes a gradient magnitude calculator circuit that receives a signal corresponding to the gradient component, and that generates a signal corresponding to a magnitude of the received gradient component. A classification circuit of the voxel transfer circuit receives a signal corresponding to the intensity component and the gradient magnitude signal, and generates a first signal corresponding to an opacity value and a second signal corresponding to a color value. Preferably, the voxel transfer circuit also includes a shader circuit that receives the gradient component signal and generates a signal corresponding to an attenuation factor based on a predetermined lighting model, as well as a multiplier that receives the color value signal and the attenuation factor signal, and generates a signal corresponding to the product of the color value and attenuation factor. Preferably, the classification circuit comprises a data array associating the opacity and color values with the intensity and gradient component values.
In another aspect of the invention, a volume rendering system is disclosed. The volume rendering system includes a voxel transfer circuit constructed and arranged to process a volume element including an intensity component and a gradient component. The voxel transfer circuit includes a gradient magnitude calculator circuit constructed and arranged to receive a signal corresponding to the gradient component, and to generate a signal corresponding to a magnitude of the gradient component. A classification circuit is also included. The classification circuit is constructed and arranged to receive a signal corresponding to the intensity component and the gradient magnitude signal, and to generate a first signal corresponding to an opacity value and a second signal corresponding to a color value. The voxel transfer circuit preferably also includes a shader circuit constructed and arranged to receive the gradient component signal and to generate a signal corresponding to an attenuation factor based on an implemented lighting model. A multiplier is implemented to receive the color value signal and the attenuation factor signal, and to generate signal corresponding to the product of the color value and the attenuation factor. In a still further aspect of the invention, a volume rendering system configured to implement a volume rendering pipeline is disclosed. The volume rendering system includes a texture mapping unit; a texture mapping memory operatively coupled to the texture mapping unit; and a voxel transfer circuit operatively coupled to both, the texture mapping unit and the texture mapping memory. The voxel transfer circuit processes a volume element having an intensity component and a gradient component. The voxel transfer circuit can be configured as noted above.
In another aspect of the invention, a circuit-based method for processing each of a plurality of voxels in a volume data set to generate a corresponding texel is disclosed. Each voxel includes an intensity component and a gradient component. The method includes: (1) determining a magnitude of the gradient component; (2) determining an opacity value of the resulting texel based on the intensity component and the magnitude of the gradient component; and (3) determining a color value based on the intensity component and the magnitude of the gradient component.
In one embodiment, the gradient component includes a x-component, y-component and z-component. Here, determining a magnitude of the gradient component includes calculating the magnitude of the gradient component using the relationship:             G      M        =          "LeftBracketingBar"                                    G            X            2                    +                      G            Y            2                    +                      G            Z            2                              "RightBracketingBar"        ,
where, GM is the magnitude of the gradient component, and GX, GY and GZ are the x-, y- and z- gradient components, respectively.
In another embodiment, determining an opacity value includes: (a) storing a look-up table of a plurality of data associations, each such association including voxel intensity and gradient magnitude values associated with texel opacity and color values; (b) receiving a signal corresponding to the intensity component and the signal corresponding to the gradient magnitude; and (c) accessing the look-up table with the intensity and gradient magnitude values to retrieve the associated opacity value. The same process can be used to determine the color value.
Various embodiment of the present invention provide certain advantages and overcome certain drawbacks of the above and other conventional techniques. Not all embodiments of the present invention share the same advantages and those that do may not share them under the same or similar circumstances. Further features and advantages of the present invention as well as the structure and operation of various embodiments of the present invention are described in detail below with reference to the accompanying drawings. In the drawings, like reference numerals indicate like or functionally similar elements. Additionally, the left-most one or two digits of a reference numeral identifies the drawing in which the reference numeral first appears.