Method and apparatus for environment-mapped bump-mapping in a graphics system
First Claim
1. In a graphics system including a processing pipeline that renders and displays images at least in part in response to polygon vertex data and texture image data stored in memory, an arrangement for implementing environment-mapped bump mapping in a single rendering pass, comprising:
- texture memory for storing image data and bump mapping data;
texture retrieval circuitry for accessing and retrieving data stored in texture memory; and
texture coordinate/bump processing circuitry coupled to the texture retrieval circuitry and configured to receive data retrieved from texture memory for generating a set of modified texture coordinates, said texture coordinate/bump processing circuitry including multiplication circuitry for performing at least scaling of texture coordinates and a storage buffer for saving a set of modified texture coordinates for reuse by the texture retrieval circuitry in accessing texels of at least an environment map image and/or one or more corresponding texture image data maps stored in texture memory multiple texture image data maps in the texture memory;
wherein the texture retrieval circuitry is responsive to a set of indirect texture coordinates to provide said texture coordinate/bump processing circuitry with data retrieved from the texture memory for use in generating said set of modified texture coordinates.
0 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and example methods for environment-mapped style of bump-mapping (EMBM) are provided that use a pre-computed bump-map texture accessed as an indirect texture along with pre-computed object surface normals (i.e., the Normal, Tangent and Binormal vectors) from each vertex of rendered polygons to effectively generate a new perturbed Normal vector per vertex. The perturbed new Normal vectors are then used to look up texels in an environment map. A specialized bump map texture data/coordinate processing “bump unit” is provided in the graphics pipeline for performing predetermined matrix multiplication operations on retrieved lookup data from the indirect-texture bump map.
-
Citations
18 Claims
-
1. In a graphics system including a processing pipeline that renders and displays images at least in part in response to polygon vertex data and texture image data stored in memory, an arrangement for implementing environment-mapped bump mapping in a single rendering pass, comprising:
-
texture memory for storing image data and bump mapping data; texture retrieval circuitry for accessing and retrieving data stored in texture memory; and texture coordinate/bump processing circuitry coupled to the texture retrieval circuitry and configured to receive data retrieved from texture memory for generating a set of modified texture coordinates, said texture coordinate/bump processing circuitry including multiplication circuitry for performing at least scaling of texture coordinates and a storage buffer for saving a set of modified texture coordinates for reuse by the texture retrieval circuitry in accessing texels of at least an environment map image and/or one or more corresponding texture image data maps stored in texture memory multiple texture image data maps in the texture memory; wherein the texture retrieval circuitry is responsive to a set of indirect texture coordinates to provide said texture coordinate/bump processing circuitry with data retrieved from the texture memory for use in generating said set of modified texture coordinates. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a graphics system that renders and displays images at least in part in response to polygon vertex data and texture data stored in memory, said system capable of direct and indirect texture coordinate processing, a method [dXdYdZ] of environment-mapped bump mapping based on a bump map function modeled with respect to a 3D surface, comprising the steps of:
-
precomputing forward difference values of a surface bump function F(u, v) modeled with respect to a particular 3D surface and storing said values as a texture map in memory; supplying, for each of the plural vertices, model-space data representing a surface Normal vector, converting said Normal vectors to eye-space; generating texture coordinate values using only x and y eye-space vector components of said Normal vectors; interpolating said texture coordinate values across a polygon of an object being rendered; using said interpolated texture coordinates in an indirect mode of texture coordinate processing for looking up, in said texture map, a set of precomputed forward difference values of a surface bump function F(u, v) modeled with respect to a 3D surface; computing a set of perturbed texture coordinates based on said interpolated texture coordinates and said set of precomputed forward difference values; using said set of perturbed texture coordinates for performing a lookup in memory to a texel in an environment texture map; and using said texel to determine a pixel color. - View Dependent Claims (7)
-
-
8. In a graphics system that renders and displays images at least in part in response to polygon vertex data and texture data stored in memory, said system capable of direct and indirect modes of texture coordinate processing wherein, in an indirect texture coordinate processing mode, stored texture data is retrieved and used for further texture coordinate processing, a dSdT method of environment-mapped bump mapping based on a bump map function modeled with respect to a flat surface, comprising the steps of:
-
supplying, for each of the plural vertices, model-space data representing a surface Normal vector, a Tangent vector and Binormal vector; converting said Normal, Tangent vector and Binormal vectors to eye-space; generating texture coordinate values using only x and y eye-space vector components of said Normal, Tangent vector and Binormal vectors; interpolating said texture coordinate values across a polygon comprising a surface of an object being rendered for a pixel; using interpolated texture coordinates of said Normal vector, in an indirect mode of texture coordinate processing, for looking up a set of precomputed forward difference values, Fu and Fv, of a surface bump function F(u, v) modeled in two dimensions with respect to a flat surface, wherein said precomputed forward difference values are stored as a texel in a texture data map stored in memory; computing a set of perturbed texture coordinates based on said interpolated texture coordinates and said set of precomputed forward difference values; using said set of perturbed texture coordinates for performing multiple lookups to a texel in a plurality of different color and/or image data maps stored as texture data in memory, wherein at least one data maps is a light map and at least one of said maps is an environment texture map; and blending texel color data from each of said multiple lookups to determine a pixel color. - View Dependent Claims (9)
-
-
10. In a graphics system including a graphics processor that generates image information for display at least in part in response to stored texture images, said graphics processor including texture processing components coupled to a texture memory, said texture processing components performing texture mapping in response to applied texture coordinates, a method of performing environment-mapped bump mapping comprising:
-
storing environment image mapping data in said texture memory; storing bump mapping data in said texture memory; generating indirect texture coordinates; using said indirect texture coordinates to retrieve said bump mapping data stored in texture memory; generating computed texture coordinates based at least in part on retrieved bump mapping data; and using said computed texture coordinates to retrieve pixel color data from said environment image mapping data stored in said texture memory; and outputting retrieved pixel color data for use in rendering a graphics object having an environment-mapped bump-mapped texture. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. In a graphics system, in a graphics pipeline, texture processing components coupled to a texture memory, said texture processing components performing texture mapping and environment-mapped bump mapping in response to applied texture coordinates, comprising:
-
texture coordinate processing circuitry for identifying indirect texture coordinates and receiving bump function difference data retrieved from a texture map stored in texture memory; matrix multiplication circuitry for performing eye-space coordinate transformations on texture coordinate data; and buffer circuitry for saving computed texture coordinates.
-
Specification