Relative encoding for a block-based bounding volume hierarchy

US9552664B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9552664-B2
Application numberUS-201514589910-A
CountryUS
Kind codeB2
Filing dateJan 5, 2015
Priority dateSep 4, 2014
Publication dateJan 24, 2017
Grant dateJan 24, 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 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 and processing, via a tree traversal operation algorithm executed by a processor, one or more nodes of the tree data structure by intersecting the one or more nodes of the tree data structure with a query data structure. A first node of the tree data structure is associated with a first local coordinate system and a second node of the tree data structure is associated with a second local coordinate system, the first node being an ancestor of the second node, and the first local coordinate system and the second local coordinate system are both specified relative to a global coordinate system.

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; and processing, via a tree traversal operation algorithm executed by a tree traversal unit of a processor, one or more nodes of the tree data structure by intersecting the one or more nodes of the tree data structure with a query data structure, wherein a first local coordinate system associated with a first node of the plurality of nodes and a second local coordinate system associated with a second node of the plurality of nodes are encoded in the tree data structure, wherein the first node is an ancestor of the second node in a hierarchy of the tree data structure, wherein the first local coordinate system and the second local coordinate system are specified relative to a global coordinate system, and wherein the tree traversal unit includes a scheduler unit, a setup unit, one or more traversal units, and local storage for a plurality of query data structures and a plurality of stack data structures. 2. The method of claim 1 , wherein the tree data structure represents a bounding volume hierarchy (BVH). 3. The method of claim 1 , wherein each of the local coordinate systems is encoded using three high-precision values to specify an origin of the local coordinate system relative to the global coordinate system and three low-precision values to specify a scale factor for each axis of the local coordinate system. 4. The method of claim 3 , wherein the high-precision values comprise 32-bit floating point values and the low-precision values comprise 8-bit integers. 5. The method of claim 3 , wherein the scale factor for each axis of the local coordinate system is represented by a corresponding n-bit integer having a value e, and wherein the extents of the local coordinate system may be calculated by multiplying unit vectors corresponding to each axis of the global coordinate system by a power of two, where the value e is the exponent of the power of two. 6. The method of claim 1 , wherein the tree data structure is encoded as a plurality of compression block data structures stored in a memory, and wherein each compression block data structure includes data associated with a subset of nodes of the tree. 7. The method of claim 6 , wherein each compression block data structure encodes a local coordinate system specified relative to the global coordinate system, wherein the local coordinate system is associated with a block root node of the compression block data structure and one or more bounding volumes specified relative to the local coordinate system. 8. The method of claim 7 , wherein the one or more bounding volumes in the compression block data structure comprise axis-aligned bounding boxes (AABBs) that include six planes, each plane specified relative to the local coordinate system associated with the compression block data structure. 9. The method of claim 8 , wherein a location of each plane, relative to the local coordinate system, may be specified by an n-bit integer having a value m that indicates a distinct location on a particular axis of the local coordinate system based on a product of the value m and a scale factor s. 10. The method of claim 9 , wherein the value m is encoded as an unsigned 8-bit integer having a value between 0 and 255, and the scale factor s is encoded by a low-precision value e that is an 8-bit signed integer having a value between −128 and 127. 11. 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; and processing, via a tree traversal operation algorithm executed by a tree traversal unit of the processor, one or more nodes of the tree data structure by intersecting the one or more nodes of the tree data structure with a query data structure, wherein a first local coordinate system associated with a first node of the plurality of nodes and a second local coordinate system associated with a second node of the plurality of nodes are encoded in the tree data structure, wherein the first node is an ancestor of the second node in a hierarchy of the tree data structure, wherein the first local coordinate system and the second local coordinate system are specified relative to a global coordinate system, and wherein the tree traversal unit includes a scheduler unit, a setup unit, one or more traversal units, and local storage for a plurality of query data structures and a plurality of stack data structures. 12. The computer-readable storage medium of claim 11 , wherein each of the local coordinate systems is encoded using three high-precision values to specify an origin of the local coordinate system relative to the global coordinate system and three low-precision values to specify a scale factor for each axis of the local coordinate system. 13. The computer-readable storage medium of claim 12 , wherein the scale factor for each axis of the local coordinate system is represented by a corresponding n-bit integer having a value e, and wherein the extents of the local coordinate system may be calculated by multiplying unit vectors corresponding to each axis of the global coordinate system by a power of two, where the value e is the exponent of the power of two. 14. The computer-readable storage medium of claim 11 , wherein the tree data structure is encoded as a plurality of compression block data structures stored in a memory, and wherein each compression block data structure includes data associated with a subset of nodes of the tree. 15. The computer-readable storage medium of claim 14 , wherein each compression block data structure encodes a local coordinate system specified relative to the global coordinate system, wherein the local coordinate system is associated with a block root node of the compression block data structure and one or more bounding volumes specified relative to the local coordinate system. 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; and a processor configured to execute a tree traversal operation algorithm that causes the processor to: receive at least a portion of the tree data structure, and process, by a tree traversal unit of the processor, one or more nodes of the tree data structure by intersecting the one or more nodes of the tree data structure with a query data structure, wherein a first local coordinate system associated with a first node of the plurality of nodes and a second local coordinate system associated with a second node of the plurality of nodes are encoded in the tree data structure, wherein the first node is an ancestor of the second node in a hierarchy of the tree data structure, wherein the first local coordinate system and the second local coordinate system are specified relative to a global coordinate system, and wherein the tree traversal unit includes a scheduler unit, a setup unit, one or more traversal units, and local storage for a plurality of query data structures and a plurality of stack data structures. 17. The system of claim 16 , wherein each of the local coordinate systems is encoded using three high-precision values to specify an origin of the local coordinate system relative to the global coordinate system and three low-precision values to specify a scale factor for each axis of the local coordinate system. 18. Th

Assignees

Inventors

Classifications

  • G06T17/005Primary

    Tree description, e.g. octree, quadtree · CPC title

  • G06T15/10Primary

    Geometric effects · CPC title

  • Ray-tracing · CPC title

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

  • Shading · 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 US9552664B2 cover?
A system, method, and computer program product for implementing a tree traversal operation for a tree data structure 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 and processing, via a tree traversal operation algorithm executed by a processor, one or more nodes of the tree data structure b…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T17/005. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 24 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).