Shadow rendering system and method

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

Reexamination Certificate

active

06791544

ABSTRACT:

TECHNICAL FIELD
The present invention relates generally to video graphics rendering, and more particularly to the rendering of shadows.
BACKGROUND ART
In video graphics rendering, it is important to produce images that are realistic on a real-time basis. The basic difficulty in achieving total visual realism is the complexity of quickly and accurately representing real world visual effects. A scene can include a variety of textures, color gradiations, reflections, translucency, and, most particularly, shadows. Shadows enhance the realism of an image because they give a two-dimensional (2D) image the appearance of being three-dimensional.
In the past, there have been a number of different ways to determine how objects in a scene would cast shadows and how these shadows should be represented in the rendered image. In three-dimensional (3D) graphic systems, objects in a scene are represented by 3D graphic models, which indicate geometric data used to model the surface, texture, shape, and position of the objects. One of the most common ways of representing a three-dimensional object is by using polygons, or geometric primitives, which are interconnected to form the shape of the object. Various aspects of the polygons, such as color and texture, are stored for future use.
In the graphics rendering process, the primitives are processed to generate a display image. For 3D graphics, the rendering process includes transforming the objects to the coordinate system of the display device, and texture mapping the visual characteristics onto each of the primitives. Objects which are potentially visible in a particular scene are identified by transforming the objects into a common three-dimensional coordinate system and then determining whether the objects overlap in the view volume, a three-dimensional space defining the bounds of a scene. The primitives of potentially visible objects are then transformed to the display device coordinates and rasterized into pixel data. Rastering generally refers to the process of computing a pixel value for a pixel based on data from the primitive that project onto or “cover” the pixel.
As part of the rendering process, hidden surfaces are removed by determining which objects or portions of objects are and are not visible in a scene from the viewer of the device.
One approach to hidden surface removal is the Z-buffer algorithm. In this approach, a Z buffer is used to perform hidden surface removal on pixel data generated as primitives are rasterized. The letter “Z” refers to a depth value and originates from the common practice of expressing distance from the user's viewpoint as being on the Z axis in a three-dimensional coordinate system. A Z buffer is used to store pixel depth closest to the viewpoint for each pixel location in an image. As a primitive is rasterized, pixel data, including a depth value, is generated. The depth of a newly generated pixel is compared with a pixel depth stored in the Z buffer for the same pixel location. If the newly generated pixel is further from the viewpoint than the stored pixel depth, it is rejected. If not, it replaces the pixel depth stored in the Z buffer. This process continues until an entire frame of pixels is generated.
Just as objects can hide other objects from the perspective of the user viewpoint, some objects can hide other objects from the perspective of a light source. For example, objects closer to a light source can cast a shadow on other objects in the scene. The term “shadowing” refers to the process of determining which objects are behind the objects which are closer to the light source and representing the shadows in a rendered image.
In one approach, the Z buffer is used to compute shadows in two rendering passes. In the first pass, the primitives are rendered from the point of view of the light source to produce a shadow depth map, and a Z buffer is used to compute a Z value for each element in the shadow depth map representing the object closest to the light source of each element. In the second pass, each time a pixel is generated, it is transferred back into light source coordinates and compared against the value retrieved from the shadow depth map. If the Z value of the pixel in the light coordinate is less than the Z value from the shadow depth map, then the point is illuminated. Otherwise, it is in shadow.
This shadow algorithm can cause self-shadowing artifacts because only a single Z value is stored for each element in the shadow depth map. For example, if a Z value in the shadow depth map represents the distance of a single point on a curved object, the shadow depth map would improperly represent the curve surface because it would assume that the region around the single point has a constant Z value. In actuality, due to the numerical accuracy of computations, the pixels around the single point will have slightly higher or lower Z values. Thus, when the pixels are transformed into light space coordinates and compared with the single depth value to the shadow depth map, they will be erroneously determined to be shadowed.
Another problem which arises in Z-buffer techniques is caused by “aliasing” in the shadow depth map. Aliasing in the shadow depth map causes the shadows of the objects be irregular due to pixelation of the shadow map and not correspond to the shape of the object. For example in an extreme situation, a sphere which is close to a light source may have its shadow shown coursely as a jagged cross.
Most previous approaches use multiple passes to produce the 3D objects, with the first pass pre-processing and storing the shadow information, and later passes rendering the objects in the scene with appropriate shadow information. The multiple passes introduce a great deal of overhead and time delay, or latency, in the graphic pipeline.
With the importance of speed in order to obtain fast, real-time 3D graphics, a better system for shadow rendering compatible with previous self-shadowing avoidance and antialiasing techniques has been long sought but has eluded those skilled in the art.
DISCLOSURE OF THE INVENTION
The present invention provides a system and method in which three-dimensional (3D) objects are processed only once and the rendering and shadow generation information is stored in memory. In a two-dimensional (2D) pass, the shadow information is used to modulate the color value at each rendered pixel. Thus, the latency and needed storage capacity due to the multiple 3D pass processing is eliminated.
The present invention further provides for calculating shadow information using a depth-based shadow algorithm during 3D processing. The shadow information includes the depth of a 3D point viewed from the light source at each pixel on the screen. This depth value is used to update the depth value stored at its corresponding location in a shadow buffer. An indicator table is also built up to establish the correspondence between the location of the shaded pixel in the frame buffer and the location in the shadow buffer. Subsequently, the 2D process uses the indicator table to access the depth value stored at the corresponding location in the shadow buffer and compares its value with the depth value stored at the pixel. The pixel is in the shadow if the depth stored at the pixel is greater than that at the corresponding location in the shadow buffer. The shaded color at the pixel will then be modulated accordingly.
This greatly reduces the overall processing time by eliminating processing steps.
The above and additional advantages of the present invention will become apparent to those skilled in the art from a reading of the following detailed description when taken in conjunction with the accompanying drawings.


REFERENCES:
patent: 5568595 (1996-10-01), Yosefi et al.
patent: 5742749 (1998-04-01), Foran et al.
patent: 5825365 (1998-10-01), Hirota et al.
patent: 6018350 (2000-01-01), Lee et al.
patent: 6226000 (2001-05-01), Richens et al.
patent: 6356272 (2002-03-01), Matsumoto et al.
patent: 6373496 (2002-04-01), Iourcha
patent: 6437782 (2002-08-01), Pieragostini et al.
pat

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

Shadow rendering system and method does not yet have a rating. At this time, there are no reviews or comments for this patent.

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

Rate now

     

Profile ID: LFUS-PAI-O-3245242

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