Block-based bounding volume hierarchy

US9582607B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9582607-B2
Application numberUS-201514589904-A
CountryUS
Kind codeB2
Filing dateJan 5, 2015
Priority dateSep 4, 2014
Publication dateFeb 28, 2017
Grant dateFeb 28, 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.

A system, method, and computer program product for implementing a tree traversal operation for a tree data structure divided into compression blocks is disclosed. The method includes the steps of receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes, pushing a root node of the tree data structure onto a traversal stack data structure associated with an outer loop of a tree traversal operation algorithm, and, for each iteration of an outer loop of a tree traversal operation algorithm, popping a top element from the traversal stack data structure and processing, via an inner loop of the tree traversal operation algorithm, the compression block data structure that corresponds with the top element. The tree data structure may be encoded as a plurality of compression block data structures that each include data associated with a subset of nodes of the tree.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes, the tree data structure encoded as a plurality of compression block data structures stored in a memory, wherein each compression block data structure includes data associated with a subset of nodes of the tree; pushing a root node of the tree data structure onto a traversal stack data structure associated with an outer loop of a tree traversal operation algorithm that is configured, when executed by a processor, to process compression block data structures that are intersected by a query data structure; and for each iteration of the outer loop: popping a top element from the traversal stack data structure that corresponds with a compression block data structure, and processing, via an inner loop of the tree traversal operation algorithm executed by the processor, the compression block data structure that corresponds with the top element. 2. The method of claim 1 , wherein the query data structure comprises a ray data structure that specifies a ray to be intersected with the tree data structure during execution of the tree traversal operation algorithm. 3. The method of claim 1 , wherein a size of each compression block data structure is equal to a size of a memory transaction quantum. 4. The method of claim 1 , wherein each compression block data structure encodes a bounding volume associated with a block root node for the corresponding compression block data structure using six high-precision values. 5. The method of claim 1 , wherein each compression block data structure encodes a local coordinate system associated with a block root node of the corresponding compression block data structure and a bounding volume associated with each additional node of the corresponding compression block data structure, wherein bounding volumes within a particular compression block data structure are specified relative to the local coordinate system associated with the block root node of the particular compression block data structure. 6. The method of claim 5 , wherein the local coordinate system is encoded using three high-precision values to specify an origin of the local coordinate system relative to a global coordinate system and three low-precision values to specify a scale factor for each axis of the local coordinate system. 7. The method of claim 6 , wherein the high-precision values comprise 32-bit floating point values and the low-precision values comprise 8-bit integers. 8. The method of claim 1 , wherein each compression block data structure encodes a topology of the corresponding subset of nodes by associating each node corresponding to the compression block data structure with a node type identifier. 9. The method of claim 1 , wherein a bounding volume for at least one node in the compression block data structure is associated with information that indicates which planes of a first axis-aligned bounding box associated with the node are inherited from a second axis-aligned bounding box associated with a parent node of the node. 10. The method of claim 1 , wherein at least one subset of nodes includes an internal node, a leaf node, and a transition node. 11. The method of claim 1 , wherein at least one compression block data structure included in the tree data structure includes at least two transition nodes or at least two leaf nodes, and wherein pointers associated with the at least two transition nodes or at least two leaf nodes are encoded using a node indexing technique that explicitly encodes a first pointer associated with a first transition node or a first leaf node in the compression block data structure and implicitly encodes one or more additional pointers associated with one or more additional transition nodes or one or more additional leaf nodes based on a topology of nodes within the compression block data structure. 12. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform steps comprising: receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes, the tree data structure encoded as a plurality of compression block data structures stored in a memory, wherein each compression block data structure includes data associated with a subset of nodes of the tree; pushing a root node of the tree data structure onto a traversal stack data structure associated with an outer loop of a tree traversal operation algorithm that is configured, when executed by a processor, to process compression block data structures that are intersected by a query data structure; and for each iteration of the outer loop: popping a top element from the traversal stack data structure that corresponds with a compression block data structure, and processing, via an inner loop of the tree traversal operation algorithm executed by the processor, the compression block data structure that corresponds with the top element. 13. The computer-readable storage medium of claim 12 , wherein each compression block data structure encodes a local coordinate system associated with a block root node of the corresponding compression block data structure and a bounding volume associated with each additional node of the corresponding compression block data structure, wherein bounding volumes within a particular compression block data structure are specified relative to the local coordinate system associated with the block root node of the particular compression block data structure. 14. The computer-readable storage medium of claim 12 , wherein at least one compression block data structure included in the tree data structure includes at least two transition nodes or at least two leaf nodes, and wherein pointers associated with the at least two transition nodes or at least two leaf nodes are encoded using a node indexing technique that explicitly encodes a first pointer associated with a first transition node or a first leaf node in the compression block data structure and implicitly encodes one or more additional pointers associated with one or more additional transition nodes or one or more additional leaf nodes based on a topology of nodes within the compression block data structure. 15. The computer-readable storage medium of claim 12 , wherein the processor is a parallel processing unit that includes one or more tree traversal units, and wherein a size of each compression block data structure is equal to a size of one cache line in a local cache unit included in each of the tree traversal units. 16. A system, comprising: a memory storing at least a portion of a tree data structure that represents a tree having a plurality of nodes, the tree data structure encoded as a plurality of compression block data structures, wherein each compression block data structure includes data associated with a subset of nodes of the tree; and a processor for performing a tree traversal operation, the processor configured to: push a root node of the tree data structure onto a traversal stack data structure associated with an outer loop of a tree traversal operation algorithm that is configured to process compression block data structures that are intersected by a query data structure, and for each iteration of the outer loop executed by the processor: pop a top element from the traversal stack data structure that corresponds with a compression block data structure, and process, via an inner loop of the tree traversal operation algorithm, the compression block data structure that

Assignees

Inventors

Classifications

  • Model-based coding, e.g. wire frame · CPC title

  • Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses · CPC title

  • General purpose rendering architectures · CPC title

  • Tree coding, e.g. quadtree, octree · CPC title

  • Geometric effects · 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 US9582607B2 cover?
A system, method, and computer program product for implementing a tree traversal operation for a tree data structure divided into compression blocks is disclosed. The method includes the steps of receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes, pushing a root node of the tree data structure onto a traversal stack data structure associated…
Who is the assignee on this patent?
Nvidia Corp, Nividia Corp
What technology area does this patent fall under?
Primary CPC classification G06F16/9027. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 28 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).