IP Library › Granted Patent US 9,990,758
Granted Patent B2
US 9,990,758 · App. 14/574,992 · Granted Jun 5, 2018

Bounding volume hierarchy generation using a heterogeneous architecture

Inventors: Per Ganestam (Malmo, SE); Tomas Akenine-Moller (Lund, SE); Carl J. Munkberg (Malmo, SE)
Assignee: Intel Corporation
G06T15/005G06T17/005G06T2210/12
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 9,990,758
App. No.
14/574,992
Granted
Jun 5, 2018
Kind
B2
Abstract

A system rapidly builds bounding volume hierarchies for ray tracing using both the CPU cores and an integrated graphics processor. The hierarchy is built directly into shared memory (between the CPU and GPU). The method starts by sorting the triangles along a space-filling curve, and then quickly sets up a number of mini-trees with a small number of triangles in them, which includes computing the bounding boxes of the mini-trees. This makes it possible to build the mini-trees using a surface-area heuristic in parallel on the graphics processor, while at the same time, the trees above the mini-trees are built in a top-down fashion using the CPU cores.

Claims (33)

1. A method comprising:

splitting graphics primitives into groups;

finding a bounding box for each group;

building a mini-tree for each of the groups of graphics primitives on a graphics processing unit (GPU);

building a sweep-surface-area heuristic (SAH) subtree over the mini-trees in a central processing unit (CPU); and

visiting the graphics primitives along a space-filling curve until a stopping criteria is met based on a user-defined threshold based on a maximum number of primitives per group.

2. The method of claim 1 including grouping said primitives into groups until a number of primitives per group is larger than a threshold.

3. The method of claim 1 including forming the bounding box around grouped primitives and grouping said primitives until a surface area of the box around k primitives divided by k is smaller than a threshold value.

4. The method of claim 1 wherein building a subtree includes building a top-down SAH-optimized tree.

5. The method of claim 1 including storing the results of said building steps in shared memory.

6. The method of claim 1 including using the GPU and the CPU integrated on a same integrated circuit.

7. The method of claim 1 including building said subtree in parallel and said mini-trees in parallel.

8. One or more non-transitory computer readable media storing instructions executed to perform a sequence comprising:

splitting graphics primitives into groups;

finding a bounding box for each group;

building a mini-tree for each of the groups of graphics primitives on a graphics processing unit (GPU);

building a sweep-surface-area heuristic (SAH) subtree over the mini-trees in a central processing unit (CPU); and

visiting the graphics primitives along a space-filling curve until a stopping criteria is met based on a user-defined threshold based on a maximum number of primitives per group.

9. The media of claim 8 , said sequence including grouping said primitives into groups until a number of primitives per group is larger than a threshold.

10. The media of claim 8 , said sequence including forming the bounding box around grouped primitives and grouping said primitives until a surface area of the box around k primitives divided by k is smaller than a threshold value.

11. The media of claim 8 , said sequence wherein building a subtree includes building a top-down SAH-optimized tree.

12. The media of claim 8 , said sequence including storing the results of said building steps in shared memory.

13. The media of claim 8 , said sequence including using the GPU and the CPU integrated on a same integrated circuit.

14. The media of claim 8 , said sequence including building said subtree in parallel and said mini-trees in parallel.

15. An apparatus comprising:

a graphics processing unit (GPU) to split graphics primitives into groups, find a bounding box for each group, build a mini-tree for each of the groups of graphics primitives on a graphics processing unit (GPU), build a sweep-surface-area heuristic (SAH) subtree over the mini-trees in a central processing unit (CPU), and visit the graphics primitives along a space-filling curve until a stopping criteria is met based on a user-defined threshold based on a maximum number of primitives per group; and

a central processing unit (CPU) to build a sweep-surface-area heuristic (SAH) subtree over the mini-trees.

16. The apparatus of claim 15 , one of said units to group said primitives into groups until a number of primitives per group is larger than a threshold.

17. The apparatus of claim 15 , one of said units to form the bounding box around grouped primitives and group said primitives until a surface area of the box around k primitives divided by k is smaller than a threshold value.

18. The apparatus of claim 15 , said central processing unit (CPU) to build a subtree by building a top-down SAH-optimized tree.

19. The apparatus of claim 15 including a shared memory to store said mini-trees and subtrees.

20. The apparatus of claim 15 including one integrated circuit having said the GPU and the CPU.

21. The apparatus of claim 15 , said CPU to build said subtree in parallel and said GPU to build said mini-trees in parallel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2015
From: GANESTAM, PER; AKENINE-MOLLER, TOMAS G.; MUNKBERG, CARL J.
To: INTEL CORPORATION
Reel/Frame 034693/0259 →
Continuity (2)
Provisional Application 61972497 · Mar 31, 2014
Related Publication 20150279092A1 · Oct 1, 2015