Stereo multi-projection implemented using a graphics processing pipeline

US10068366B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10068366-B2
Application numberUS-201615147868-A
CountryUS
Kind codeB2
Filing dateMay 5, 2016
Priority dateMay 5, 2016
Publication dateSep 4, 2018
Grant dateSep 4, 2018

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.

A method, computer readable medium, and system are disclosed for generating multi-view image data. The method includes the steps of processing primitive data of a model to generate processed primitive data that includes multiple position vectors for each vertex in the primitive data, the number of position vectors associated with each vertex being equal to the number of views in at least two views being generated. The method further includes storing the processed primitive data in a buffer. Finally, the processed primitive data may be read from the buffer for each view in the at least two views and transmitted to a raster pipeline to generate image data corresponding to a particular view.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: configuring a graphics processing pipeline to render primitive data for a model according to at least two views; receiving the primitive data for the model at a first portion of the graphics processing pipeline; processing, within the first portion of the graphics processing pipeline, the primitive data to generate processed primitive data comprising a plurality of vertices, each vertex in the plurality of vertices comprising a data structure; storing the processed primitive data in a buffer in a memory, wherein the data structure for each vertex includes view-independent attributes that are enabled for all views of the at least two views and view-dependent attributes including a first view-dependent attribute that is enabled only for a first view of the at least two views and a second view-dependent attribute that is enabled only for a second view of the at least two views; receiving a first input map for the first view indicating a first component of the first view-dependent attribute used by a fragment shading stage within the graphics processing pipeline and a second component of the first view-dependent attribute not used by the fragment shading stage; generating, within the graphics processing pipeline, a second input map for the second view indicating the second component of the first view-dependent attribute is used by the fragment shading stage; and for each view of the at least two views: selecting a particular view of the at least two views, reading the processed primitive data from the buffer based on the selected view, and generating image data for the selected view within a second portion of the graphics processing pipeline. 2. The method of claim 1 , wherein the first portion of the graphics processing pipeline includes a geometry shading stage, and wherein the geometry shading stage is implemented by configuring a streaming multiprocessor of a parallel processing unit to execute, via one or more threads, a geometry shader, the one or more threads configured to generate the view-independent attributes and the view-dependent attributes for each vertex. 3. The method of claim 1 , wherein the first portion of the graphics processing pipeline includes a domain shading stage, and wherein the domain shading stage is implemented by configuring a streaming multiprocessor of a parallel processing unit to execute, via one or more threads, a domain shader, the one or more threads configured to generate the view-independent attributes and the view-dependent attributes for each vertex. 4. The method of claim 1 , wherein the first portion of the graphics processing pipeline includes a vertex shading stage, and wherein the vertex shading stage is implemented by configuring a streaming multiprocessor of a parallel processing unit to execute, via one or more threads, a vertex shader, the one or more threads configured to generate the view-independent attributes and the view-dependent attributes for each vertex. 5. The method of claim 1 , wherein the second portion of the graphics processing pipeline includes at least one of a rasterization stage, the fragment shading stage, and a raster operations stage. 6. The method of claim 1 , wherein the graphics processing pipeline includes a viewport scaling, clipping, and culling (SCC) stage configured to store the processed primitive data in the buffer and read the processed primitive data from the buffer based on the selected view. 7. The method of claim 1 , wherein a parallel processing unit includes a raster engine that is configured to store the processed primitive data in the buffer, read the processed primitive data from the buffer a number of times corresponding to the number of views in the at least two views, and transmit the processed primitive data to the second portion of the graphics processing pipeline to render the processed primitive data and generate image data for each view in the at least two views. 8. The method of claim 7 , wherein six viewports are enabled for each view, and wherein the six viewports are configured to generate a cube map of the model corresponding to each view. 9. The method of claim 7 , wherein the raster engine is configured to select a second render target for storing image data to a second view of the at least two views based on a second render target index, wherein the second render target index is calculated by a hardware unit within the graphics processing pipeline as a sum of a first render target array index corresponding to the first render target and a product of a view index corresponding to the second view and a constant. 10. The method of claim 1 , wherein the graphics processing pipeline is configured to render primitive data for two views to generate stereoscopic image data. 11. The method of claim 10 , wherein image data for a first view of the stereoscopic image data is stored in a first portion of a render target and image data for a second view of the stereoscopic image data is stored in a second portion of the render target, wherein the image data for the first view is rendered according to a first viewport array mask that specifies a first viewport is enabled and the image data for the second view is rendered according to a second viewport array mask that specifies a second viewport is enabled. 12. The method of claim 1 , wherein generating image data for the selected view within the second portion of the graphics processing pipeline comprises generating image data corresponding to each enabled viewport specified by a viewport array mask, each view of the at least two views corresponding to a different viewport array mask. 13. The method of claim 1 , wherein four of the view-independent attributes, the first view-dependent attribute, and the second view-dependent attribute encode two four-coordinate position vectors. 14. The method of claim 1 , wherein the first input map is generated by a compiler. 15. A non-transitory, computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform steps comprising: configuring a graphics processing pipeline to render primitive data for a model according to at least two views; receiving the primitive data for the model at a first portion of the graphics processing pipeline; processing, within the first portion of the graphics processing pipeline, the primitive data to generate processed primitive data comprising a plurality of vertices, each vertex in the plurality of vertices comprising a data structure; storing the processed primitive data in a buffer in a memory, wherein the data structure for each vertex includes view-independent attributes that are enabled for all views of the at least two views and view-dependent attributes including a first view-dependent attribute that is enabled only for a first view of the at least two views and a second view-dependent attribute that is enabled only for a second view of the at least two views; receiving a first input map for the first view indicating a first component of the first view-dependent attribute used by a fragment shading stage within the graphics processing pipeline and a second component of the first view-dependent attribute not used by the fragment shading stage; generating, within the graphics processing pipeline, a second input map for the second view indicating the second component of the first view-dependent attribute is used by the fragment shading stage; and for each view of the at least two views: selecting a particular view of the at least two views, reading the processed primitive data from the buffer based on

Assignees

Inventors

Classifications

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation · CPC title

  • G06T15/005Primary

    General purpose rendering architectures · CPC title

  • Shading · CPC title

  • from three-dimensional [3D] object models, e.g. computer-generated stereoscopic image signals · 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 US10068366B2 cover?
A method, computer readable medium, and system are disclosed for generating multi-view image data. The method includes the steps of processing primitive data of a model to generate processed primitive data that includes multiple position vectors for each vertex in the primitive data, the number of position vectors associated with each vertex being equal to the number of views in at least two vi…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 04 2018 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).