IP Library Granted Patent US 8,564,606
Granted Patent B2
US 8,564,606 · App. 10/564,306 · Granted Oct 22, 2013

Texturing 3-dimensional computer graphic images

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 8,564,606
App. No.
10/564,306
Granted
Oct 22, 2013
Kind
B2
Abstract

A method and apparatus are provided to generate automatically a mip-map chain of texture images from a portion of texture image data such that it may be used in texturing a computer graphic image. A portion of the texture image data is stored temporarily and is filtered to generate at least one lower level of mip-map data from the texture data. This lower level of mip-map texture image data is then stored for use in texturing. Preferably these are stored on a tile-by-tile basis where a tile is a rectangular area of the image being displayed.

Claims (50)

1. A 3-D graphics rendering system, comprising:

a source of full-resolution texture data;

a tile-based 3-D graphics rendering engine comprising a texturing unit;

a tile buffer configured to store portions of an image, as they are being rendered by the tile-based 3-D graphics engine;

a system memory separate from the tile buffer; and

a texture scaling filter, coupled to the tile buffer and to the main system memory, and configured

to first input full-resolution texture data, from the source of full-resolution texture data, for a portion of a texture to be used by the tile-based 3-D graphics rendering engine,

to produce a current reduced-resolution version of the inputted texture data, wherein the resolution of the reduced-resolution version is reduced by a scaling factor from the full-resolution texture data,

to store the current reduced-resolution version in the tile buffer,

to store the current reduced-resolution version in the main system memory, and thereafter

to iteratively produce subsequent reduced-resolution versions of the inputted texture data, by scaling, according to the scaling factor, the then-current stored reduced-resolution version, obtained from the tile buffer, to produce a new current reduced-resolution version, and to store the new current reduced-resolution version in the main memory and in the tile buffer as the current reduced-resolution version of the full-resolution texture data,

wherein the texturing unit of the tile-based 3-D graphics engine is configured to use texture data from the produced reduced-resolution versions for texturing a surface visible in a tile of an image during rendering by the tile-based 3-D graphics rendering engine.

2. The 3-D graphics rendering system of claim 1 , wherein the texture scaling filter is configured to overwrite at least a portion of one or more current reduced-resolution versions in the tile buffer with the subsequently produced reduced-resolution version.

3. The 3-D graphics rendering system of claim 1 , wherein the texture scaling filter is operable to generate a complete mipmap for a portion of the full-resolution texture data using a single read from system memory used to bring the portion of the full-resolution texture data into the tile buffer.

4. The 3-D graphics rendering system of claim 1 , wherein the full resolution texture data is dynamically generated.

5. The 3-D graphics rendering system of claim 1 , wherein the texture scaling filter is operable to break down the full-resolution texture data into tiles, and to produce an entire mipmap chain for that tile before beginning a subsequent tile of the full-resolution texture data.

6. The 3-D graphics rendering system of claim 1 , wherein the source of full-resolution texture data comprises a texture memory coupled to a texture cache, which is coupled to provide full resolution texture data to the texture scaling filter.

7. The 3-D graphics rendering system of claim 6 , wherein the system memory comprises the source of full-resolution texture data and a frame buffer for storing the portions of the image, after each portion is rendered by the tile-based 3-D graphics engine.

8. The 3-D graphics rendering system of claim 1 , wherein the tile buffer is sized according to a size of a screen-space tile, on which the tile-based 3-D graphics rendering engine operates.

9. The 3-D graphics rendering system of claim 1 , wherein the tile buffer is configured to store data representing the reduced-resolution versions of the texture in a format where adjacent textures are grouped into physical blocks in the memory, and each subsequent reduced-resolution version is stored in consecutive locations in the tile buffer.

10. A method of producing a texture mipmap, comprising:

iteratively inputting, into a filter within a tile-based 3-D graphics engine, tile-sized portions of a full-resolution texture, for which a mipmap is to be created; and

