IP Library Granted Patent US 7,071,937
Granted Patent B1
US 7,071,937 · App. 09/584,025 · Granted Jul 4, 2006

Dirt map method and apparatus for graphic display system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,071,937
App. No.
09/584,025
Granted
Jul 4, 2006
Kind
B1
Abstract

A method and system for map based per-pixel specularity modulation of a surface in a real time 3D graphics renderer through the use of interpolated specularity function or environmental map values. One or more functional modules calculate a pair of specular light intensity values or color values. Each specularity value is representative of the specular light reflected by the given pixel at an extreme surface reflectance characteristic, i.e. one may represent reflection from a very smooth surface while the other represents reflection from a very rough surface. A specularity modulation, or dirt map, value is arrived at by either a procedural calculation based on surface offset coordinates or by retrieval from a two-dimensional map contained in a texture memory. The specularity modulation value is then used as a weight to interpolate the pair of specularity values. The resulting interpolated specularity value is then optionally scaled by the modulation value (or a derivative thereof) to produce a final specularity value. This final specularity intensity or color value is then passed to a lighting unit that modulates pixel color appropriately to include the given specular light.

Claims (137)

1. A method of creating a computer generated image having at least one polygon surface represented by a plurality of pixels comprising:

providing at least a pair of specular light intensity functions, wherein each specular light intensity function is representative of the specular light reflected by a respective pixel at a different surface reflectance characteristic;

determining a specularity modulation value for a respective pixel by retrieving the specularity modulation value from a map in a memory;

interpolating the specular light intensity functions using the specularity modulation value to obtain a composite specularity value; and

using said composite specularity value to modulate pixel color of the polygon surface of the computer generated image.

2. The method of claim 1 wherein the step of providing at least a pair of specular light intensity functions comprises providing a maximum specular light intensity function and a minimum specular light intensity function.

3. The method of claim 1 further comprising the step of scaling said interpolated specularity value.

4. The method of claim 3 wherein the step of scaling said interpolated specularity value comprises scaling by the modulation value.

5. The method of claim 3 wherein the step of scaling said interpolated specularity value comprises scaling by a derivative of the modulation value.

6. The method of claim 3 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function and a minimum reflectivity function.

7. The method of claim 3 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function, a minimum reflectivity function and at least one intermediate reflectivity function.

8. The method of claim 1 wherein the step of determining the specularity modulation value comprises using at least one procedural calculation function.

9. The method of claim 8 wherein each pixel to be mapped in the display is assigned a pair of surface coordinates and wherein the step of using a procedural calculation comprises using the surface coordinates as inputs to the at least one procedural calculation functions.

10. The method of claim 9 further comprising using the surface coordinates as inputs to a function that generates texture map values for each respective pixel.

11. The method of claim 9 further comprising using the surface coordinates as inputs to a function that generates bump map values for each respective pixel.

12. The method of claim 8 the step of using a procedural calculation comprises using at least one surface value for a respective pixel as an input to the at least one procedural calculation functions.

13. The method of claim 8 the step of using a procedural calculation comprises using at least one light source value for a respective pixel as an input to the at least one procedural calculation functions.

14. The method of claim 1 wherein the step of determining the specularity modulation value comprises a procedural calculation based on surface offset coordinates.

15. The method of claim 1 wherein the step of determining the specularity modulation value comprises retrieving the specularity modulation from a two-dimensional texture map in the memory.

16. The method of claim 1 wherein the step of providing at least a pair of specular light intensity functions comprises specifying a specular exponent value for at least one of the functions.

17. The method of claim 1 wherein the step of determining the specularity modulation value comprises:

using at least one procedural calculation to determine a first specular light intensity function; and

obtaining a value of another specular light intensity function from a lookup table.

18. The method of claim 1 wherein the step of determining the specularity modulation value comprises:

using at least one procedural calculation to determine a first specular light intensity function; and

deriving the value of another specular light intensity function from the first specular light intensity function.

19. A method of creating a computer generated image having at least one polygon surface represented by a plurality of pixels, the method comprising:

generating a polygon surface represented by a plurality of vectors for each pixel in said plurality of pixels, the vectors including a light source vector, a surface normal vector and a view vector;

providing at least a pair of specular light intensity functions, wherein each specular light intensity function is representative of the specular light reflected by a respective pixel at different surface reflectance characteristic;

determining a specularity modulation value for a respective pixel by retrieving the specularity modulation value from a map in a memory;

interpolating the specular light intensity functions using the specularity modulation value to obtain a composite specularity value; and

using said composite specularity value to modulate pixel color of the polygon surface of the computer generated image.

20. The method of claim 19 wherein the polygon comprises a plurality of vertices and further comprising:

assigning a unique modulation value at each of the polygon's vertices;

rasterizing the polygon surface; and

interpolating the modulation values at the vertices throughout the rasterized polygon surface to provide a modulation value for each pixel.

