Three-dimensional graphics rendering apparatus and method
First Claim
1. Rendering apparatus for rendering an image in response to three-dimensional graphics data, the apparatus comprising:
- a path through which the rendering apparatus receives the three-dimensional graphics data, the three-dimensional graphics data including polygon data and texture data, the texture data defining a texture and including texture size data and pattern data, the pattern data representing instances of the texture, each of the instances having a different resolution and including a lowest-resolution instance and a highest-resolution instance, the pattern data constituting a majority of the texture data, the apparatus initially receiving via the path no more than the polygon data, the texture size data and ones of the pattern data representing the lowest-resolution instance of the texture;
a reference buffer including memory cells corresponding to pixels of a rendering screen; and
a rendering engine that performs an initial rasterizing operation using only the polygon and texture size data to generate and to store in each of the memory cells of the reference buffer texture coordinates for a corresponding one of the pixels of the rendering screen, and that repetitively performs a display-and-load operation in which the rendering engine;
generates color values representing the image using the pattern data of a highest-resolution one of the instances of the texture extant in the rendering apparatus, identifies, in response to the texture coordinates stored in the reference buffer, ones of the pattern data of a next-higher resolution instance of the texture required to render at least parts of the image with a higher resolution, and causes the ones of the pattern data identified as being required to render the at least parts of the image with the higher resolution to be loaded via the path, the rendering engine repetitively performing the display-and-load operation until one of (a) the color values of all the pixels of the rendering screen are generated using different ones of the pattern data extant in the rendering apparatus, and (b) ones of the pattern data representing at least part of the highest-resolution instance of the texture have been loaded.
3 Assignments
0 Petitions
Accused Products
Abstract
An image represented by color values corresponding to the pixels of a rendering screen is rendered in response to three-dimensional graphics data. The three-dimensional graphics data include polygon data and texture data. The texture data define a texture and include texture size data and pattern data. The pattern data represent multiple instances of the texture. Each instance has a different resolution. The pattern data constitute a significant majority of the texture data. The polygon data, the texture size data and the pattern data representing the lowest-resolution instance of the texture are initially loaded. An initial rasterizing operation is performed using the polygon and texture size data to generate and to store a texture identifier and texture coordinates for each pixel of the rendering screen. A display-and-load operation is repetitively performed until either the color values of all the pixels of the rendering screen are generated using different ones of the pattern data, or the pattern data of at least part of the highest-resolution instance of the texture have been loaded. In the display-and-load operation, the color values representing the image are generated using the pattern data of a highest-resolution instance of the texture previously loaded. In response to the texture coordinates stored for the rendering screen pixels, the pattern data of a next-higher resolution instance of the texture required to render at least pants of the image with a higher resolution are identified, and the identified pattern data are loaded.
63 Citations
20 Claims
-
1. Rendering apparatus for rendering an image in response to three-dimensional graphics data, the apparatus comprising:
-
a path through which the rendering apparatus receives the three-dimensional graphics data, the three-dimensional graphics data including polygon data and texture data, the texture data defining a texture and including texture size data and pattern data, the pattern data representing instances of the texture, each of the instances having a different resolution and including a lowest-resolution instance and a highest-resolution instance, the pattern data constituting a majority of the texture data, the apparatus initially receiving via the path no more than the polygon data, the texture size data and ones of the pattern data representing the lowest-resolution instance of the texture;
a reference buffer including memory cells corresponding to pixels of a rendering screen; and
a rendering engine that performs an initial rasterizing operation using only the polygon and texture size data to generate and to store in each of the memory cells of the reference buffer texture coordinates for a corresponding one of the pixels of the rendering screen, and that repetitively performs a display-and-load operation in which the rendering engine;
generates color values representing the image using the pattern data of a highest-resolution one of the instances of the texture extant in the rendering apparatus, identifies, in response to the texture coordinates stored in the reference buffer, ones of the pattern data of a next-higher resolution instance of the texture required to render at least parts of the image with a higher resolution, and causes the ones of the pattern data identified as being required to render the at least parts of the image with the higher resolution to be loaded via the path, the rendering engine repetitively performing the display-and-load operation until one of (a) the color values of all the pixels of the rendering screen are generated using different ones of the pattern data extant in the rendering apparatus, and (b) ones of the pattern data representing at least part of the highest-resolution instance of the texture have been loaded. - View Dependent Claims (2, 3, 4, 5, 6, 14, 15)
the initial rasterizing operation performed by the rendering engine additionally generates intensity coefficients for the one of the pixels of the rendering screen; and
the intensity coefficients are additionally stored in a one of the memory cells of the reference buffer corresponding to the one of the pixels of the rendering screen.
-
-
3. The rendering apparatus of claim 2, additionally comprising a texture memory in which the pattern data loaded via the path are stored in a pyramidal data structure, the pyramidal data structure including layers in which are stored the pattern data of respective ones of the instances of the texture.
-
4. The rendering apparatus of claim 3, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the texture memory additionally includes a tile load list for the texture, the tile load list including an entry for each of the tiles; and
when the rendering engine identifies the ones of the pattern data of the next-higher resolution instance of the texture, the rendering engine;
detects ones of the tiles that include ones of the texture pixels whose pattern data were used by the rendering engine to generate the color values of the more than one nearby pixel of the rendering screen; and
sets to a load state the entry in the tile load list for each one of the tiles located in the next-higher resolution instance of the texture in a position corresponding to the ones of the texture pixels whose pattern data were used to generate the color values of the more than one nearby pixel of the rendering screen, the load state indicating that the pattern data of the one of the tiles of the next-higher resolution instance are required to render the image with the higher resolution.
-
-
5. The rendering apparatus of claim 4, in which, when the rendering engine causes to be loaded the ones of the pattern data identified as being required, the rendering engine:
-
tests the tile load list for the texture to identify the entries set to the load state;
causes to be loaded via the path the pattern data of the tiles whose entries in the tile load list are identified as being set to the load state; and
changes the entry in the tile load list for the tiles whose pattern data have been loaded from the load state to a loaded state, the loaded state indicating that the pattern data for the tiles have been loaded.
-
-
6. The rendering apparatus of claim 4, in which:
-
the rendering apparatus additionally includes an access map for each one of the tiles whose pattern data exist in the rendering apparatus, the access map including an entry for each one of the texture pixels of the one of the tiles, the entry being initialized to a first state; and
when the rendering engine detects the ones of the tiles that include the ones of the texture pixels whose pattern data were used to generate the color values of the more than one nearby pixel of the rendering screen, the rendering engine tests whether the access map entry for each one of the texture pixels whose pattern data were used by the rendering engine to generate the color values is in a second state before setting the entry for the one of the texture pixels to the second state, a test result of the access map entry being in the second state indicating that the pattern data of the one of the texture pixels were used to generate the color values of the more than one nearby pixel of the rendering screen.
-
-
14. The rendering apparatus of claim 1, additionally comprising a texture memory in which the pattern data loaded via the path are stored in a pyramidal data structure, the pyramidal data structure including layers in which are stored the pattern data of respective ones of the instances of the texture.
-
15. The rendering apparatus of claim 14, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the texture memory additionally includes a tile load list for the texture, the tile load list including an entry for each of the tiles; and
when the rendering engine identifies the ones of the pattern data of the next-higher resolution instance of the texture, the rendering engine;
detects ones of the tiles that include ones of the texture pixels whose pattern data were used by the rendering engine to generate the color values of the more than one nearby pixel of the rendering screen; and
sets to a load state the entry in the tile load list for each one of the tiles located in the next-higher resolution instance of the texture in a position corresponding to the ones of the texture pixels whose pattern data were used to generate the color values of the more than one nearby pixel of the rendering screen, the load state indicating that the pattern data of the one of the tiles of the next-higher resolution instance are required to render the image with the higher resolution.
-
-
7. A method of rendering an image in response to three-dimensional graphics data, the image being represented by color values corresponding to pixels of a rendering screen, the three-dimensional graphics data including polygon data and additionally including texture data defining a texture, the texture data including texture size data and pattern data, the pattern data representing instances of the texture each of the instances having a different resolution and including a lowest-resolution instance and a highest-resolution instance, the pattern data constituting a majority of the texture data, the method comprising:
-
loading the polygon data, the texture size data and the pattern data representing the lowest-resolution instance of the texture;
performing an initial rasterizing operation using the polygon and texture size data to generate and to store a texture identifier and texture coordinates for each one of the pixels of the rendering screen; and
repetitively performing a display-and-load operation, the display-and-load operation, including;
generating the color values representing the image using the pattern data of a highest-resolution instance of the texture previously loaded, in response to the texture coordinates stored for the rendering screen pixels, identifying ones of the pattern data of a next-higher resolution instance of the texture required to render at least parts of the image with a higher resolution, and loading the ones of the pattern data identified as being required to render the at least parts of the image with the higher resolution, the display-and-load operation being repetitively performed until one of (a) the color values of all the pixels of the rendering screen are generated using different ones of the pattern data, and (b) the pattern data of at least part of the highest-resolution instance of the texture have been loaded. - View Dependent Claims (8, 9, 10, 11, 12, 13, 16, 17, 18, 19, 20)
the initial rasterizing operation additionally generates intensity coefficients for the one of the pixels of the rendering screen;
the method additionally comprises storing the intensity coefficients together with the texture identifier and texture coordinates for the one of the pixels of the rendering screen.
-
-
9. The image rendering method of claim 8, in which:
-
the method additionally comprises providing a texture memory having a pyramidal data structure, the pyramidal data structure including layers in each of which are stored the pattern data representing a different one of the instances of the texture; and
loading the ones of the pattern data includes storing the pattern data in a different one of the layers of the pyramidal data structure of the texture memory.
-
-
10. The image rendering method of claim 8, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the method additionally comprises providing a tile load list, the tile load list including an entry for each of the tiles; and
identifying the ones of the pattern data of the next-higher resolution instance of the texture includes;
detecting ones of the tiles that include ones of the texture pixels whose pattern data were used in the most-recently performed generating step to generate the color values of more than one nearby pixel of the rendering screen, and setting to a load state the entry in the tile load list for each one of the tiles located in the next-higher resolution instance of the texture in a position corresponding to the ones of the texture pixels whose pattern data were used to generate the color values of the more than one nearby pixel of the rendering screen, the load state indicating that the pattern data of the one of the tiles of the next-higher resolution instance of the texture are required to render the image with the higher resolution.
-
-
11. The image rendering method of claim 10, in which loading the pattern data identified as being required includes:
-
testing the tile load list to identify the entries set to the load state;
loading the pattern data of the tiles whose entries in the tile load list are identified as being set to the load state; and
changing the entries in the tile load list for the tiles whose pattern data were loaded in the loading step from the load state to a loaded state, the loaded state indicating that the pattern data of the tiles have been loaded.
-
-
12. The image rendering method of claim 10, in which:
-
the method additionally includes providing an access map for each one of the tiles whose pattern data have been loaded, the access map including an entry for each one of the texture pixels of the one of the tiles, the entry being initialized to a first state; and
detecting the ones of the tiles includes;
testing whether the access map entry for each one of the texture pixels whose pattern data were used in the most-recently performed generating step to generate the color values is in a second state, the second state indicating that the pattern data of the one of the texture pixels were used to generate the color values of the more than one nearby pixel of the rendering screen, and setting the access map entry for the one of the texture pixels to the second state after the testing step has been performed.
-
-
13. The image rendering method of claim 10, in which generating the color values includes:
-
calculating instance coordinates from the texture coordinates for the one of the pixels of the rendering screen, the instance coordinates relating to the highest-resolution instance of the texture whose pattern data were loaded in the most-recently performed loading step;
calculating a tile number and tile coordinates from the instance coordinates;
reading the pattern data stored at an address indicated by the tile number and the tile coordinates; and
multiplying the pattern data read in the reading step by the intensity coefficients of the pixel to generate the color values.
-
-
16. The image rendering method of claim 7, in which:
-
the method additionally comprises providing a texture memory having a pyramidal data structure, the pyramidal data structure including layers in each of which are stored the pattern data representing a different one of the instances of the texture; and
loading the ones of the pattern data includes storing the pattern data in a different one of the layers of the pyramidal data structure of the texture memory.
-
-
17. The image rendering method of claim 7, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the method additionally comprises providing a tile load list, the tile load list including an entry for each of the tiles; and
identifying the ones of the pattern data of the next-higher resolution instance of the texture includes;
detecting ones of the tiles that include ones of the texture pixels whose pattern data were used in the most-recently performed generating step to generate the color values of more than one nearby pixel of the rendering screen, and setting to a load state the entry in the tile load list for each one of the tiles located in the next-higher resolution instance of the texture in a position corresponding to the ones of the texture pixels whose pattern data were used to generate the color values of the more than one nearby pixel of the rendering screen, the load state indicating that the pattern data of the one of the tiles of the next-higher resolution instance of the texture are required to render the image with the higher resolution.
-
-
18. The image rendering method of claim 17, in which loading the pattern data identified as being required includes:
-
testing the tile load list to identify the entries set to the load state;
loading the pattern data of the tiles whose entries in the tile load list are identified as being set to the load state; and
changing the entries in the tile load list for the tiles whose pattern data were loaded in the loading step from the load state to a loaded state, the loaded state indicating that the pattern data of the tiles have been loaded.
-
-
19. The image rendering method of claim 18, in which:
-
the method additionally includes providing an access map for each one of the tiles whose pattern data have been loaded, the access map including an entry for each one of the texture pixels of the one of the tiles, the entry being initialized to a first state; and
detecting the ones of the tiles includes;
testing whether the access map entry for each one of the texture pixels whose pattern data were used in the most-recently performed generating step to generate the color values is in a second state, the second state indicating that the pattern data of the one of the texture pixels were used to generate the color values of the more than one nearby pixel of the rendering screen, and setting the access map entry for the one of the texture pixels to the second state after the testing step has been performed.
-
-
20. The image rendering method of claim 18, in which generating the color values includes:
-
calculating instance coordinates from the texture coordinates for the one of the pixels of the rendering screen, the instance coordinates relating to the highest-resolution instance of the texture whose pattern data were loaded in the most-recently performed loading step;
calculating a tile number and tile coordinates from the instance coordinates;
reading the pattern data stored at an address indicated by the tile number and the tile coordinates; and
multiplying the pattern data read in the reading step by the intensity coefficients of the pixel to generate the color values.
-
Specification