Segmenting compressed graphics data for parallel decompression and rendering
First Claim
1. A graphics system comprising:
- a control unit configured to receive compressed 3D geometry data;
a plurality of geometry decompressors, wherein each of said decompressors is configured to receive a portion of said compressed 3D geometry data from said control unit and decompress said portion of said compressed 3D geometry data into a plurality of vertices, wherein said decompressors are configured to operate independently and in parallel; and
a plurality of processors, wherein each processor is configured to transform said vertices from a corresponding one of the decompressors into a different coordinate frame for rendering, wherein said processors transform said vertices prior to primitive assembly.
2 Assignments
0 Petitions
Accused Products
Abstract
A graphics system and method for reducing redundant transformation and lighting calculations performed on vertices that are shared by more than one geometric primitive is disclosed. The amount of data transmitted in certain data blocks may be reduced by incorporating a multicast/unicast bit into each data block. This bit may then be set to instruct the control unit to use the current 3D geometry data or state information for subsequent vertices. This may increase efficiency by allowing subsequent vertices using the same 3D geometry data to transfer less data. Conversely, if a vertex has wholly independent 3D geometry data, then its multicast/unicast bit may be set to invoke use of the current 3D geometry data on the current vertex as opposed to all future vertices. The reduction in redundant calculations is accomplished by delaying the formation of geometric primitives until after transformation and lighting has been performed on the vertices. Transformation and or lighting are performed independently on a vertex-by-vertex basis without reference to which geometric primitives the vertices belong to. After transformation and or lighting, geometric primitives may be formed utilizing previously generated connectivity information. The connectivity information may include mesh buffer references, vertex tags, and or other types of information.
-
Citations
64 Claims
-
1. A graphics system comprising:
-
a control unit configured to receive compressed 3D geometry data;
a plurality of geometry decompressors, wherein each of said decompressors is configured to receive a portion of said compressed 3D geometry data from said control unit and decompress said portion of said compressed 3D geometry data into a plurality of vertices, wherein said decompressors are configured to operate independently and in parallel; and
a plurality of processors, wherein each processor is configured to transform said vertices from a corresponding one of the decompressors into a different coordinate frame for rendering, wherein said processors transform said vertices prior to primitive assembly. - View Dependent Claims (2, 3, 4)
-
-
5. A graphics system comprising:
-
a control unit configured to receive compressed 3D geometry data; and
a plurality of decompressors, wherein said control unit is configured to convey portions of said 3D geometry data to each of said decompressors, wherein said decompressors are configured to decompress the 3D geometry data into one or more vertices, wherein said control unit is configured to route a first subset of said portions to individual decompressors, and wherein said control unit is configured to route a second subset of said portions to all of said decompressors. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
a plurality of transformation units, each configured to receive and transform vertices from one of said decompressors; and
one or more setup units, each comprising a transformed vertex memory, wherein said setup units are configured to receive said transformed vertices and assemble geometric primitives therefrom.
-
-
21. The graphics system as recited in claim 20, further comprising one or more draw units, wherein said draw units are configured to receive and render said geometric primitives from said setup units.
-
22. The graphics system as recited in claim 21, further comprising a sample buffer, and or more sample-to-pixel calculation units, wherein said draw units are configured to render samples into said sample buffer, and wherein said sample-to-pixel calculation units are configured to filter said samples into pixels that are usable to refresh a display device.
-
23. The graphics system as recited in claims 20, 16 wherein said transformation units are further configured to perform selected vertex processes on said transformed vertices.
-
24. A method for decompressing compressed 3D geometry data, the method comprising:
-
receiving said compressed 3D geometry data, wherein said compressed 3D geometry data comprises a series of blocks;
examining at least a portion of each block to determine whether the block is a multicast block or a unicast block;
routing each multicast block to a plurality of decompressors, wherein each decompressor stores an individual copy of state information, wherein said multicast blocks serve to update said individual copies of state information;
routing each unicast block to a single one of said plurality decompressor; and
decompressing said multicast and unicast blocks in said decompressors to form vertices, wherein each decompressor'"'"'s state information is used by the decompressor to perform said decompressing. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
-
50. A computer software program embodied on a carrier medium, wherein said program comprises a plurality of instructions, wherein said instructions are configured to:
-
receive a set of compressed 3D geometry data, wherein said set of compressed 3D geometry data comprises a series of blocks;
examine at least a portion of each block to determine whether the block is a multicast block or a unicast block;
route each multicast block to a plurality of decompressors, wherein each decompressor stores an individual copy of decompression state information, wherein said multicast blocks serve to update said individual copies of decompression state information;
route each unicast block to a single one of said plurality decompressor; and
decompress said multicast and unicast blocks in said decompressors to form vertices, wherein each decompressor'"'"'s state information is used by the decompressor to perform said decompressing. - View Dependent Claims (51, 52)
-
-
53. A method for compressing 3D geometry data, the method comprising:
-
receiving said 3D geometry data, wherein said 3D geometry data comprises a plurality of vertices;
dividing said plurality of vertices into triangle meshes based upon said vertices'"'"' xyz position;
embedding mesh buffer references to reduce repetition of vertices in said meshes; and
formatting said meshes into a series of blocks to allow parallel decompression, wherein a first subset of said blocks are multicast blocks configured to be conveyed to a plurality of parallel decompressors, wherein a second subset of said blocks are unicast blocks configured to be conveyed to a single decompressor. - View Dependent Claims (54, 55, 56, 57, 58)
-
-
59. A computer software program for compressing 3D graphics, wherein the computer software program is embodied on a computer-readable media, wherein the program is configured to compress the 3D graphics data so as to allow parallel decompression in a graphics system having a plurality of parallel decompressors, wherein the computer software program comprises a plurality of instructions, wherein the plurality of instructions are configured to:
-
receive the 3D graphics data, wherein the 3D graphics data includes a plurality of vertices; and
form a sequence of blocks from the 3D graphics data, wherein the sequence of blocks includes multicast blocks and unicast blocks, wherein each unicast block includes one or more vertices configured to be distributed to one or more of the parallel decompressors in sequential order, wherein each multicast block includes state information configured to be distributed to all of the parallel decompressors. - View Dependent Claims (60, 61)
-
-
62. A computer software program for decompressing 3D graphics data that has been compressed into a sequence of multicast and unicast blocks, wherein the software program comprises a plurality of instructions, wherein the plurality of instructions are configured to:
-
receive the sequence of multicast and unicast blocks; and
distribute the multicast and unicast blocks to a plurality of parallel decompressors, wherein the distributing is performed according to the following rules;
all multicast blocks are distributed to all of the decompressors in the same order as encoded in the sequence;
the unicast blocks are distributed to only one of the decompressors; and
all blocks are distributed in the same order as in the sequence.
-
-
63. A graphics system comprising:
-
a control unit configured to receive compressed 3D geometry data;
a plurality of geometry decompressors, wherein each of said decompressors is configured to receive a portion of said compressed 3D geometry data from said control unit and decompress said portion of said compressed 3D geometry data into a plurality of vertices, wherein said decompressors are configured to operate independently and in parallel; and
a plurality of processors, wherein each processor is configured to transform said vertices from a corresponding one of the decompressors into a different coordinate frame for rendering;
one or more setup units configured to assemble geometric primitives from said transformed vertices provided by the processors. - View Dependent Claims (64)
-
Specification