IP Library › Granted Patent US 12,249,021
Granted Patent B2
US 12,249,021 · App. 17/934,869 · Granted Mar 11, 2025

Accelerated bounding volume hierarchy (BVH) traversal for ray tracing

Inventors: Piyush Gupta (Bangalore, IN); Pavan Kumar Akkaraju (Bangalore, IN); Alexei Vladimirovich Bourd (San Diego, CA); Andrew Evan Gruber (Arlington, MA)
Assignee: QUALCOMM Incorporated
G06T15/06G06T17/005G06T17/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,249,021
App. No.
17/934,869
Granted
Mar 11, 2025
Kind
B2
Abstract

Systems and techniques are provided for accelerated ray tracing. For instance, a process can include obtaining a hierarchical acceleration data structure that includes a plurality of primitives of a scene object and obtaining a respective information value associated with each primitive included in the plurality of primitives. A sort order can be determined for two or more nodes included in a same level of the hierarchical acceleration data structure at least in part by sorting the two or more nodes based on a respective sorting parameter value determined for each respective node of the two or more nodes. Each respective sorting parameter value can be determined based on at least one information value associated with one or more primitives included in a sub-tree of each respective node of the two or more nodes. The hierarchical acceleration data structure can be traversed using the sort order.

Claims (55)

1. A method of ray tracing, the method comprising:

obtaining a hierarchical acceleration data structure, the hierarchical acceleration data structure including a plurality of primitives of a scene object;

obtaining a respective information value associated with each primitive included in the plurality of primitives;

determining a sort order for two or more nodes associated with sorting the two or more nodes included in a same level of the hierarchical acceleration data structure based on a respective sorting parameter value determined for each respective node of the two or more nodes, wherein each respective sorting parameter value is based on at least one information value associated with one or more primitives included in a sub-tree of each respective node of the two or more nodes;

generating an updated hierarchical acceleration data structure based on the sort order, wherein a plurality of primitives included in the updated hierarchical acceleration data structure is the same as the plurality of primitives included in the hierarchical acceleration data structure; and

traversing the updated hierarchical acceleration data structure.

2. The method of claim 1 , wherein each respective information value associated with each primitive includes at least one of a Surface Area Heuristic (SAH) value, an opaqueness value, or a density value.

3. The method of claim 1 , wherein each respective information value associated with each primitive includes at least one of an area value, a distance value between each respective primitive and a camera associated with the scene object, or a level-of-detail (LOD) value.

4. The method of claim 1 , wherein each respective information value associated with each primitive is included as an entry in a render list associated with the scene object.

5. The method of claim 1 , wherein each respective information value associated with each primitive is obtained as an input to a ray tracing Application Programming Interface (API).

6. The method of claim 1 , wherein each respective sorting parameter value determined for each respective node of the two or more nodes comprises a calculated value based on sorting parameter values determined for one or more child nodes associated with each respective node.

7. The method of claim 6 , wherein the calculated value is an average of the respective sorting parameter value determined for the one or more child nodes.

8. The method of claim 6 , wherein the calculated value is determined based on a functional computation specified as an input to a ray tracing Application Programming Interface (API).

9. The method of claim 1 , further comprising:

determining a respective sorting parameter value for each respective node of one or more nodes included in a first level of the hierarchical acceleration data structure; and

based on the respective sorting parameter value determined for each respective node of the one or more nodes included in the first level, determining a respective sorting parameter value for each respective node of one or more nodes included in a second level of the hierarchical acceleration data structure.

10. The method of claim 9 , wherein the one or more nodes included in the first level are child nodes of the one or more nodes included in the second level.

11. The method of claim 9 , wherein:

the one or more nodes included in the first level are leaf nodes of the hierarchical acceleration data structure, each respective leaf node associated with one or more primitives of the plurality of primitives; and

a respective sorting parameter value determined for each respective leaf node comprises a calculated value based on at least one information value determined for one or more primitives associated with each respective leaf node.

12. The method of claim 1 , wherein the sort order is a decreasing order based on each respective sorting parameter value associated with each respective node of the two or more nodes.

13. The method of claim 1 , further comprising performing a depth first search (DFS) traversal of the updated hierarchical acceleration data structure, wherein the sort order is determined based on at least one information value associated with each primitive of the plurality of primitives and at least one sorting parameter value associated with each node of a plurality of nodes included in the hierarchical acceleration data structure.

14. The method of claim 1 , wherein the information value comprises an opaqueness value, wherein at least a first value of the opaqueness value is indicative of an opaque primitive and wherein at least a second value of the opaqueness value is indicative of a non-opaque primitive.

15. The method of claim 1 , wherein the updated hierarchical acceleration data structure:

is generated based on sorting one or more nodes included in each respective level of the plurality of levels such that a depth-first search (DFS) traversal of the updated hierarchical acceleration data structure traverses the plurality of nodes in the sort order.

16. The method of claim 1 , further comprising generating ray tracing graphic content based on traversing the updated hierarchical acceleration data structure.

17. An apparatus for ray tracing, the apparatus comprising:

at least one memory; and

at least one processor coupled to the at least one memory, the at least one processor configured to:

obtain a hierarchical acceleration data structure, the hierarchical acceleration data structure including a plurality of primitives of a scene object;

obtain a respective information value associated with each primitive included in the plurality of primitives;

determine a sort order for two or more nodes associated with a sort of the two or more nodes included in a same level of the hierarchical acceleration data structure based on a respective sorting parameter value determined for each respective node of the two or more nodes, wherein each respective sorting parameter value is based on at least one information value associated with one or more primitives included in a sub-tree of each respective node of the two or more nodes;