21. The method of claim 19 wherein the step of interpolating comprises:

interpolating two-dimensional vectors across the polygon surface;

using the interpolated vector to address a color map for each pixel; and

retrieving a color from the map and using the color as the specular light color for the respective pixel.

22. The method of claim 19 wherein the step of interpolating comprises:

interpolating three-dimensional vectors across the polygon surface;

at each pixel, dividing the interpolated three-dimensional vector by its largest component;

using the divided values of the other two components to address a two-dimensional color map for each pixel; and

retrieving a color from the map and using the color as the specular light color for the respective pixel.

23. The method of claim 19 wherein the step of providing at least a pair of specular light intensity functions comprises providing a maximum specular light intensity function and a minimum specular light intensity function.

24. The method of claim 19 further comprising the step of scaling said interpolated specularity value.

25. The method of claim 24 herein the step of scaling said interpolated specularity value comprises scaling by the modulation value.

26. The method of claim 24 wherein the step of scaling said interpolated specularity value comprises scaling by a derivative of the modulation value.

27. The method of claim 24 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function and a minimum reflectivity function.

28. The method of claim 24 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function, a minimum reflectivity function and at least one intermediate reflectivity function.

29. The method of claim 19 wherein the step of determining the specularity modulation value comprises using at least one procedural calculation function.

30. The method of claim 29 wherein each pixel to be mapped in the display is assigned a pair of surface coordinates and wherein the step of using a procedural calculation comprises using the surface coordinates as inputs to the at least one procedural calculation functions.

31. The method of claim 30 further comprising using the surface coordinates as inputs to a function that generates texture map values for each respective pixel.

32. The method of claim 30 further comprising using the surface coordinates as inputs to a function that generates bump map values for each respective pixel.

33. The method of claim 29 the step of using a procedural calculation comprises using at least one surface value for a respective pixel as an input to the at least one procedural calculation functions.

34. The method of claim 29 the step of using a procedural calculation comprises using at least one light source value for a respective pixel as an input to the at least one procedural calculation functions.

35. The method of claim 19 wherein the step of determining the specularity modulation value comprises a procedural calculation based on surface offset coordinates.

36. The method of claim 19 wherein the step of determining the specularity modulation value comprises retrieving the specularity modulation coordinate from a two-dimensional texture map in the memory.

37. The method of claim 19 wherein the step of providing at least a pair of specular light intensity functions comprises specifying a specular exponent value for at least one of the functions.

38. The method of claim 19 wherein the step of determining the specularity modulation value comprises:

using at least one procedural calculation to determine a first specular light intensity function; and

obtaining a value of another specular light intensity function from a lookup table.

39. The method of claim 19 wherein the step of determining the specularity modulation value comprises:

using at least one procedural calculation to determine a first specular light intensity function; and

deriving the value of another specular light intensity function from the first specular light intensity function.

40. A method of creating a computer generated image having at least one polygon surface represented by a plurality of pixels comprising:

providing at least a pair of color intensity functions, wherein each color intensity function is representative of the color reflected by a respective pixel at a different surface reflectance characteristic;

determining a color modulation value for a respective pixel by retrieving the color modulation value from a memory;

interpolating the color intensity functions using the color modulation value to obtain a composite color value; and

using said composite color value to modulate pixel color of the polygon surface of the computer generated image.

41. The method of claim 40 wherein the step of providing at least a pair of color intensity functions comprises providing a maximum color intensity function and a minimum color intensity function.

42. The method of claim 40 further comprising the step of scaling said interpolated color value.

43. The method of claim 42 wherein the step of scaling said interpolated color value comprises scaling by the modulation value.

44. The method of claim 42 wherein the step of scaling said interpolated color value comprises scaling by a derivative of the modulation value.

45. The method of claim 42 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function and a minimum reflectivity function.

46. The method of claim 42 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function, a minimum reflectivity function and at least one intermediate reflectivity function.

47. The method of claim 40 wherein the step of determining the color modulation value comprises using at least one procedural calculation function.

48. The method of claim 47 wherein each pixel to be mapped in the display is assigned a pair of surface coordinates and wherein the step of using a procedural calculation comprises using the surface coordinates as inputs to the at least one procedural calculation functions.

49. The method of claim 48 further comprising using the surface coordinates as inputs to a function that generates texture map values for each respective pixel.

50. The method of claim 48 further comprising using the surface coordinates as inputs to a function that generates bump map values for each respective pixel.

51. The method of claim 47 the step of using a procedural calculation comprises using at least one surface value for a respective pixel as an input to the at least one procedural calculation functions.

52. The method of claim 47 the step of using a procedural calculation comprises using at least one light source value for a respective pixel as an input to the at least one procedural calculation functions.

53. The method of claim 40 wherein the step of determining the color modulation value comprises a procedural calculation based on surface offset coordinates.

54. The method of claim 40 wherein the step of determining the color modulation value comprises retrieving the color modulation coordinate from a two-dimensional map contained in a texture memory.

