Method for continued bounding volume hierarchy traversal on intersection without shader intervention

US2020051312A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2020051312-A1
Application numberUS-201816101066-A
CountryUS
Kind codeA1
Filing dateAug 10, 2018
Priority dateAug 10, 2018
Publication dateFeb 13, 2020
Grant date

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 hardware-based traversal coprocessor provides acceleration of tree traversal operations searching for intersections between primitives represented in a tree data structure and a ray. The primitives may include opaque and alpha triangles used in generating a virtual scene. The hardware-based traversal coprocessor is configured to determine primitives intersected by the ray, and return intersection information to a streaming multiprocessor for further processing. The hardware-based traversal coprocessor is configured to omit reporting of one or more primitives the ray is determined to intersect. The omitted primitives include primitives which are provably capable of being omitted without a functional impact on visualizing the virtual scene.

First claim

Opening claim text (preview).

1 . A system that develops visualization of a virtual scene, comprising: memory configured to store at least a portion of an acceleration data structure, wherein the acceleration data structure includes a plurality of hierarchical nodes, wherein at least one of said hierarchical nodes identifies a plurality of primitives of the virtual scene; and circuitry operatively coupled to the memory configured to: receive information about a ray; and in response to receiving the ray information, traverse the acceleration data structure; determine a plurality of intersected primitives, wherein each intersected primitive is a primitive in the plurality of primitives that is intersected by a ray; determine at least one primitive among the plurality of intersected primitives that will not affect visualization of the virtual scene; and report two or more of the intersected primitives while omitting to report the at least one primitive that is determined will not affect visualization of the virtual scene. 2 . The system of claim 1 , wherein the circuitry comprises a coprocessor. 3 . The system of claim 1 , wherein the plurality of intersected primitives include one or more alpha primitives and one or more opaque primitives, and the at least one primitive that is determined will not affect visualization of the virtual scene includes an alpha primitive and an opaque primitive. 4 . The system of claim 1 , wherein the at least one primitive that is determined will not affect visualization of the virtual scene includes a primitive that is parametrically further away from an origin of the ray than another primitive in the plurality of intersected primitives. 5 . The system of claim 1 , wherein the plurality of primitives include opaque primitives and alpha primitives, and the circuitry is configured to, upon determining that the ray intersects an alpha primitive, identify the intersected alpha primitive to a processor for further processing. 6 . The system of claim 1 , wherein the plurality of primitives include opaque primitives and alpha primitives, and the circuitry is configured to: upon determining that the ray intersects an opaque primitive, store intersection information for the opaque primitive in a result queue; and upon determining that the ray intersects an alpha primitive and the result queue includes the intersection information for the opaque primitive, transmit the stored intersection information for the opaque primitive to a processor before transmitting intersection information for the intersected alpha primitive to the processor. 7 . The system of claim 1 , wherein the plurality of primitives include opaque primitives and alpha primitives, and the circuitry is configured to: upon determining that the ray intersects an opaque primitive, store intersection information for the opaque primitive in a result queue; and upon determining that the ray intersects an alpha primitive and the result queue includes the intersection information for the opaque primitive, transmit the stored intersection information for the opaque primitive to a processor and traversal stack information including state information for continuing traversal of the opaque and alpha primitives after performing, by the processor, processing related to the opaque primitive. 8 . The system of claim 1 , wherein the plurality of primitives include opaque primitives and alpha primitives, and determining the plurality of intersected primitives includes determining each alpha primitive, in the plurality of primitives, that is intersected by the ray and wherein each of the intersected alpha primitive is reported. 9 . The system of claim 1 , wherein the plurality of primitives include a range of primitives encoded within a contiguous group of blocks; and the circuitry includes a ray-triangle test and transform unit and an intersection management unit, the ray-triangle test and transform unit includes processing logic configured to transform the ray from world space to object space of the range of primitives and determine primitives in the range of primitives which are intersected by the ray in the object space, and the intersection management unit includes a result queue and is configured to determine which of the intersected primitives will not affect the visualization of the virtual scene. 10 . A method implemented by a hardware-based traversal coprocessor coupled to a multiprocessor, the method comprising: storing, in memory, at least a portion of an acceleration data structure, wherein the acceleration data structure includes a plurality of hierarchical nodes, at least one of said plurality of hierarchical nodes identifies a plurality of primitives of a virtual scene; receive information about a ray; and in response to receiving the ray information, determining a plurality of intersected primitives, wherein each intersected primitive is a primitive in the plurality of primitives that is intersected by a ray; determine at least one primitive among the plurality of intersected primitives that will not affect visualization of the virtual scene; and report two or more of the intersected primitives while omitting to report the at least one primitive that is determined will not affect visualization of the virtual scene. 11 . The method of claim 10 , wherein the intersected primitives include one or more alpha primitives and one or more opaque primitives, and the at least one primitive that is determined will not affect visualization of the virtual scene include an alpha primitive and an opaque primitive. 12 . The method of claim 10 , wherein the at least one primitive that is determined will not affect visualization of the virtual scene is parametrically further away from an origin of the ray than another primitive of the plurality of intersected primitives. 13 . The method of claim 10 , wherein the plurality of primitives include opaque primitives and alpha primitives, and the method further includes, upon determining that the ray intersects an alpha primitive, identify the intersected alpha primitive to the multiprocessor for further processing. 14 . The method of claim 10 , wherein the plurality of primitives include opaque primitives and alpha primitives, and the method further includes: upon determining that the ray intersects an opaque primitive, store intersection information for the opaque primitive in a result queue; and upon determining that the ray intersects an alpha primitive and the result queue includes the intersection information for the opaque primitive, transmit the stored intersection information for the opaque primitive to the multiprocessor before transmitting intersection information for the intersected alpha primitive to the multiprocessor. 15 . The method of claim 10 , wherein the plurality of primitives include opaque primitives and alpha primitives, and the method further includes: upon determining that the ray intersects an opaque primitive, store intersection information for the opaque primitive in a result queue; and upon determining that the ray intersects an alpha primitive and the result queue includes the intersection information for the opaque primitive, transmit the stored intersection information for the opaque primitive to the multiprocessor and traversal stack information including state information for continuing traversal of the opaque and alpha primitives after performing, by the multiprocessor, processing related to the opaque primitive. 16 . The method of claim 10 , wherein the plurality of primitives include opaque primitives and alpha primitives, and determining t

Assignees

Inventors

Classifications

  • G06T15/06Primary

    Ray-tracing · CPC title

  • General purpose rendering architectures · CPC title

  • Tree description, e.g. octree, quadtree · 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 US2020051312A1 cover?
A hardware-based traversal coprocessor provides acceleration of tree traversal operations searching for intersections between primitives represented in a tree data structure and a ray. The primitives may include opaque and alpha triangles used in generating a virtual scene. The hardware-based traversal coprocessor is configured to determine primitives intersected by the ray, and return intersec…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T15/06. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Feb 13 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).