Claims
- 1. In a system having a rendering pipeline for rendering an image that includes a primitive to which texture maps can be applied, wherein the rendering pipeline includes one or more texture units, a method for applying data obtained from texture maps to a pixel using the one or more texture units, the method comprising the acts of:
storing destination pixel data in a destination buffer; passing at least a first set of texture coordinates associated with the pixel to a texture unit, wherein said first set of texture coordinates is associated with a first texture map; obtaining first texture data from said first texture map, wherein said first texture data corresponds to the pixel; storing the first texture data in a first buffer that is separate from the destination buffer storing the destination pixel data; passing a second set of texture coordinates associated with the pixel to a texture unit, wherein said second set of texture coordinates is associated with a second texture map; obtaining second texture data from said second texture map, wherein said second texture data corresponds to the pixel; blending the second texture data with the first texture data stored in the first buffer to produce composite texture data; storing the composite texture data in the first buffer; and modifying said destination pixel data with the composite texture data from the first buffer to obtain composite pixel data that is used to refresh a display screen.
- 2. A method as recited in claim 1, wherein said act of modifying said destination pixel data comprises the act of blending the composite texture data with said destination pixel data to obtain the composite pixel data that is used to refresh a display screen.
- 3. A method as recited in claim 2, further comprising the act of storing said second texture data in a second buffer.
- 4. A method as recited in claim 3, wherein said second buffer is created by dividing one of said destination buffer and said first buffer.
- 5. A method as recited in claim 3, further comprising the acts of:
passing a third set of texture coordinates associated with the pixel to a texture unit, wherein said third set of texture coordinates is associated with a third texture map; and obtaining third texture data from said third texture map, wherein said third texture data corresponds to the pixel.
- 6. A method as recited in claim 5, further comprising an act of blending said third texture data with the composite texture data in the first buffer.
- 7. A method as recited in claim 1, further comprising the acts of:
creating a second buffer by dividing one of said destination buffer and the first buffer; and storing said second texture data in said second buffer.
- 8. A method as recited in claim 7, further comprising the acts of:
passing data associated with the pixel from one or more previous passes to a texture unit; and obtaining third texture data from a third texture map.
- 9. A texture system for applying multiple texture maps to a primitive, wherein the texture system is included in an image rendering system having a rendering pipeline, the texture system comprising:
a texture map repository storing a plurality of texture maps; at least one texture unit for obtaining texture data from the texture map repository for a pixel during texture passes, wherein during each texture pass a texture value is obtained from a texture map; one or more temporary buffers for storing texture data; at least one destination buffer for storing destination pixel data separate from the texture data; and a texture blender that blends texture data from multiple texture passes and stores the blended texture data in the one or more temporary buffers for subsequent application to the destination pixel data stored in the at least one destination buffer.
- 10. A texture system as recited in claim 9, further comprising a texture address modification unit for interpolating texture coordinates.
- 11. A texture system as recited in claim 10, wherein said texture data includes data obtained from multiple passes and blended together.
- 12. For a rendering system, a computer program product comprising one or more computer readable media carrying computer executable instructions for implementing a method of applying texture data from a plurality of texture maps using one or more texture units, the method comprising acts of:
storing destination pixel data in a destination buffer; passing at least a first set of texture coordinates associated with the pixel to a texture unit, wherein said first set of texture coordinates is associated with a first texture map; obtaining first texture data from said first texture map, wherein said first texture data corresponds to the pixel; storing the first texture data in a first buffer that is separate from the destination buffer storing the destination pixel data; passing a second set of texture coordinates associated with the pixel to a texture unit, wherein said second set of texture coordinates is associated with a second texture map; obtaining second texture data from said second texture map, wherein said second texture data corresponds to the pixel; blending the second texture data with the first texture data stored in the first buffer to produce composite texture data; storing the composite texture data in the first buffer; and modifying said destination pixel data with the composite texture data from the first buffer to obtain composite pixel data that is used to refresh a display screen.
- 13. A computer program product as recited in claim 12, wherein said act of modifying comprises the act of blending the composite texture data with said destination pixel data to obtain said composite pixel data that is used to refresh a display screen.
- 14. A computer program product as recited in claim 12, wherein the method further comprises the act of dividing at least one of said destination buffer and said first buffer to create a second buffer.
- 15. A computer program product as recited in claim 14, wherein the method further comprises the act of storing said second texture data in said second buffer.
- 16. A computer program product as recited in claim 15, wherein the method further comprises the acts of:
passing a third set of texture coordinates associated with the pixel to the one or more texture units, wherein said third set of coordinates is also associated with a third texture map; and obtaining third texture data from said third texture map, wherein said third texture data corresponds to the pixel.
- 17. A computer program product as recited in claim 16, wherein said third set of texture coordinates includes at least one of said first texture data and said second texture data.
- 18. A computer program product as recited in claim 17, wherein the method further comprises the act of blending said third texture data with said composite texture data.
- 19. A computer program product as recited in claim 18, wherein the act of modifying further comprises the act of blending said composite texture data with said destination pixel data to obtain said composite pixel data that is used to refresh a display device.
- 20. A computer program product as recited in claim 17, wherein the act of modifying further comprises the act of blending said third texture data with said destination pixel data to obtain said composite pixel data that is used to refresh a display device.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is a continuation of U.S. patent application Ser. No. 09/939,130, filed Aug. 24, 2001, entitled “Applying Multiple Texture Maps to Objects in Three-Dimensional Imaging Processes, which is a continuation-in-part of U.S. patent application Ser. No. 09/822,659, filed Mar. 30, 2001, entitled “Applying Multiple Texture Maps to Objects Using a Single Texture Unit,” both of which are incorporated herein by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09939130 |
Aug 2001 |
US |
Child |
10770054 |
Feb 2004 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09822659 |
Mar 2001 |
US |
Child |
09939130 |
Aug 2001 |
US |