System and method for creating a vector map in a hardware...

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

C345S582000, C345S583000, C345S585000, C345S586000, C345S587000, C345S420000, C345S426000

Reexamination Certificate

active

06765584

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates to computer graphics, and more particularly, to creating vector maps in a computer graphics processing pipeline.
BACKGROUND OF THE INVENTION
In a computer graphics pipeline, three-dimensional objects are typically rendered by assembling a plurality of polygons in a desired shape. The polygons are conventionally triangles
100
(See Prior Art
FIG. 1
) composed of vertices which are defined by spatial coordinates, color values, and texture coordinates among other values. As this polygonal representation consists of a collection of flat facets of fixed size, a texture map
102
(See Prior Art
FIG. 1
) is often applied to the facets in order to provide greater detail. This texture map describes a pattern to be applied to the surface of each triangle to vary the color or other properties. The texture map itself is a matrix of values typically interpreted as color components, and the placement of values in the matrix describes a pattern which, when applied to the triangles, may vary the colors in accordance with the pattern. The texture map elements are accessed by a texture coordinate, and the values stored at each integral texture coordinate constitute one texel (texture element) within the texture map. The texture map is typically loaded as a file from disk or created and filled with values by the computer system central processor.
Texture maps may also be interpreted and used as vector maps, whereby the texture map values do not represent the colors of a pattern, but instead represent multi-dimensional vectors within a pattern. For example, rather than storing the surface color at each texel of a texture map, one could provide a texture map which holds a surface normal vector at each texel. This map then represents a geometric surface at a level of detail independent of the polygonal vertex geometry. A texture map of this type, referred to as a normal map
104
(See Prior Art FIG.
1
), may then be used in lighting and shading calculations in the graphics pipeline, and the normal map provides a more efficient representation of surface detail than the polygonal vertex geometry.
In general, normal maps
104
(See Prior Art
FIG. 1
) are one formulation of vector maps. Other typical vector map formulations include displacement maps for environment-mapped bump mapping (EMBM), displacement maps for other texture perturbation techniques, and height maps
103
(See Prior Art FIG.
1
). Displacement maps hold a vector used to perturb texture coordinates during rasterization, and height maps consist of a one-dimensional vector which represents the geometric height of a surface at each texel. The one possible differentiating feature of a vector map is that its values are not necessarily intended to be directly visible in pixels of the rendered scene. Rather than containing colors which are blended into pixels of the scene, vector maps contain values that are input to various graphics pipeline calculations. These calculations use the values to control aspects of rendering such as texture coordinate values, texture reads, surface lighting, and bump mapping. An example of this may be found with reference to: Moller, Tomas, and Haines, Eric,
Real
-
Time Rendering,
A K Peters, Ltd., 1999, p 136; which is incorporated herein by reference.
FIG. 1
thus illustrates typical data used in computer graphics rendering. Geometry (i.e. triangles
100
) may be combined with a plurality of color textures of a texture map
102
and vector maps to produce a rendered image. Color textures represent the physical appearance of the object as seen by the human eye, while vector maps do not necessarily have perceptual counterparts in the physical world. Instead, vector maps contain mathematical or geometric information about the surface. Such information may include the height of the surface of the object at each texel as in a height map
103
and the normal vector to the surface at each texel as in a normal map
104
, displayed here through the use of a color map to make the data perceptible.
Vector maps are utilized in a graphics hardware pipeline as input data to a variety of rendering calculations. One such operation may be that of per-pixel lighting as illustrated in Prior Art
FIG. 2
, whereby illumination values
204
are computed at each pixel of the rendered object
205
. This calculation involves, for each pixel rendered, a dot-product
201
between incident light vectors
200
and the surface normal vectors
202
. The vector map, in this case a surface vector normal map, is useful only in the context of the rendering calculation. The vector map values do not necessarily appear in the output, though they determine, via calculation, the appearance of the output.
Vector map values may be stored in a variety of numerical formats including, among other formats, unsigned integers, signed integers stored in a biased and scaled range, signed integers stored in twos-complement format, integers of various bit precision including 8, 16, and 32 bits, and floating point formats.
Vector map values are typically, but not necessarily, derived from geometric values. A vector map may be calculated from the gradient of a scalar map, as in the case of calculating a surface normal map from a height field, or it may be calculated as a collection of difference vectors between two or more collections of vectors. As vector maps may thus encode geometric features of a surface or affect rendering in ways more sophisticated than those of the standard diffuse texture mapping, it is desirable to animate their values when used in rendering. In this way, animation of the vector map data is analogous to animation of the values, such as surface height, from which the vector map is derived. Unfortunately, animation of the vector map in a meaningful fashion without the underlying data from which it is derived is not practical and in some cases is not possible. To animate the vector map, the practical solution is to animate the data from which it is derived and recalculate the vector map from the data.
Such calculations to create a vector map are involved, and in the prior art were performed by a software program executing on the computer system central processor. Prior Art
FIG. 3
illustrates a prior solution to the problem of creating a vector map
306
from a height map
302
. To create a normal map texel value
304
corresponding to each height map texel
300
, an area of neighbors t
0
, t
1
, t
2
, and t
3
surrounding the height map texel
300
are sampled and their values differenced. The differences produce two slope vectors dZ/dU and dZ/dV, the cross product of which is the three-dimensional surface normal vector. This vector may be stored as one texel of a texture map and the texture map transferred to the graphics pipeline. This method of creating the vector map may be performed on the CPU according to the prior art method of FIG.
3
A.
Under this scheme as shown in
FIG. 3A
, the resulting vector map
306
must be transferred via a bus to the hardware graphics pipeline
312
for use in hardware-accelerated rendering. The high CPU cost of the calculations and bandwidth required to transfer the vector map to the graphics hardware severely restrict the use of this prior method with animated vector maps. Also, under the prior method, both the CPU and hardware graphics pipeline are prone to fall into an idle state at various times while waiting for the other to complete its operations. These idle states reduce the performance of the overall system. Under the prior method, the vector map and source data from which it is derived cannot be updated rapidly or efficiently for use in hardware accelerated rendering.
What is needed is a system in which vector map data may be calculated as needed in the graphics pipeline itself, independent of the CPU and without having to travel across the system bus from the CPU to the graphics pipeline. Vector map data generated in this way is available for immediate use in the hardware graphics pipeline. Such a system eliminates an interdependen

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

System and method for creating a vector map in a hardware... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for creating a vector map in a hardware..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for creating a vector map in a hardware... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3195339

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