Graphics processing enhancement by tracking object and/or primitive identifiers
First Claim
1. A method of rendering graphics with a processor, the method comprising:
- setting up a plurality of objects in a scene in virtual space, each said object being defined by a set of vertices;
assigning a unique object identifier to each of the objects;
issuing one or more draw calls to draw the objects;
setting up a plurality of primitives from the vertices, each said primitive being defined by a set of one or more of the vertices and each said primitive belonging to one or more of the objects;
performing geometry shading to generate one or more output primitives from the plurality of primitives, wherein performing the geometry shading includes generating a primitive identifier for one or more primitives generated by the geometry shading by incrementing a primitive identifier for each input primitive by a maximum amount of geometric amplification of output primitives supported by an object with which the input primitives are associated;
rasterizing each of the primitives for a plurality of pixels;
writing one or more of the object identifiers to at least one ID buffer, such that each pixel of the plurality of pixels is associated with an object identifier in the ID buffer;
processing the pixels for each of the rasterized primitives to determine corresponding depth and color values for the plurality of pixels; and
determining a set of display pixels for an output frame using the depth and color values for the plurality of pixels and the object identifiers in the ID buffer.
4 Assignments
0 Petitions
Accused Products
Abstract
Graphics processing includes setting up a plurality of objects in a scene in virtual space, each object being defined by a set of vertices. A unique object identifier is assigned to each object and written to an ID buffer. Draw calls are issued to draw the objects associated with the object identifiers. Parameter values of the vertices are manipulated to output vertex parameter values. Primitives are set up from the vertices, each primitive being defined by one or more of the vertices. Each primitive belongs to one or more of the objects. Each primitive is rasterized at a plurality of pixels. Processing the pixels includes spatial or temporal anti-aliasing that utilizes the one or more object identifiers of the plurality of object identifiers. The pixels are processed for each rasterized primitive to generate an output frame.
95 Citations
50 Claims
-
1. A method of rendering graphics with a processor, the method comprising:
-
setting up a plurality of objects in a scene in virtual space, each said object being defined by a set of vertices; assigning a unique object identifier to each of the objects; issuing one or more draw calls to draw the objects; setting up a plurality of primitives from the vertices, each said primitive being defined by a set of one or more of the vertices and each said primitive belonging to one or more of the objects; performing geometry shading to generate one or more output primitives from the plurality of primitives, wherein performing the geometry shading includes generating a primitive identifier for one or more primitives generated by the geometry shading by incrementing a primitive identifier for each input primitive by a maximum amount of geometric amplification of output primitives supported by an object with which the input primitives are associated; rasterizing each of the primitives for a plurality of pixels; writing one or more of the object identifiers to at least one ID buffer, such that each pixel of the plurality of pixels is associated with an object identifier in the ID buffer; processing the pixels for each of the rasterized primitives to determine corresponding depth and color values for the plurality of pixels; and determining a set of display pixels for an output frame using the depth and color values for the plurality of pixels and the object identifiers in the ID buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A system comprising:
-
a processor, and a memory coupled to the processor, wherein the processor is configured to perform a method of rendering graphics, the method comprising; setting up a plurality of objects in a scene in virtual space, each said object being defined by a set of vertices; assigning a unique object identifier to each of the objects; issuing one or more draw calls to draw the objects; setting up a plurality of primitives from the vertices, each said primitive being defined by a set of one or more of the vertices and each said primitive belonging to one or more of the objects; performing geometry shading to generate one or more output primitives from the plurality of primitives, wherein performing the geometry shading includes generating a primitive identifier for one or more primitives generated by the geometry shading by incrementing a primitive identifier for each input primitive by a maximum amount of geometric amplification of output primitives supported by an object with which the input primitives are associated; rasterizing each of the primitives for a plurality of pixels; writing one or more of the object identifiers to at least one ID buffer, such that each pixel in the plurality of pixels is associated with an object identifier in the ID buffer; processing the pixels for each of the rasterized primitives to determine a set of corresponding depth and color values for the plurality of pixels; and determining a set of display pixels for an output frame using the depth and color values for the plurality of pixels and the object identifiers in the ID buffer. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38)
-
-
39. A graphics processing unit (GPU) comprising:
-
an ID module configured to; receive information corresponding to a plurality of objects in a scene in virtual space, each said object being defined by a set of vertices; receive one or more object identifiers in a command buffer for each said object in the plurality, and write the one or more object identifiers to an ID buffer; wherein the GPU is further configured to perform geometry shading in which one or more output primitives are generated from one or more input primitives, wherein performing the geometry shading includes generating a primitive identifier for one or more primitives generated by the geometry shading by incrementing a primitive identifier for each input primitive by a maximum amount of geometric amplification of output primitives supported by an object with which the input primitives are associated; and wherein the GPU is further configured to render the two or more instanced objects by; manipulating parameter values of the vertices to generate output vertex parameter values; setting up a plurality of primitives from the vertices, each said primitive being defined by a set of one or more of the vertices and each said primitive belonging to one or more of the objects; rasterizing each of the primitives to generate a plurality of pixels; writing one or more of the object identifiers to at least one ID buffer, such that each pixel of the plurality of pixels is associated with an object identifier in the ID buffer; processing the pixels for each of the rasterized primitives to determine corresponding depth and color values for the plurality of pixels; and determining a set of display pixels for an output frame using the depth and color values for the plurality of pixels and the object identifiers in the ID buffer. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
Specification