Multilevel display control list in tile based 3D computer graphics system
First Claim
1. A method for rendering a computer graphics image from a 3-D scene in a computer graphics system configured to use a rendering space which is divided into a plurality of tiles, wherein the plurality of tiles are grouped into a plurality of tile blocks, and the plurality of tile blocks are grouped into a plurality of macrotiles, the method comprising:
- grouping primitives of said 3-D scene into primitive blocks;
for each primitive block, determining a macrotile overlapped by that primitive block, and writing a pointer for that primitive block in a macrotile control list for said macrotile;
for each tile block of a macrotile, generating control stream data indicating whether a primitive block that overlaps said macrotile is to be processed for that tile block;
for each tile of a tile block for which a primitive block is to be processed, generating a tile indication indicating whether said primitive block is to be processed or is not to be processed for that tile; and
using said macrotile control list, control stream data and tile indications to render primitive data into said image.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for rendering a 3 dimensional computer graphics image. The image is divided into plurality of rectangular tiles which are arranged in a multi level structure comprising a plurality of levels of progressively larger groupings of tiles. Image data is divided into a plurality of primitive blocks and these are assigned to groupings of tiles within the multi level structure in dependence on the groupings each one intersects. Control stream data is derived for rendering the image and this comprises references to primitive blocks for each grouping of tiles within each level of the multi level structure, the references corresponding to the primitive blocks assigned to each grouping and control stream data is used to render the primitive data into tiles within the groupings of tiles for display. This is done such that for primitive blocks which intersect a plurality of tiles within a grouping, control stream data is written for the grouping of tiles rather than for each tile within the grouping.
-
Citations
12 Claims
-
1. A method for rendering a computer graphics image from a 3-D scene in a computer graphics system configured to use a rendering space which is divided into a plurality of tiles, wherein the plurality of tiles are grouped into a plurality of tile blocks, and the plurality of tile blocks are grouped into a plurality of macrotiles, the method comprising:
-
grouping primitives of said 3-D scene into primitive blocks; for each primitive block, determining a macrotile overlapped by that primitive block, and writing a pointer for that primitive block in a macrotile control list for said macrotile; for each tile block of a macrotile, generating control stream data indicating whether a primitive block that overlaps said macrotile is to be processed for that tile block; for each tile of a tile block for which a primitive block is to be processed, generating a tile indication indicating whether said primitive block is to be processed or is not to be processed for that tile; and using said macrotile control list, control stream data and tile indications to render primitive data into said image. - View Dependent Claims (2, 3, 4)
-
-
5. Apparatus for rendering a computer graphics image from a 3-D scene, comprising:
-
a macro tiling engine configured; to group primitives of said 3-D scene into primitive blocks, for each primitive block, to determine for a rendering space which is divided into a plurality of tiles, wherein the plurality of tiles are grouped into a plurality of tile blocks, and the plurality of tile blocks are grouped into a plurality of macrotiles, a macrotile overlapped by that primitive block; to write a pointer for that primitive block in a macrotile control list for said macrotile; a tiling engine configured; to generate control stream data for each tile block of a macrotile, said control stream data indicating whether a primitive block that overlaps said macrotile is to be processed for that tile block, and for each tile of a tile block for which a primitive block is to be processed, to generate a tile indication indicating whether said primitive block is to be processed or is not to be processed for that tile; and a 3-D rendering processor configured to use said macrotile control list, control stream data and tile indications to render primitive data into said image. - View Dependent Claims (6, 7, 8)
-
-
9. A non-transitory computer readable storage medium having stored therein computer-executable instructions that when executed, cause at least one processor to:
-
group primitives of a computer graphics 3-D scene into primitive blocks; for each primitive block, determine for a rendering space which is divided into a plurality of tiles, wherein the plurality of tiles are grouped into a plurality of tile blocks, and the plurality of tile blocks are grouped into a plurality of macrotiles, a macrotile overlapped by that primitive block; write a pointer for that primitive block in a macrotile control list for said macrotile; generate control stream data for each tile block of a macrotile, said control stream data indicating whether a primitive block that overlaps said macrotile is to be processed for that tile block; for each tile of a tile block for which a primitive block is to be processed, generate a tile indication indicating whether said primitive block is to be processed or is not to be processed for that tile; and render primitive data into said image using said macrotile control list, control stream data and tile indications. - View Dependent Claims (10, 11, 12)
-
Specification