55. The method of claim 40 wherein the step of providing at least a pair of color intensity functions comprises specifying a specular exponent value for at least one of the functions.

56. The method of claim 40 wherein the step of determining the color modulation value comprises:

using at least one procedural calculation to determine a first color intensity function; and

obtaining a value of another color intensity function from a lookup table.

57. The method of claim 40 wherein the step of determining the color modulation value comprises:

using at least one procedural calculation to determine a first color intensity function; and

deriving the value of another color intensity function from the first color intensity function.

58. A method of creating a computer generated image having at least one polygon surface represented by a plurality of pixels, the method comprising:

generating a polygon surface represented by a plurality of vectors for each pixel in said plurality of pixels, the vectors including a light source vector, a surface normal vector and a view vector;

providing at least a pair of color intensity functions, wherein each color intensity function is representative of the specular light reflected by a respective pixel at different surface reflectance characteristic;

determining a color modulation value for a respective pixel;

interpolating the color intensity functions using the color modulation value to obtain a composite color value; and

using said composite color value to modulate pixel color of the polygon surface of the computer generated image.

59. The method of claim 58 wherein the polygon comprises a plurality of vertices and further comprising:

assigning a unique modulation value at each of the polygon's vertices;

rasterizing the polygon surface; and

interpolating the modulation values at the vertices throughout the rasterized polygon surface to provide a modulation value for each pixel.

60. The method of claim 58 wherein the step of interpolating comprises:

interpolating two-dimensional vectors across the polygon surface;

using the interpolated vector to address a color map for each pixel; and

retrieving a color from the map and using the color as the specular light color for the respective pixel.

61. The method of claim 58 wherein the step of interpolating comprises:

interpolating three-dimensional vectors across the polygon surface;

at each pixel, dividing the interpolated three-dimensional vector by its largest component;

using the divided values of the other two components to address a two-dimensional color map for each pixel; and

retrieving a color from the map and using the color as the specular light color for the respective pixel.

62. The method of claim 58 wherein the step of providing at least a pair of color intensity functions comprises providing a maximum color intensity function and a minimum color intensity function.

63. The method of claim 58 further comprising the step of scaling said interpolated color value.

64. The method of claim 63 herein the step of scaling said interpolated color value comprises scaling by the modulation value.

65. The method of claim 63 wherein the step of scaling said interpolated color value comprises scaling by a derivative of the modulation value.

66. The method of claim 63 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function and a minimum reflectivity function.

67. The method of claim 63 wherein said step of providing at least a pair of light intensity functions comprises providing a maximum reflectivity function, a minimum reflectivity function and at least one intermediate reflectivity function.

68. The method of claim 58 wherein the step of determining the color modulation value comprises using at least one procedural calculation function.

69. The method of claim 68 wherein each pixel to be mapped in the display is assigned a pair of surface coordinates and wherein the step of using a procedural calculation comprises using the surface coordinates as inputs to the at least one procedural calculation functions.

70. The method of claim 69 further comprising using the surface coordinates as inputs to a function that generates texture map values for each respective pixel.

71. The method of claim 69 further comprising using the surface coordinates as inputs to a function that generates bump map values for each respective pixel.

72. The method of claim 68 the step of using a procedural calculation comprises using at least one surface value for a respective pixel as an input to the at least one procedural calculation functions.

73. The method of claim 58 wherein the step of determining the color modulation value comprises a procedural calculation based on surface offset coordinates.

74. The method of claim 58 wherein the step of determining the color modulation value comprises retrieving the color modulation coordinate from a two-dimensional map contained in a texture memory.

75. The method of claim 58 wherein the step of providing at least a pair of color intensity functions comprises specifying a specular exponent value for at least one of the functions.

76. The method of claim 68 the step of using a procedural calculation comprises using at least one light source value for a respective pixel as an input to the at least one procedural calculation functions.

77. The method of claim 58 wherein the step of determining the color modulation value comprises:

using at least one procedural calculation to determine a first color intensity function; and

obtaining a value of another color intensity function from a lookup table.

78. The method of claim 58 wherein the step of determining the color modulation value comprises:

using at least one procedural calculation to determine a first color intensity function; and

deriving the value of another color intensity function from the first color intensity function.

79. A method of generating a display comprising a plurality of pixels on a screen comprising:

providing at least a pair of specular light intensity functions, wherein each specular light intensity function is representative of the specular light reflected by a respective pixel at a different surface reflectance characteristic including using at least one procedural calculation to determine a first specular light intensity function, and obtaining a value of another specular light intensity function from a lookup table;

determining a specularity modulation value for a respective pixel;

interpolating the specular light intensity functions using the specularity modulation value to obtain a composite specularity value; and

using said composite specularity value to modulate pixel color on said screen.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2004
From: COLLODI, DAVID J.
To: CCVG, INC.
Reel/Frame 014892/0859 →