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:
May. 07, 2002
Filed:
Aug. 20, 1999
David L. Morgan, Mountain View, CA (US);
Mark S. Peercy, Sunnyvale, CA (US);
Microsoft Corporation, Redmond, WA (US);
Abstract
A method, system, and computer program product are provided for multi-pass bump-mapping into an environment map. At least two passes are made through a hardware rasterizer to bump map into an environment map. In the first pass, a lighting equation is overloaded. The overloaded lighting equation represents a reflection vector of a perturbed normal at a pixel position. The reflection vector at a pixel position is then generated according to the overloaded lighting equation. In a second pass, at least one texel in an environment map is accessed based on the generated reflection vector. For example, the generated reflection vector can be used as a look-up into the environment map to access one or more texel samples. In one example implementation, a lighting equation includes a specular material vector Sm, a lighting vector L, and an ambient material vector Am. Such a lighting equation is overloaded by setting the specular material vector Sm to equal a perturbed normal vector N′, setting the lighting vector L to equal a viewing vector V at the pixel position, and setting an ambient material vector Am to equal the viewing vector V. Other terms in the lighting equation include a specular exponent n two vectors scli and acli. To overload the lighting equation, the specular component n is set to equal one, the vector scli is set to equal to {2,2,2}; and the vector acli is set to equal to {−1,−1,−1}. A single hardware rasterizer can be used. A separate reflection vector calculation is avoided. One hardware rasterizer can be used to perform processing in each pass. Two separate texture fetch units to support a reflection vector calculation are not necessarily needed.