generate an updated hierarchical acceleration data structure based on the sort order, wherein a plurality of primitives included in the updated hierarchical acceleration data structure is the same as the plurality of primitives included in the hierarchical acceleration data structure; and

traverse the updated hierarchical acceleration data structure.

18. The apparatus of claim 17 , wherein each respective information value associated with each primitive includes at least one of a Surface Area Heuristic (SAH) value, an opaqueness value, or a density value.

19. The apparatus of claim 17 , wherein each respective information value associated with each primitive includes at least one of an area value, a distance value between each respective primitive and a camera associated with the scene object, or a level-of-detail (LOD) value.

20. The apparatus of claim 17 , wherein each respective information value associated with each primitive is obtained as an input to a ray tracing Application Programming Interface (API).

21. The apparatus of claim 17 , wherein each respective sorting parameter value determined for each respective node of the two or more nodes comprises a calculated value based on sorting parameter values determined for one or more child nodes associated with each respective node.

22. The apparatus of claim 21 , wherein the calculated value is an average of the respective sorting parameter value determined for the one or more child nodes or is determined based on a functional computation specified as an input to a ray tracing Application Programming Interface (API).

23. The apparatus of claim 17 , wherein the at least one processor is further configured to:

determine a respective sorting parameter value for each respective node of one or more nodes included in a first level of the hierarchical acceleration data structure; and

based on the respective sorting parameter value determined for each respective node of the one or more nodes included in the first level, determine a respective sorting parameter value for each respective node of one or more nodes included in a second level of the hierarchical acceleration data structure.

24. The apparatus of claim 23 , wherein:

the one or more nodes included in the first level are leaf nodes of the hierarchical acceleration data structure, each respective leaf node associated with one or more primitives of the plurality of primitives; and

a respective sorting parameter value determined for each respective leaf node comprises a calculated value based on at least one information value determined for one or more primitives associated with each respective leaf node.

25. A non-transitory computer-readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to:

obtain a hierarchical acceleration data structure, the hierarchical acceleration data structure including a plurality of primitives of a scene object;

obtain a respective information value associated with each primitive included in the plurality of primitives;

determine a sort order for two or more nodes associated with a sort of the two or more nodes included in a same level of the hierarchical acceleration data structure based on a respective sorting parameter value determined for each respective node of the two or more nodes, wherein each respective sorting parameter value is based on at least one information value associated with one or more primitives included in a sub-tree of each respective node of the two or more nodes;

generate an updated hierarchical acceleration data structure based on the sort order, wherein a plurality of primitives included in the updated hierarchical acceleration data structure is the same as the plurality of primitives included in the hierarchical acceleration data structure; and

traverse the updated hierarchical acceleration data structure.

26. The non-transitory computer-readable medium of claim 25 , wherein each respective information value associated with each primitive includes at least one of a Surface Area Heuristic (SAH) value, an opaqueness value, or a density value.

27. The non-transitory computer-readable medium of claim 25 , wherein the one or more processors are further configured to:

determine a respective sorting parameter value for each respective node of one or more nodes included in a first level of the hierarchical acceleration data structure; and

based on the respective sorting parameter value determined for each respective node of the one or more nodes included in the first level, determine a respective sorting parameter value for each respective node of one or more nodes included in a second level of the hierarchical acceleration data structure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2022
From: GUPTA, PIYUSH; AKKARAJU, PAVAN KUMAR; BOURD, ALEXEI VLADIMIROVICH; GRUBER, ANDREW EVAN
To: QUALCOMM INCORPORATED
Reel/Frame 061815/0571 →
Continuity (1)
Related Publication 20240104824A1 · Mar 28, 2024
References Cited (10)
US 20170221177A1 · Worcester · 2017 [cited by examiner]
US 20210390758A1 · Muthler et al. · 2021 [cited by applicant]
US 20220254088A1 · Broome · 2022 [cited by examiner]
US 20230298127A1 · Barczak · 2023 [cited by examiner]
Daniel M., et al., “A Survey on Bounding Volume Hierarchies for Ray Tracing”, Computer Graphics Forum: Journal of the European Association for Computer Graphics, Wiley-blackwell, Oxford, vol. 40, No. 2, Jun. 4, 2021, pp… [cited by applicant]
International Search Report and Written Opinion—PCT/US2023/073518—ISA/EPO—Jan. 8, 2024. [cited by applicant]
Ize T., et al., “RTSAH Traversal Order for Occlusion Rays”, Computer Graphics Forum: Journal of the European Association for Computer Graphics, Wiley-blackwell, Oxford, vol. 30, No. 2, Apr. 28, 2011, pp. 297-305, XP0715… [cited by applicant]
Nah J-H., et al., “SATO: Surface Area Traversal Order for Shadow Ray Tracing”, Computer Graphics Forum: Journal of the European Association for Computer Graphics, Wiley-blackwell, Oxford, vol. 33, No. 6, Mar. 14, 2014, … [cited by applicant]
Nah J-H., et al., “T&I Engine: Traversal and Intersection Engine for Hardware Accelerated Ray Tracing”, Computers and Accessibility, ACM, 2 Penn Plaza, Suite 701 New York, 10121-0701 USA, vol. 30, No. 6, Dec. 12, 20… [cited by applicant]
Ogaki S., et al., “An N-ary BVH Child Node Sorting Technique for Occlusion Tests”, Journal of Computer Graphics Techniques, vol. 5, No. 2, Jan. 1, 2016, pp. 22-37, XP093081715, ISSN: 2331-7418, sections 1, 2, 3,3.2, 4, … [cited by applicant]