Patent ID: 7034827

Claim:
A method for implementing bump mapping, comprising: generating a table of color values for a geometry of a polygon in view of a light source and a viewing direction of the polygon, the table of color values to be referenced by orientation-dependent color variables; determining vertex angle coordinates for a plurality of vertex vectors of the polygons, including a normal vector (N), a light source vector (L), and a halfway vector between the light source vector (H) and a viewing direction of the polygon (V); interpolating the vertex angle coordinates with vertex values of the vertices of the polygon to provide angle coordinates for each pixel in the polygon, the angle coordinates representing a direction of the vertex vector at the pixel; modifying the angle coordinates using a perturbation source to generate perturbed angle coordinates; converting the perturbed angle coordinates to one or more color variables; and assigning the pixel a color value from the table of color values referenced by the one or more color variables, wherein table of color variables includes a first color variable (u c ) and a second color variable (v c ), wherein the first and second color variables are defined as: u c = { .5 - α / π ⁢ ⁢ if ⁢ ⁢ ( N · L 2 ) ≥ 0 .5 + α / π ⁢ ⁢ if ⁢ ⁢ ( N · L 2 ) < 0 } ⁢ ⁢ and ⁢ ⁢ v c = { β / π ⁢ ⁢ if ⁢ ⁢ ( N · L ) ≥ 0 1 - β / π ⁢ ⁢ if ⁢ ⁢ ( N · L ) < 0 } , where L 2 is a basis vector of a Cartesian coordinate system for L, wherein a represents an angle between N and a projection of N (S 1 ) onto a plane represented by L and L 2 , and wherein β represents an angle between S 1 and another basis vector of the Cartesian coordinate system (L 1 ).