Method and apparatus for volume rendering

Computer graphics processing and selective visual display system – Computer graphics processing – Three-dimension

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C345S571000, C345S536000

Reexamination Certificate

active

06304266

ABSTRACT:

FIELD OF THE INVENTION
This invention relates generally to the field of computer graphics. More particularly, this invention relates to volume rendering. Even more particularly, this invention relates to speedily rendering sparsely populated volumes.
BACKGROUND OF THE INVENTION
Volume rendering is an important area of computer graphics. It is employed in a wide variety of disciplines, including medicine, geology, biology and meteorology. Volume rendering allows a user to look inside an object and see features that were otherwise shielded by the rendering of the surface features.
Volumetric data consists of a 3D dataset of elements called “voxels”
102
, as shown in FIG.
1
. Typically, the voxels
102
are uniformly distributed throughout a volume
104
. Each voxel
102
has a position in the volume, as shown in
FIG. 1
, and has associated with it information such as color, illumination, opacity, velocity, amplitude, etc. The information associated with each voxel
102
is produced by such disciplines as medicine (e.g., CAT scans), biology (confocal microscopy), and geoscience (seismic data).
Typically, the values of the voxels
102
are stored in an array
202
, as shown in FIG.
2
. The position of a particular voxel in the volume is inherent in its location in the array. For example, array position
204
might be associated with a point
106
in the volume that is a specified distance from a specified comer of the volume. Typically, a single value is stored in the array
202
for each voxel
102
, although it is also possible to store more than one value for each voxel
102
.
For rendering, the volume
104
is sliced into three sets of slices
302
,
402
and
502
, as shown in
FIGS. 3
,
4
and
5
, along three different axes perpendicular to the respective set of slices. The voxels are partitioned among slices
302
,
402
and
502
. The partitioning is done based on the position of the voxels in array
202
.
The rendering is then accomplished on a slice-by-slice basis, moving from the rear-most slice
304
,
404
and
504
, respectively, to the front-most slice
306
,
406
and
506
, respectively. The set of slices that is chosen to be processed is the set whose axis makes the smallest angle to the viewing direction.
A texture value, or “texel,” is determined for each voxel in each slice (blocks
702
and
704
) as shown in
FIGS. 6 and 7
. The texels are stored in a data buffer
602
(block
706
). Typically, the texel value is an indication of the color to be displayed for that voxel and is found in a look-up table. For example, the texel data may include a value for each of the red, green, and blue (RGB) components associated with the voxel.
When all of the voxels in the slice have been processed (block
704
), the contents of the data buffer are downloaded into a textual memory
604
(block
708
). A display device
802
, shown in
FIG. 8
, determines from information downloaded with the texel data which slice is to be displayed. Based on that information and the perspective requested by the user, the display device maps the texels onto pixels on a display screen
804
(block
710
). As each slice is downloaded and rendered, the user sees the volume in the requested perspective. Each time the user changes the view, for example by using a tool to rotate, translate or magnify the volume, the process of downloading and rendering slices is repeated. The resulting display, illustrated in
FIG. 9
, shows the outside surfaces of the volume.
In some applications, greater flexibility is achieved by using semi-transparent data. Semi-transparent data includes an additional factor, alpha, along with the RGB components discussed above. The alpha value of a voxel determines the opacity of that voxel. Opacity is a measure of the amount a particular texel on a slice will allow a texel on a background slice that maps to the same pixel to show through. This is achieved by mixing the colors of the overlapping texels depending on their opacity. If the opacity of a texel is 0, it is transparent and it has no effect on the color of the displayed pixel. If its opacity is 1, it is opaque and, if it has no other texels mapped in front of it, it determines the color of the displayed pixel. If its opacity is between 0 and 1, the colors of two texels mapped to the same pixel are mixed in conventional ways to determine the color of the pixel that will be displayed.
Semi-transparent volumetric data is present in many applications such as geophysical seismic interpretation, magnetic imaging, and ultrasonography. In those cases, the value of the voxel is not only mapped to a color but also an alpha. The user can effect the mapping with an opacity tool, such as the one illustrated in FIG.
10
. In
FIG. 10
, the user has adjusted the opacity mapping, shown graphically by curve
1002
, to make transparent (alpha=0) all voxels except those having large positive or negative values. This has the effect of making most of the data transparent, as can be seen from the histogram
1004
which reflects the distribution of the values of the voxels in the data illustrated in FIG.
9
.
When the data displayed in
FIG. 9
is processed using the opacity tool shown in
FIG. 10
, the result is the display shown in FIG.
11
. The surface of the volume no longer obscures structures inside the volume.
It is also apparent from the histogram
1004
and
FIG. 11
that most of the opacity-adjusted voxels are transparent and have no effect on the display.
SUMMARY OF THE INVENTION
In general, in one aspect, the invention features volume rendering wherein data comprising a plurality of voxels are recorded. Each voxel comprises an opacity-adjusted value representative of a value of a parameter at a location within the volume adjusted by applying an opacity curve to the value. A computer is used that is adapted to process such data. The invention comprises an article of manufacture comprising a medium that is readable by the computer and that carries instructions for the computer to perform a process. The process comprises partitioning the plurality of voxels among a plurality of slices. Each slice corresponds to a respective region of the volume. For each slice, the process apportions the plurality of voxels associated with that slice among a plurality of cells associated with that slice. Each cell corresponds to a respective sub-region of the region associated with that slice. For each cell, the process determines that the cell is nontransparent if more than a predetermined number of the voxels associated with that cell have an opacity-adjusted value greater than a predetermined value. Otherwise the cell is determined to be transparent. The process stores a texture value for each voxel for only nontransparent cells and renders the stored texture values.
Implementations of the invention may include one or more of the following. The predetermined number may be 0. The predetermined value may be 0. Storing may comprise storing the texture values in a data buffer. The process may further comprise downloading the contents of the data buffer to a textual memory. The process may further comprise setting a transparency flag in a transparency flag array for each nontransparent cell and clearing the transparency flag for transparent cells. Each transparency flag may be one bit. The plurality of voxels may be divided among a plurality of sets of slices. Each set of slices may be associated with a view of the volume. The plurality of sets of slices may comprise 3 sets. The process may further comprise setting a transparency flag in a transparency flag array for each non-transparent cell. The transparency flag array may have one bit associated with each cell. The process may further comprise clearing the transparency flag for transparent cells. Each cell may have a corresponding cell in the other views. The transparency flags for the corresponding cells may be stored in a single byte.
In general, in another aspect, the invention features volume rendering wherein data comprising a plurality of voxels are recorded. Each voxel comp

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for volume rendering does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for volume rendering, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for volume rendering will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2616562

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.