Method and apparatus for rapidly rendering and image in response to three-dimensional graphics data in a data rate limited environment
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 can receive the three-dimensional graphics data, the three-dimensional graphics data including polygon data and additionally including texture data defining a texture, the texture data including texture size data and sets of pattern data, the pattern data in each of the sets representing the texture with a different resolution, the pattern data constituting a majority of the texture data;
a pixel/depth buffer including first memory cells, the first memory cells corresponding to pixels of a rendering screen;
a reference buffer including second memory cells, the second memory cells corresponding to the pixels of the 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 the reference buffer, for each of the pixels of the rendering screen, a texture identifier, a layer depth value indicating a texture resolution, and texture coordinates;
that identifies, in response to the texture identifier, the layer depth and the texture coordinates stored in the reference buffer for each of the rendering screen pixels, ones of the pattern data required to render the image;
that acquires via the path the ones of the pattern data identified as being required to render the image; and
that generates image data representing the image using the pattern data acquired via the path, the path having a data transfer rate substantially smaller than data transfer rates between the rendering engine and the buffers.
3 Assignments
0 Petitions
Accused Products
Abstract
An image rendering apparatus that comprises an input path through which the rendering apparatus can receive three-dimensional graphics data, a pixel/depth buffer, a reference buffer and a rendering engine. The three-dimensional graphics data include polygon data and additionally include texture data defining a texture. The texture data include texture size data and sets of pattern data. The pattern data in each of the sets represent the texture with a different resolution. The pattern data constitute a majority of the texture data. The pixel/depth buffer and the reference buffer respectively include first memory cells and second memory cells that correspond to the pixels of a rendering screen. The rendering engine performs an initial rasterizing operation using only the polygon and texture size data to generate and to store in the reference buffer, for each of the pixels of the rendering screen, a texture identifier, a layer depth value indicating a texture resolution, and texture coordinates. The rendering engine also identifies, in response to the texture identifier, the layer depth and the texture coordinates stored in the reference buffer for each of the rendering screen pixels, the ones of the pattern data required to render the image. The rendering engine acquires via the path those of the pattern data identified as being required to render the image. Finally, the rendering engine generates image data representing the image using the pattern data acquired via the path. The path has a data transfer rate substantially smaller than the data transfer rates between the rendering engine and the buffers.
-
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 can receive the three-dimensional graphics data, the three-dimensional graphics data including polygon data and additionally including texture data defining a texture, the texture data including texture size data and sets of pattern data, the pattern data in each of the sets representing the texture with a different resolution, the pattern data constituting a majority of the texture data;
a pixel/depth buffer including first memory cells, the first memory cells corresponding to pixels of a rendering screen;
a reference buffer including second memory cells, the second memory cells corresponding to the pixels of the 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 the reference buffer, for each of the pixels of the rendering screen, a texture identifier, a layer depth value indicating a texture resolution, and texture coordinates;
that identifies, in response to the texture identifier, the layer depth and the texture coordinates stored in the reference buffer for each of the rendering screen pixels, ones of the pattern data required to render the image;
that acquires via the path the ones of the pattern data identified as being required to render the image; and
that generates image data representing the image using the pattern data acquired via the path, the path having a data transfer rate substantially smaller than data transfer rates between the rendering engine and the buffers.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
the initial rasterizing operation performed by the rendering engine additionally generates intensity coefficients for each one of the pixels of the rendering screen; and
the intensity coefficients are additionally stored in one of the second memory cells of the reference buffer, the one of the second memory cells corresponding to the one of the pixels of the rendering screen.
-
-
4. The rendering apparatus of claim 2, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the apparatus 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 required to render the image, the rendering engine reads the texture coordinates from the reference buffer to identify one of the tiles in which are located pattern data required to render the image, and sets the entry in the tile load list for the one of the tiles to a load state indicating that the pattern data of the one of the tiles are required to render the image.
-
-
5. The rendering apparatus of claim 4, in which, when the rendering engine acquires the pattern data required to render the image, the rendering engine tests the tile load list for the texture to identify the entries set to the load state, acquires the pattern data of each one 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 each one of the tiles whose pattern data have been acquired from the load state to an exist state, the exist indicating that the pattern data for the one of the tiles have been acquired.
-
6. The rendering apparatus of claim 2, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the rendering apparatus additionally includes a tile load list for the texture, the tile load list including an entry for each of the tiles, the entry indicating when the pattern data of the one of the tiles have been acquired; and
when the rendering engine acquires the pattern data for one of the tiles located in one of the layers of the pyramidal data structure, the rendering engine checks the tile load list to determine whether the pattern data have been acquired for source tiles located in a layer immediately below the one of the layers, the source tiles being ones of the tiles from which the pattern data of the one of the tiles can be synthesized, and synthesizes the pattern data for the one of the tiles from the pattern data of the source tiles.
-
-
7. The rendering apparatus of claim 2, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the rendering engine acquires an initial part of the pattern data required to render the image by loading via the path the pattern data of one of the tiles constituting a top layer of the pyramidal data structure, and stores the one of the tiles in the pyramidal data structure; and
the rendering engine generates the image data from the pattern data extant in the pyramidal data structure, and afterwards identifies the ones of the tiles of the pyramidal data structure whose pattern data are required to render the image with a higher resolution, acquires the pattern data of the identified tiles, and regenerates the image data with a higher resolution.
-
-
8. The rendering apparatus of claim 7, in which the rendering engine repetitively performs a routine in which the ones of the tiles whose pattern data are required to render the image with the higher resolution are identified, the pattern data of the identified tiles are acquired and the image data are regenerated with the higher resolution until the image data are all generated with a best resolution, the best resolution for the image data corresponding to a subset of the pixels of the rendering screen being less than the highest resolution.
-
9. The rendering apparatus of claim 1, in which the rendering engine acquires the pattern data required to render the image by one of (a) loading the pattern data via the path, and (b) synthesizing the pattern data.
-
10. The rendering apparatus of claim 1, in which:
-
the layer depth value is a real number having an integer part and a fractional part;
when fractional part of the layer depth value is zero, the rendering engine performs a first intra-layer interpolation among the pattern data in a one of the sets indicated by the integer part of the layer depth value to generate texture color values from which it derives the image data; and
when the fractional part of the layer depth value is non-zero, the rendering engine performs the first intra-layer interpolation, a second intra-layer interpolation among the pattern data in another of the sets having one level higher resolution than the one of the sets, and an inter-layer interpolation between results generated by the first and second intra-layer interpolations to generate the texture color values from which it derives the image data.
-
-
11. A method of rendering an image in response to three-dimensional graphics data, the image being represented by image data 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 sets of pattern data, the pattern data in each of the sets representing the texture with a different resolution, the pattern data constituting a majority of the texture data, the method comprising:
-
receiving the polygon and texture size data;
performing an initial rasterizing operation for each one of the pixels of the rendering screen, the initial rasterizing operation being performed using the polygon and texture size data and generating and storing a texture identifier, a layer depth value indicating a texture resolution, and texture coordinates;
performing a pattern data identifying operation in response to the texture identifier, the layer depth and the texture coordinates stored for each one of the rendering screen pixels, the pattern data identifying operation identifying ones of the pattern data required to render the image;
performing a pattern data acquiring operation in which are acquired the ones of the pattern data identified by the pattern data identifying operation as being required to render the image; and
performing a final rasterizing operation in which the image data representing the image are generated using the pattern data acquired by the pattern data acquiring operation. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
providing texture memory; and
storing the pattern data acquired by the pattern data acquiring operation in the texture memory in a pyramidal data structure, the pyramidal data structure including layers in each of which are stored a respective one of the sets of the pattern data representing the texture with a different resolution, one of the sets of the pattern data representing the texture with a highest resolution.
-
-
13. The image rendering method of claim 12, in which:
-
the initial rasterizing operation additionally generates intensity coefficients for the one of the pixels of the rendering screen; and
the intensity coefficients are stored together with the texture identifier, layer depth value and texture coordinates for the one of the pixels of the rendering screen.
-
-
14. The image rendering method of claim 12, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the method additionally comprises providing a tile load list for the texture, the tile load list including an entry for each of the tiles; and
the data pattern identifying operation includes;
reading the texture coordinates to identify one of the tiles in which are located pattern data required to render the image, and setting the entry in the tile load list for the one of the tiles to a load state, the load state indicating that the pattern data of the one of the tiles are required to render the image.
-
-
15. The image rendering method of claim 14, in which the pattern data acquiring operation includes:
-
testing the tile load list for the texture to identify the entries set to the load state;
acquiring the pattern data of each one the tiles whose entries in the tile load list are identified as being set to the load state; and
changing the entry in the tile load list for the each one of the tiles whose pattern data have been acquired from the load state to an exist state, the exist indicating that the pattern data for the one of the tiles have been acquired.
-
-
16. The image rendering method of claim 12, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the method additionally comprises providing a tile load list for the texture, the tile load list including an entry for each of the tiles, the entry having a state that indicates that the pattern data of the one of the tiles exist in the pyramidal data structure; and
the pattern data acquiring operation performed to acquire the pattern data for one of the tiles located in one of the layers of the pyramidal data structure includes;
checking the tile load list to determine whether the pattern data for source tiles located in a layer immediately below the one of the layers exist in the pyramidal data structure, the source tiles being ones of the tiles from which the pattern data of the one of the tiles can be synthesized, and when the pattern data for the source tiles exist in the pyramidal data structure, synthesizing the pattern data for the one of the tiles from the pattern data of the source tiles.
-
-
17. The image rendering method of claim 12, in which:
-
the pattern data belong to texture pixels arrayed in rectangular tiles;
the pattern data of a one of the tiles constituting a top layer of the pyramidal data structure are received and stored in the pyramidal data structure, and the final rasterizing operation is performed prior to the pattern data identifying operation being performed, the final rasterizing operation generating the image data from the pattern data extant in the pyramidal data structure;
the pattern data identifying operation identifies the ones of the tiles of the pyramidal data structure whose pattern data are required to render the image with a higher resolution; and
the method additionally comprises repeating the final rasterizing operation after the pattern data acquiring operation to regenerate the image data with a higher resolution.
-
-
18. The image rendering method of claim 17, in which the final rasterizing operation, the pattern data identifying operation and the pattern data acquiring operation are iterated until the image data are all generated with a best resolution, the best resolution for the image data corresponding to a subset of the pixels of the rendering screen being less than the highest resolution.
-
19. The image rendering method of claim 11, in which the pattern data acquiring operation includes acquiring the pattern data required to render the image by one of (a) loading the pattern data, and (b) synthesizing the pattern data.
-
20. The image rendering method of claim 11, in which:
-
performing the initial rasterizing operation generates a layer depth value as a real number having an integer part and a fractional part; and
performing the final rasterizing operation includes;
when the fractional part of the layer depth value is zero, performing a first intra-layer interpolation among the pattern data in a one of the sets identified by the integer part of the layer depth value to generate texture color values, and deriving the image data from the texture color values, and when the fractional part of the layer depth value is non-zero, performing the first intra-layer interpolation, performing a second intra-layer interpolation among the pattern data in another of the sets having one level higher resolution than the one of the sets, performing an inter-layer interpolation between results generated by the first and second intra-layer interpolation operations to generate the texture color values, and deriving the image data from the texture color values.
-
Specification