Graphics processing enhancement by tracking object and/or primitive identifiers

US9710957B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9710957-B2
Application numberUS-201414246067-A
CountryUS
Kind codeB2
Filing dateApr 5, 2014
Priority dateApr 5, 2014
Publication dateJul 18, 2017
Grant dateJul 18, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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; 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; performing 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; rasterizing each of the primitives for a plurality of pixels; writing a depth at each said pixel to a Z buffer, the Z buffer having a first resolution; writing one or more of the object identifiers to at least one ID buffer, such that each pixel in the Z buffer is associated with an object identifier in the ID buffer; processing the pixels for each of the rasterized primitives to determine a set of color values in a color buffer, the color buffer having a second resolution that is less than the first resolution; and determining a set of display pixels for an output frame at the resolution of the Z buffer using the color values in the color buffer and the identifiers in the ID buffer. 2. The method of claim 1 , wherein the determining the set of display pixels includes applying spatial and/or temporal antialiasing using the one or more object identifiers in the ID buffer, in combination with the color buffer and/or Z buffer . 3. The method of claim 1 , wherein the ID buffer is a dedicated ID buffer dedicated to storing identifiers. 4. The method of claim 1 , wherein the ID buffer is shared buffer. 5. The method of claim 1 , wherein the ID buffer is a plurality of dedicated ID buffers. 6. The method of claim 1 , wherein assigning the unique object identifier includes adding an object identifier and a primitive identifier. 7. The method of claim 1 , wherein the assigning the unique object identifier includes performing a logical OR between an object identifier and a primitive identifier. 8. The method of claim 1 , further comprising: assigning a unique primitive identifier to each of the primitives and writing the primitive identifier to the ID buffer. 9. The method of claim 8 , wherein the determining the set of display pixels includes applying spatial and/or temporal antialiasing using the object identifiers and the primitive identifiers in the ID buffer, in combination with the color buffer and/or Z buffer. 10. The method of claim 8 , wherein the at least one ID buffer includes a dedicated object ID buffer dedicated to storing object identifiers and a dedicated primitive ID buffer dedicated to storing primitive identifiers. 11. The method of claim 8 , wherein the at least one ID buffer is a dedicated ID buffer dedicated to storing object identifiers and primitive identifiers. 12. The method of claim 8 , wherein said manipulating parameter values of the vertices comprises performing geometry shader computations by a geometry shader, wherein said assigning the unique primitive identifier comprises: generating a primitive ID with the geometry shader during the geometry shader computations. 13. The method of claim 8 , wherein said assigning the unique primitive identifier to each of the primitives comprises, before said manipulating parameter values of the vertices: performing primitive processing operations to generate a primitive ID, and incrementing the primitive ID each time the primitive processing operations output a patch. 14. The method of claim 8 , wherein said manipulating parameter values of the vertices comprises performing tessellation computations with a tessellation unit, wherein said assigning the unique primitive identifier comprises: before said tessellation computations, generating a primitive ID; receiving the primitive ID with the tessellation unit; and incrementing the primitive ID with each output primitive generated by the tessellation unit during the tessellation computations. 15. The method of claim 1 , wherein said manipulating the parameter values of the vertices includes manipulating the parameter values with a vertex shader and generating a primitive ID for eventual write to the ID buffer. 16. The method of claim 1 , wherein the assigning the unique object identifier includes assigning an object identifier for an instanced object with a vertex shader. 17. The method of claim 1 , wherein the assigning the unique object identifier includes assigning an object identifier for an instanced object with a vertex shader by backtracking from an object identifier and a primitive identifier to determine an instance identifier for the instanced object. 18. The method of claim 1 , further comprising performing geometry shading in which one or more output primitives are generated from one or more input primitives. 19. The method of claim 1 , further comprising performing geometry shading in which one or more output primitives are generated from one or more input primitives, wherein the performing geometry shading includes generating a primitive identifier for one or more primitives generated by the geometry shading. 20. The method of claim 1 , wherein said processing the pixels for each of the rasterized primitives includes manipulating pixel parameter values with a pixel shader, wherein said manipulating the pixel parameter values with the pixel shader includes reading one or more of the primitive identifiers with the pixel shader. 21. The method of claim 1 , further comprising tracking the plurality of object identifiers to at least one subsequent frame subsequent to said output frame, such that object identifiers are consistently assigned to objects from frame to frame. 22. The method of claim 1 , wherein the setting up a plurality of objects includes assigning the unique object identifier to each of the objects and writing the object identifier to an ID buffer. 23. The method of claim 1 , wherein the issuing the draw call includes assigning the unique object identifier to each of the objects and writing the object identifier to an ID buffer, whereby there is a plurality of object identifiers. 24. The method of claim 1 wherein the assigning a unique object identifier to each of the objects includes assigning the same object identifier to two or more instances of the same object in the same frame or in two or more different frames. 25. The method of claim 1 , wherein said determining the set of display pixels includes using the one or more object identifiers to keep track of which primitives or pixels belong to which objects. 26. The method of claim 1 , wherein said determining the set of display pixels includes using one or more of the object identifiers to provide pixel values for pixels in one frame by repeating a pixel value for the same pixel in the same object in a previous frame. 27

Assignees

Inventors

Classifications

  • Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes · CPC title

  • Filling planar surfaces by adding surface attributes, e.g. adding colours or textures · CPC title

  • Texture mapping · CPC title

  • Shading · CPC title

  • G06T15/005Primary

    General purpose rendering architectures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9710957B2 cover?
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. Primitiv…
Who is the assignee on this patent?
Sony Computer Entertainment America Llc, Sony Computer Entertainment Europe Ltd, Sony Interactive Entertainment America Llc
What technology area does this patent fall under?
Primary CPC classification G06T15/005. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 18 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).