for each inputted tile-sized portion,

storing each of the tile-sized portions of the full-resolution image in a tile buffer that is also is used by the tile-based 3-D graphics engine, during image rendering, for storing a tile of an image being rendered,

filtering the tile-sized portion of the full-resolution image to produce a current reduced-resolution version,

storing the current reduced-resolution version in the tile buffer,

storing the current reduced-resolution version in a main memory, separate from the tile buffer, and

repeating, until the mipmap is complete for the tile-sized portion being processed, the filtering using the current reduced-resolution version from the tile buffer as input to produce a further reduced-resolution version, and the storing operations with the produced further reduced-resolution version.

11. The method of claim 10 , further comprising forming a sequence of tiles of full resolution texture data, the tiles sized according to a screen-space tile size operated on by the tile-based graphics engine, and performing the iterative inputting, into the filter within the tile-based 3-D graphics engine, using the sequence of tiles.

12. The method of claim 10 , further comprising storing only a full-resolution texture in a system memory, and generating a mipmap for at least a portion of the full-resolution texture in response to a need to apply the texture to a surface visible in an image being rendered by the tile-based 3-D graphics engine.

13. A 3-D graphics rendering system, comprising:

a source of full-resolution texture data;

a tile-based 3-D graphics rendering engine comprising a texturing unit;

a tile buffer configured to store portions of an image, as they are being rendered by the tile-based 3-D graphics engine, the tile buffer supporting accumulation operations;

a system memory separate from the tile buffer; and

a texture scaling filter, coupled to read from the tile buffer and to write to the tile buffer, the texture scaling filter configured to produce a current reduced-resolution version of a tile of full-resolution texture data,

and then to perform, for a determined number of passes, a method comprising

storing the current reduced-resolution version in the tile buffer,

copying the current reduced-resolution version to the system memory over a memory bus,

inputting the current reduced-resolution version from the tile buffer to the texture scaling filter, without using the memory bus,

filtering the current reduced-resolution version to produce a further current reduced resolution version, and

continuing by performing the storing of the further current reduced resolution version as the current-reduced resolution version in the tile buffer.

14. The 3-D graphics rendering system of claim 13 , wherein the texture scaling filter is configured to overwrite at least a portion of each current reduced-resolution version in the tile buffer with the further produced reduced-resolution version.

15. The 3-D graphics rendering system of claim 13 , wherein the texture scaling filter is operable to generate a complete mipmap for a bitmap during a direct memory access transaction.

16. The 3-D graphics rendering system of claim 13 , wherein the texture scaling filter is operable to break down the full-resolution texture data into tiles, and to produce an entire mipmap chain for that tile by performing the method for the determined number of times, before beginning a subsequent tile of the full-resolution texture data.

17. The 3-D graphics rendering system of claim 13 , wherein the source of full-resolution texture data comprises a texture memory coupled to store full resolution data in a texture cache, which is coupled to provide the full resolution texture data to the texture scaling filter.

18. The 3-D graphics rendering system of claim 13 , wherein the tile buffer is sized according to a size of a screen-space tile size on which the tile-based 3-D graphics rendering engine operates.

19. The 3-D graphics rendering system of claim 13 , wherein the tile buffer is configured to store data representing the reduced-resolution versions of the texture in format where adjacent textures are grouped into physical blocks in the memory, and each subsequent reduced-resolution version is stored in consecutive locations in the tile buffer.

20. The 3-D graphics rendering system of claim 13 , wherein the system is configured to produce a mipmap for each portion of full-resolution texture required to texture a particular screen-space tile being rendered, on a tile-by-tile basis.

21. The 3-D graphics rendering system of claim 13 , wherein the system is configured to produce a mipmap for each full-resolution texture required to texture all of the tiles of an image being rendered, prior to commencement of texturing.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2006
From: MCKELLAR, COLIN
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 017590/0970 →