Applying multiple texture maps to objects in...

Computer graphics processing and selective visual display system – Computer graphics processing – Attributes

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C345S583000, C345S584000, C345S545000, C345S552000

Reexamination Certificate

active

06741259

ABSTRACT:

BACKGROUND OF THE INVENTION
1. The Field of the Invention
The present invention relates to systems and methods for providing multi-pass rendering of three-dimensional graphics. More specifically, the present invention is directed to systems and methods for utilizing one or more texture units and a plurality of associated frame buffers in a rendering pipeline to perform multiple rendering passes, to support the use and storage of extra temporary data, and to blend data from multiple texture maps that is applied to a polygon so as to model a three-dimensional object.
2. Relevant Technology
Adding realism to computer graphics involves rendering an object that has three-dimensional characteristics on a two-dimensional display device. Such three-dimensional characteristics include shadows and variations in color and shade of the object. For each desired three-dimensional characteristic, a specific texture map is applied to a frame of polygons in order to render the object. When multiple characteristics are desired, the corresponding texture maps are blended. Therefore, the blending and applying of various corresponding texture maps renders the object as having the desired three-dimensional characteristics, such as any desired color, pattern, appearance, etc.
A conventional technique for applying multiple texture maps to render a three-dimensional image includes utilizing a single texture unit and a single frame buffer. As multiple passes are performed, the frame buffer is used as the temporary data storage between passes. While such a technique adequately applies light or shadow maps on opaque objects, the conventional technique cannot be adequately utilized for transparent objects since temporary data and current destination pixel data cannot co-exist under the conventional technique.
Another technique for applying multiple texture maps to render a three-dimensional image uses a rendering pipeline that includes a texture unit for every texture map that is applied. The texture units are placed in series within the rendering pipeline, which assembles one or more polygons to represent an object having three-dimensional characteristics and applies multiple texture maps to the assembled polygon. Many effects are only renderable if one or more temporary pieces of data are allowed to exist between texture units of a pipeline. Thus, under this conventional technique, an additional piece of temporary data is passed between the texture units of the rendering pipeline and is fully consumed by the end of the pipeline.
By way of example,
FIG. 1
illustrates a conventional rendering pipeline that includes vertex unit
10
, setup unit
11
, edge walk unit
12
, span walk unit
13
, z-buffer
14
, texture units
15
, destination blender
18
, and frame buffer
19
. In the rendering pipeline, vertex unit
10
assembles data describing the values at each vertex of a polygon. The data includes three-dimensional coordinates, which represent each of the polygons that together model a three-dimensional object, and texture coordinates, the values for which are determined later in the pipeline through a series of texture units. Vertex unit
10
provides the assembled data to setup unit
11
, which generates parametric function coefficients for an interpolation of intermediary points between the three-dimensional coordinates. Edge walk unit
12
receives the output of setup unit
11
and determines the starting pixel and the value of the starting pixel for each horizontal row of pixels lying within the bounds of the polygon. Span walk unit
13
then determines the values for all of the pixels for each horizontal row within the polygon. The values determined by edge walk unit
12
and span walk unit
13
are provided to z-buffer
14
, which determines whether the pixels are occluded or visible, so that only currently visible pixels are drawn.
A set of texture coordinates representing the various layers of textures that are to be applied to the generated polygons are passed through a series of texture units
15
. The number of texture units in series corresponds to the number of texture layers that are to be applied. In the example of
FIG. 1
, five texture layers are applied to the generated polygons. Other conventional rendering pipelines may include any number of texture units in series to apply the corresponding number of texture maps.
In
FIG. 1
, each texture unit
15
receives a series of texture coordinate sets for each pixel, performs a texture map look up to obtain the values of the coordinate sets related to a texture map, and performs a blending operation that may include blending the obtained values with values from one or more previous texture maps. Temporary data is passed between the texture units
15
and is fully consumed by the end of the rendering pipeline.
Therefore, with reference to the series of texture units
15
of
FIG. 1
, texture unit
15
a
receives a series of texture coordinate sets from z-buffer
14
for each pixel. An example of a series of texture coordinate sets for a given pixel is (u
0
, v
0
), (u
1
, v
1
), (u
2
, v
2
), (u
3
, v
3
), and (u
4
, v
4
), where (u
0
, v
0
) is the texture coordinate set for the first texture map, (u
1
, v
1
) is the texture coordinate set for the second texture map, (u
2
, v
2
) is the texture coordinate set for the third texture map, (u
3
, v
3
) is the texture coordinate set for the fourth texture map, and (u
4
, v
4
) is the texture coordinate set for the fifth texture map. Because the texture units are in series, the fill complement of texture coordinate sets, which, in this example include (u
0
, v
0
), (u
1
, v
1
), (u
2
, v
2
), (u
3
, v
3
), and (u
4
, v
4
), are transmitted from z-buffer to texture unit
15
a
. In this manner, each of the texture units
15
a
-
15
e
can select the texture coordinate set it needs to perform a texture map look up operation.
The following example illustrates the conventional technique that is currently performed for each pixel. Texture unit
15
a
takes the texture coordinate set (u
0
, v
0
) corresponding to the first texture map and performs a look up at texture cache
16
a
to obtain the texture values for the pixel. Texture blender
17
a
performs a blending operation to apply the texture values to the pixel corresponding to the first texture map.
Texture unit
15
b
receives the series of texture coordinate sets for the pixel from texture unit
15
a
. The texture coordinate set (u
1
, v
1
), which corresponds to the second texture map, is selected by texture unit
15
b
and a look up is performed at texture cache
16
b
to obtain the texture values for the pixel. Texture blender
17
b
then performs a blending operation, which includes blending the texture values corresponding to texture coordinates (u
0
, v
0
) and (u
1
, v
1
), to apply the texture values to the pixel corresponding to the first and second texture maps.
Texture unit
15
c
receives from texture unit
15
b
the series of texture coordinate sets for the pixel. The texture coordinate set (u
2
, v
2
), which corresponds to the third texture map, is selected by texture unit
15
c
and a look up is performed at texture cache
16
c
to obtain the texture values for the pixel. Texture blender
17
c
performs a blending operation, which includes blending the texture values corresponding to texture coordinates (u
0
, v
0
), (u
1
, v
1
) and (u
2
, v
2
), to apply the texture values to the pixel corresponding to the first, second and third texture maps.
Texture unit
15
d
receives the series of texture coordinate sets for the pixel from texture unit
15
c
. The texture coordinate set (u
3
, v
3
), which corresponds to the fourth texture map, is selected by texture unit
15
d
and a look up is performed at texture cache
16
d
to obtain the texture values for the pixel. Texture blender
17
d
performs a blending operation, which includes blending the texture values corresponding to texture coordinates (u
0
, v
0
), (u
1
, v
1
), (u
2
, v
2
) and (u
3
, v
3
), to apply the texture values to the pixel corresponding to the first, second,

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

Applying multiple texture maps to objects in... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Applying multiple texture maps to objects in..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Applying multiple texture maps to objects in... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3246476

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