The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Mar. 09, 1999
Filed:
Jun. 20, 1997
Mark Stuart Peercy, Sunnyvale, CA (US);
John Milligan Airey, Mountain View, CA (US);
Brian Keith Cabral, San Jose, CA (US);
Silicon Graphics, Inc., Mountain View, CA (US);
Abstract
A method, system, and computer program product are provided for accelerated shading of an object surface by bump mapping in tangent space or object 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. In one example, 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. For bump mapping in object space, an object space transformation, such as the inverse of a modelview matrix, is used to define a transformation from eye space to object space for shading vectors. A bump mapping module performs a vector operation between an object space shading vector and a perturbed normal in object space to compute a shading value.