Method and apparatus for multi-pass texture mapping
First Claim
1. A multi-pass pixel processing circuit, comprising:
- a raster engine that is operably coupled to receive primitive parameters corresponding to video graphics primitives, wherein the raster engine generates a first set of texture map coordinates corresponding to a first texture map for each pixel in a first portion a selected video graphics primitive, wherein the raster engine generates a second set of texture map coordinates corresponding to a second texture map for each pixel in the first portion;
a coordinate combination block operably coupled to the raster engine, wherein the coordinate combination block combines buffered texture data corresponding to the first set of texture map coordinates with the second set of texture map coordinates to produce modified texture map coordinates corresponding to the second texture map;
memory operably coupled to the coordinate combination block, wherein the memory stores the first and second texture maps, wherein the memory provides texture data corresponding to the first texture map in response to the first set of texture map coordinates, wherein the memory provides texture data corresponding to the second texture map in response to the modified texture map coordinates; and
a buffer operably coupled to the memory and the coordinate combination block, wherein the buffer stores the texture data corresponding to the first texture map as provided by the memory as buffered texture data such that the buffered texture data for each pixel of the first portion is provided to the coordinate combination block for combination with the second set of texture map coordinates for the pixel.
2 Assignments
0 Petitions
Accused Products
Abstract
A multi-pass pixel processing circuit and method that allows a single set of texturing circuitry to be used for performing texture mapping operations that map multiple texture maps to a video graphics primitive is presented. The multi-pass pixel processing circuit includes a raster engine that is operably coupled to receive primitive parameters corresponding to video graphics primitives. For each portion of a selected primitive, the raster engine performs a first pass of texture map coordinate generation. During the first pass, the raster engine generates a first set of texture map coordinates corresponding to a first texture map for each pixel in the portion of the selected video graphics primitive. A coordinate combination block that is operably coupled to the raster engine provides the first set of texture map coordinates for each pixel to a memory that stores the first texture map to retrieve texture data corresponding to the first texture map for each pixel. The texture data corresponding to the first texture map is then stored in a first texture map data buffer. Upon completion of the first pass, the raster engine generates a second set of texture map coordinates corresponding to a second texture map for each pixel in the portion. The coordinate combination block then combines a portion of the texture data corresponding to the first texture map that had been retrieved during the first pass for the pixel with the newly received second set of texture map coordinates to produce modified texture map coordinates. These modified texture map coordinates are then provided to the memory to retrieve texture data corresponding to the second texture map. In addition to modifying the texture coordinates used to fetch texture data corresponding to the second texture, the texture data corresponding to the first texture may also be used to modify the resulting texture data corresponding to the second texture that is fetched based on the modified texture coordinates.
32 Citations
26 Claims
-
1. A multi-pass pixel processing circuit, comprising:
-
a raster engine that is operably coupled to receive primitive parameters corresponding to video graphics primitives, wherein the raster engine generates a first set of texture map coordinates corresponding to a first texture map for each pixel in a first portion a selected video graphics primitive, wherein the raster engine generates a second set of texture map coordinates corresponding to a second texture map for each pixel in the first portion;
a coordinate combination block operably coupled to the raster engine, wherein the coordinate combination block combines buffered texture data corresponding to the first set of texture map coordinates with the second set of texture map coordinates to produce modified texture map coordinates corresponding to the second texture map;
memory operably coupled to the coordinate combination block, wherein the memory stores the first and second texture maps, wherein the memory provides texture data corresponding to the first texture map in response to the first set of texture map coordinates, wherein the memory provides texture data corresponding to the second texture map in response to the modified texture map coordinates; and
a buffer operably coupled to the memory and the coordinate combination block, wherein the buffer stores the texture data corresponding to the first texture map as provided by the memory as buffered texture data such that the buffered texture data for each pixel of the first portion is provided to the coordinate combination block for combination with the second set of texture map coordinates for the pixel. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A multi-pass pixel processing circuit, comprising:
-
a raster engine that is operably coupled to receive primitive parameters corresponding to video graphics primitives, wherein for a first pass, the raster engine generates a first set of texture map coordinates corresponding to a first texture map for each pixel in a first portion a selected video graphics primitive, wherein for a second pass, the raster engine generates a second set of texture map coordinates corresponding to a second texture map for each pixel in the first portion;
a memory that stores texture data for the first texture map and the second texture map;
a coordinate combination block operably coupled to the raster engine and the memory, wherein for the first pass, the coordinate combination block provides the first set of texture map coordinates for each pixel to the memory to retrieve texture data corresponding to the first texture map, wherein for the second pass, the coordinate combination block combines buffered textured data with the second set of texture map coordinates to produce modified texture map coordinates, wherein the coordinate combination block provides the modified texture map coordinates to the memory to retrieve texture data corresponding to the second texture;
a first texture map data buffer operably coupled to the memory, wherein the first texture map data buffer stores texture data corresponding to the first texture map that is retrieved from the memory during the first pass, wherein the first texture map data buffer provides a first portion of the texture data corresponding to the first texture map for each pixel to the coordinate combination block during the second pass as the buffered texture data such that the buffered texture data retrieved during the first pass for a particular pixel is provided to the coordinate combination block for combination with the second set of texture map coordinates that corresponding to the particular pixel; and
a pixel combination block operably coupled to the memory and the first texture map data buffer, wherein the pixel combination block combines texture data corresponding to the second texture retrieved during the second pass for each pixel with a second portion of the texture data corresponding to the first texture map for the pixel as generated in the first pass and stored in the first texture map data buffer, wherein combination of texture data from the first and second passes produces resultant texture data. - View Dependent Claims (8, 9, 10, 11)
a cache index buffer operably coupled to the cache control block; and
a cache memory operably coupled to the memory, the cache control block, the first texture map data buffer, and the pixel combination block, wherein the cache memory caches texture data retrieved from the memory, wherein when the cache control block determines that the cache memory stores texture data corresponding to a set of texture map coordinates, the cache control block stores a cache index corresponding to the texture data in the cache index buffer, wherein when the cache control block determines that the cache memory does not store texture data corresponding to a set of texture map coordinates, the cache control block retrieves the texture data corresponding to the set of texture map coordinates from the memory and stores the texture data in the cache and stores a cache index corresponding to the texture data as stored in the cache memory in the cache index buffer, wherein texture data is provided to the first texture map data buffer and the pixel combination block using cache indexes stored in the cache index buffer.
-
-
12. A multi-pass pixel processing circuit, comprising:
-
a raster engine that is operably coupled to receive primitive parameters corresponding to video graphics primitives, wherein for a first pass, the raster engine generates a first set of texture map coordinates corresponding to a first texture map for each pixel in a first portion a selected video graphics primitive, wherein for a second pass, the raster engine generates a second set of texture map coordinates corresponding to a second texture map for each pixel in the first portion;
a memory that stores texture data for the first texture map and the second texture map;
a control block operably coupled to the raster engine and the memory, wherein for the first pass, the control block provides the first set of texture map coordinates for each pixel to the memory to retrieve texture data corresponding to the first texture map, wherein for the second pass, the control block provides the second set of texture map coordinates for each pixel to the memory to retrieve texture data corresponding to the second texture;
a first texture map data buffer operably coupled to the memory, wherein the first texture map data buffer stores texture data corresponding to the first texture map that is retrieved from the memory during the first pass; and
a pixel combination block operably coupled to the memory and the first texture map data buffer, wherein the pixel combination block combines texture data corresponding to the second texture retrieved during the second pass for each pixel with at least a portion of the texture data corresponding to the first texture map for the pixel as generated in the first pass and stored in the first texture map data buffer, wherein combination of texture data from the first and second passes produces resultant texture data. - View Dependent Claims (13, 14, 15)
-
-
16. A multi-pass method for texturing a video graphics primitive, comprising:
-
for each pixel in a portion of the video graphics primitive;
receiving a first set of texture coordinates corresponding to a first texture map;
retrieving texture data corresponding to the first texture map using the first set of texture coordinates;
storing the texture data corresponding to the first texture map in a first texture map data buffer;
after receiving the first set of texture coordinates for each pixel in the portion, for each pixel in the portion;
receiving a second set of texture coordinates corresponding to a second texture map;
modifying the second set of texture coordinates based on texture data corresponding to the first texture map as stored for the pixel to produce modified texture coordinates; and
retrieving texture data corresponding to the second texture map using the modified texture coordinates. - View Dependent Claims (17, 18, 19, 20, 21)
combining the texture data corresponding to the second texture map with at least a portion of the texture data corresponding to the first texture map to produce resultant texture data.
-
-
20. The method of claim 19, wherein combining further comprises modifying color data included in the texture data corresponding to the second texture map using color modification data included in the texture data corresponding to the first texture map.
-
21. The method of claim 16, wherein size of the portion of the video graphics primitive is determined based on size of the first texture map data buffer.
-
22. A multi-pass method for texturing a video graphics primitive, comprising:
-
for each pixel in a portion of the video graphics primitive;
receiving a first set of texture coordinates corresponding to a first texture map;
retrieving texture data corresponding to the first texture map using the first set of texture coordinates;
storing the texture data corresponding to the first texture map in a first texture map data buffer;
after receiving the first set of texture coordinates for each pixel in the portion, for each pixel in the portion;
receiving a second set of texture coordinates corresponding to a second texture map;
retrieving texture data corresponding to the second texture map using the second set of texture coordinates; and
modifying the texture data corresponding to the second texture map using at least a portion of the texture data corresponding to the first texture map as stored for the pixel, wherein modifying produces resultant texture data for the pixel. - View Dependent Claims (23, 24, 25, 26)
-
Specification