Method, system, and computer program product for bump mapping in tangent space
First Claim
1. A method for shading a computer graphics image, the computer graphics image including an object surface, comprising the steps of:
- building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface;
transforming a shading vector at said point into a tangent space defined by said tangent space transform matrix to form a corresponding tangent space shading vector;
performing a vector operation between said tangent space shading vector and a perturbed normal in tangent space at said point; and
computing a shading value for said point based on said vector operation performed in said performing step;
whereby, said shading value can be mapped to a pixel to shade the object surface.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and computer program product for accelerated shading of an object surface by bump mapping in tangent space. A tangent space transform module builds a tangent space transform matrix M(p) having elements comprised of normal, tangent, and binormal vector components determined at a surface point on the object surface. The tangent space transform module further transforms shading vectors, such as, lighting and viewing vectors, into a tangent space defined by the tangent space transform matrix and outputs corresponding tangent space shading vectors. A bump mapping module performs vector operations between one or more tangent space shading vectors and a perturbed normal N'"'"' in tangent space. A texture memory stores a surface dependent or a surface independent tangent space perturbed normal texture map. The lighting module computes a shading value for the surface point based on the vector operations. The shading value can be then be mapped to a pixel to shade the object surface rendered on a computer graphics display. The bump mapping module outputs diffuse and specular components. The diffuse component corresponds to a first dot product between a normalized, interpolated tangent space lighting vector and three perturbed normal components Nx'"'"', Ny'"'"', and Nz'"'"'. The specular component corresponds to a second dot product between a normalized, interpolated tangent space half angle vector and three perturbed normal components Nx'"'"', Ny'"'"', and Nz'"'"'. Different types of shading vectors and lighting equations can be used depending upon the chosen illumination model.
192 Citations
44 Claims
-
1. A method for shading a computer graphics image, the computer graphics image including an object surface, comprising the steps of:
-
building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; transforming a shading vector at said point into a tangent space defined by said tangent space transform matrix to form a corresponding tangent space shading vector; performing a vector operation between said tangent space shading vector and a perturbed normal in tangent space at said point; and computing a shading value for said point based on said vector operation performed in said performing step;
whereby, said shading value can be mapped to a pixel to shade the object surface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for shading a computer graphics image, the computer graphics image including an object surface, the system comprising:
-
a tangent space transform module; a bump mapping module; and a lighting module; wherein said tangent space transform module builds a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface and transforms a shading vector at said point into a tangent space defined by said tangent space transform matrix to form a corresponding tangent space shading vector, said tangent space shading vector being output to said bump mapping module, and said bump mapping module performs a vector operation between said tangent space shading vector and a perturbed normal in tangent space at said point, and provides an output representative of said vector operation, and said lighting module computes a shading value for said point based on said vector operation output;
whereby, said shading value can be mapped to a pixel to shade the object surface. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A system for shading an object surface, the system comprising:
-
means for building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; means for transforming a shading vector at said point into a tangent space defined by said tangent space transform matrix to form a corresponding tangent space shading vector; means for performing a vector operation between said tangent space shading vector and a perturbed normal in tangent space at said point; and means for computing a shading value for said point based on said vector operation;
whereby, said shading value can be mapped to a pixel to shade the object surface when rendered on a computer graphics display.
-
-
33. A computer program product comprising a computer useable medium having computer program logic recorded thereon for enabling a graphics processor in a computer system to shade an object surface in a computer graphic image, said computer program logic comprising:
-
means for enabling the graphics processor to build a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; means for enabling the graphics processor to transform a shading vector at said point into a tangent space defined by said tangent space transform matrix to form a corresponding tangent space shading vector; means for enabling the graphics processor to perform a vector operation between said tangent space shading vector and a perturbed normal in tangent space at said point; and means for enabling the graphics processor to compute a shading value for said point based on said vector operation;
whereby, said shading value can be mapped to a pixel to shade the object surface rendered on a computer graphics display.
-
-
34. A method for shading a computer graphics image, the computer graphics image including an object surface, comprising the steps of:
-
building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; determining tangent space lighting and viewing vectors at said point in a tangent space defined by said tangent space transform matrix; generating a combination of images including an LzTS image, a height field image, a z component diffuse image, and a shifted image sL, wherein said LzTS image represents an unperturbed normal dotted with said tangent space lighting vector LTS, said height image represents a height field f(u,v) for bump mapping, said z component diffuse image represents a sum of said Lz image and said height image, and said shifted image approximates a partial sum sL equal to -(∂
f/∂
u)*LxTS +-(∂
f/∂
v)*LyTS ;generating a diffuse image based on the difference between said shifted image and said z component diffuse image; and forming a lit image based on at least said diffuse image;
whereby, said lit image can be mapped as texture to the object surface when shading the computer graphics image. - View Dependent Claims (35)
-
-
36. A method for shading a computer graphics image, the computer graphics image including an object surface, comprising the steps of:
-
building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; determining a tangent space half angle vector HTS at said point in a tangent space defined by said tangent space transform matrix; generating a combination of images including an HzTS image, a height field image, a z component specular image, and a shifted image sH, wherein said HzTS image represents an unperturbed normal dotted with said tangent space half angle vector HTS, said height image represents a height field f(u,v) for bump mapping, said z component specular image represents a sum of said HzTS image and said height image, and said shifted image approximates a partial sum sH equal to -(∂
f/∂
u)*HxTS +-(∂
f/∂
v)*HyTS ; andgenerating a specular image based on the difference between said shifted image and said z component specular image; and forming a lit image based on at least said specular image;
whereby, said lit image can be mapped as texture to the object surface when shading the computer graphics image.
-
-
37. A system for shading a computer graphics image, the computer graphics image including an object surface, comprising:
-
means for building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; means for determining tangent space lighting and viewing vectors at said point in a tangent space defined by said tangent space transform matrix; means for generating a combination of images including an LzTS image, a height field image, a z component diffuse image, and a shifted image sL, wherein said LzTS image represents an unperturbed normal dotted with said tangent space lighting vector LTS, said height image represents a height field f(u,v) for bump mapping, said z component diffuse image represents a sum of said Lz image and said height image, and said shifted image approximates a partial sum sL equal to -(∂
f/∂
u)*LxTS +-(∂
f/∂
v)*LyTS ;means for generating a diffuse image based on the difference between said shifted image and said z component diffuse image; and means for forming a lit image based on at least said diffuse image;
whereby, said lit image can be mapped as texture to the object surface when shading the computer graphics image. - View Dependent Claims (38)
-
-
39. A system for shading a computer graphics image, the computer graphics image including an object surface, comprising:
-
means for building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; means for determining a tangent space half angle vector HTS at said point in a tangent space defined by said tangent space transform matrix; means for generating a combination of images including an HzTS image, a height field image, a z component specular image, and a shifted image sH, wherein said HzTS image represents an unperturbed normal dotted with said tangent space half angle vector HTS, said height image represents a height field f(u,v) for bump mapping, said z component specular image represents the sum of said HzTS image and said height image, and said shifted image approximates a partial sum sH equal to -(∂
f/∂
u)*HxTS +-(∂
f/∂
v)*HyTS ;means for generating a specular image based on the difference between said shifted image and said z component specular image; and means for forming a lit image based on at least said specular image;
whereby, said lit image can be mapped as texture to the object surface when shading the computer graphics image.
-
-
40. A method for shading a computer graphics image, the computer graphics image including an object surface, comprising the steps of:
-
building a tangent space transform matrix, said tangent space transform matrix having elements comprised of normal, tangent, and binormal vector components determined at a point on the object surface; determining tangent space lighting and viewing vectors at said point in a tangent space defined by said tangent space transform matrix; generating and mapping to the object surface a combination of images including an LzTS image, a height field image, a z component diffuse image, and a shifted image sL, wherein said LzTS image represents an unperturbed normal dotted with said tangent space lighting vector LTS, said height image represents a height field f(u,v) for bump mapping, said z component diffuse image represents a sum of said Lz image and said height image, and said shifted image approximates a partial sum sL equal to -(∂
f/∂
u)*LxTS +-(∂
f/∂
v)*LyTS ;generating a diffuse image based on the difference between said shifted image and said z component diffuse image; and forming a lit image based on at least said diffuse image. - View Dependent Claims (41)
-
-
42. A system for shading a computer graphics image, comprising:
-
Phong shading hardware; a texture memory for storing a tangent space perturbed normal texture map; and a switch coupled between said Phong shading hardware and said texture memory; whereby, tangent space bump mapping shades the computer graphics image when said switch is in a state connecting said texture memory to said Phone shading hardware. - View Dependent Claims (43, 44)
-
Specification