Method and apparatus for volume rendering with multiple...

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

C345S440000

Reexamination Certificate

active

06310620

ABSTRACT:

FIELD OF THE INVENTION
This invention relates generally to computer graphics, and more particularly, to rendering the interior structures of objects or models.
BACKGROUND OF THE INVENTION
The field of rendering three-dimensional (3D) objects or synthetic models can be partitioned into two main areas: polygon rendering and volume rendering. Polygon rendering is only concerned with the surface topology, whereas volume rendering also deals with the internal structure of objects or models.
Polygon Rendering
In processors and processes designed for polygon rendering, the surfaces of the object or model are described in terms of polygons, e.g., triangles and lines. These fundamental geometric components are used to generate constituent “fragments” representing the outer surface. A fragment is defined as all information (data) required to render (“draw”) a single image pixel that is on the surface, for example, the x and y coordinates of the pixel, the red, green, and blue color values of the pixel, an alpha value representing opacity, depth values, texture coordinates, and the like. Fragments can be blended into a color (or image) buffer before being rendered as pixels.
Volume Rendering
In processors and processes designed for volume rendering, the basic building block is a 3D voxel. Depending on a viewing or projecting orientation (view frustum), voxels can be interpolated to yield volume samples. The interpolated volume samples can be considered to be equivalent to fragments as defined above. Volume rendering produces a base plane, or 2D array of color values, which can be considered equivalent to the image plane. This correspondence makes it easier to integrate polygon rendering with volume rendering and application programming interfaces of commonly used rendering systems.
One natural problem in 3D rendering, polygon or volume, is dealing with how best to represent the third dimension for purposes of comparing positions of objects, determining occlusion, clip, cropping, etc.
Depth in Polygon Rendering
For example, OpenGL, a commonly used graphic rendering tool, stores a single depth (z) value for each pixel located at a planar (x, y) position in the image buffer. There, each fragment is either blended into the image buffer or discarded, depending on a selectable comparison with the corresponding depth of the fragment, and the depth value associated with the corresponding pixel. Normally, the depth comparison operator is less-than, and a depth buffer is initialized with a predetermined background color and depth values. If the depth of the fragment is less than the corresponding depth, then the sample is blended, otherwise the sample is discarded.
In order to accommodate more complex applications, OpenGL allows the selection of any one of eight relational comparisons. For opaque fragments, the comparison operation causes the result to be the same as if the fragments were sorted before being rendered. For example, a less-than comparison selects fragments with smaller depth values and discards those with larger depth values. This is equivalent to sorting the fragments from back (larger depth) to front (smaller depth) with respect to the point of view.
With OpenGL, there is no good way to render translucent, depth-buffered triangles. Opaque triangles can be rendered in any order, and the blending under the control of the depth information provides a well-known method of removing hidden lines and surfaces from the scene. However for translucent triangles, the resulting value of a pixel in the image buffer depends on the order in which the triangles are presented. Therefore, in OpenGL, a common technique for rendering non-opaque geometries (polygons) is to first render opaque triangles, then to sort translucent triangles, and to last render the triangles in a back-to-front order. If two translucent triangles intersect in such a way that each partially occludes the other, then the triangles must first be partitioned into smaller non-occluding triangles before rendering.
In effect, the OpenGL depth buffer defines a dynamic clip surface. The depth buffer separates fragments that are nearer the image plane from those that are farther, making it possible to selectively discard fragments on this basis. Moreover, the depth buffer is dynamically updated during rendering, thereby “moving” the clip surface so that later fragments are handled differently from earlier fragments.
Another known method for rendering translucent polygons does not require the sorting and subdividing of the triangles. Instead, that method uses multiple rendering passes with two depth buffers. The two depth buffers are used to sort the translucent fragments. However, that method cannot be used with OpenGL, because OpenGL only supports a single depth buffer. Other methods sort triangles from front-to-back instead of back-to-front. A front-to-back order is more efficient because this order allows the equivalent of early ray termination, which involves ignoring objects that are occluded by nearer objects. All of these methods basically try to render a set of (initially) unordered triangles as if all of their fragments were rendered back-to-front or front-to-back at each pixel location.
Depth in Volume Rendering
While rendering a volume, it may be better to render front-to-back, rather than back-to-front. Front-to-back allows one to perform early ray termination. However, the difference between the two orders is simply a matter of efficiency: front-to-back order with Under blending should produce the same result as back-to-front order with Over blending. In many cases, the rendering order can be selected on a basis of personal preference. To be consistent with OpenGL, a depth buffer used during volume rendering should affect volume samples the same way that the OpenGL depth buffer affects fragments. The depth of each volume sample should be compared against the corresponding value in the depth buffer, and the color of the sample must then be either blended or discarded, depending on the result of the comparison. The initial values of the color buffer defines a background color or an image of some other object. The initial values must be blended behind the samples that are not discarded.
Complex Volume Rendering
There are many applications where some objects are represented as volumes and other objects are modelled as polygons. It is desired to depict all objects in the same final image. Moreover, these objects may interpenetrate each other. For example, markers, tools, and other objects modelled as polygons may need to be embedded into an object represented as a volume and must be rendered in correct juxtaposition with respect to the volume for any view direction. In an example medical application, a volume object representing a human heart, and another volume object representing the human lungs and bronchia must be rendered onto the same image so that the heart is in correct juxtaposition with respect to the lungs.
Consider the case where an opaque geometry is to be blended during volume rendering. In back-to-front terms, this can be done by first rendering the opaque geometry, then copying the resulting depth image to a depth buffer and base plane. Next, set the depth comparison to less-than, and render the volume from back-to-front. This sequence of operations discards volume samples that are behind the opaque geometry, in other words, volume samples that have depth values greater than or equal to the depth buffer. The Over operation is used to blend samples that are in front, i.e., samples that have depth values that are less than the depth buffer.
The same effect can be achieved with front-to-back volume rendering. Let Z
G
be a depth buffer, and let C
G
be a color buffer separate from the base plane. Proceed as follows: Render the opaque geometry using, for example, OpenGL, and copy the resulting image and depth values to C
G
and Z
G
, respectively. Next, initialize the base plane to RGB&agr;=0. Follow this step by rendering the volume. For each sample, compare the z-coordinate of the sample's position

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 with multiple... 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 with multiple..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for volume rendering with multiple... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2566071

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