IP Library Granted Patent US 10,839,475
Granted Patent B2
US 10,839,475 · App. 16/236,185 · Granted Nov 17, 2020

Apparatus and method for compressing leaf nodes of a bounding volume hierarchy (BVH)

Inventors: Carsten Benthin (Voelklingen, DE); Sven Woop (Völklingen, DE); Ingo Wald (Salt Lake City, UT)
Assignee: INTEL IP CORPORATION
G06T1/20G06F9/3877G06T15/005G06T15/06G06T17/10G06T2210/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 10,839,475
App. No.
16/236,185
Granted
Nov 17, 2020
Kind
B2
Abstract

Apparatus and method for compressing an acceleration data structure such as a bounding volume hierarchy (BVH). For example, one embodiment of a graphics processing apparatus comprises: one or more cores to execute graphics instructions including instructions to perform ray tracing operations; and compression circuitry to compress lowest level nodes of a hierarchical acceleration data structure comprising a plurality of hierarchically arranged nodes, each of the lowest level nodes comprising pointers to leaf data; the compression circuitry to quantize the lowest level nodes to generate quantized lowest level nodes and to store each quantized lowest level node and associated leaf data without the pointers to the leaf data.

Claims (64)

1. A graphics processing apparatus comprising:

one or more cores to execute graphics instructions including instructions to perform ray tracing operations with a hierarchical acceleration data structure comprising a plurality of hierarchically arranged nodes including lowest level nodes, each of the lowest level nodes comprising pointers to leaf data; and

compression circuitry to compress the lowest level nodes of the hierarchical acceleration data structure, wherein to compress the lowest level nodes, the compression circuitry is configured to:

quantize a set of lowest level nodes of a parent inner node within the hierarchical acceleration data structure to generate a set of quantized lowest level nodes, and

store parent inner node data and the set of quantized lowest level nodes and associated leaf data without storing pointers to the associated leaf data, and wherein the pointers to the associated leaf data are to be determined using sizes of the parent inner node data and associated leaf data.

2. The graphics processing apparatus of claim 1 wherein each quantized lowest level node is to be stored contiguously with its associated leaf data and wherein a location of each portion of the leaf data is to be determined based on its contiguously-stored relation to the associated quantized lowest level node.

3. The graphics processing apparatus of claim 2 further comprising:

ray traversal circuitry to traverse one or more rays through the hierarchically arranged nodes; and

ray intersection circuitry to determine one or more intersections of the one or more rays with one or more primitives associated with the one or more hierarchically arranged nodes.

4. The graphics processing apparatus of claim 3 wherein the one or more primitives are associated with the one or more hierarchically arranged nodes by being enclosed by one or more bounding boxes of the one or more hierarchically arranged nodes.

5. The graphics processing apparatus of claim 3 wherein the ray traversal circuitry and/or the ray intersection circuitry comprises a plurality of execution units to execute a set of instructions to traverse the one or more rays through the hierarchically arranged nodes and determine the one or more intersections.

6. The graphics processing apparatus of claim 3 wherein the one or more primitives comprise hair primitives and wherein the quantized lowest level nodes comprise oriented bounding boxes (OBBs), wherein the compression circuitry is to perform the additional operations of:

determining an oriented coordinate space which is aligned to a hair direction of a first hair primitive;

bounding the hair primitive with an axis-aligned bounding box (AABB); and

compressing the oriented coordinate space and bounding box for the first hair primitive and one or more other hair primitive that are spatially close together.

7. The graphics processing apparatus of claim 6 the oriented coordinate space is expressed by three vectors v x , v y , and v z that are orthogonal to each other and wherein transforming a point p into that space works by projecting it onto the axes: p x =dot(v x , p), p y =dot(v y , p), and p z =dot(v z , p), wherein compressing the oriented coordinate space further comprises:

quantizing the vectors v x , v y , and v z using 8-bit signed fixed point numbers to generate quantized vectors v x ′, v y ′, and v y ′.

8. The graphics processing apparatus of claim 1 wherein the hierarchical acceleration data structure comprises a bounding volume hierarchy (BVH) or an oriented bounding box (OBB).

9. The graphics processing apparatus of claim 1 wherein the compression circuitry is to determine common properties of primitives shared by at least one of the lowest level nodes and to cause data related to the common properties to be stored only once and shared by multiple primitives.

10. The graphics processing apparatus of claim 9 wherein the common properties comprise an objectID and/or one or more vertices of the primitives.

11. A method comprising:

executing graphics instructions including instructions to perform ray tracing operations with a hierarchical acceleration data structure comprising a plurality of hierarchically arranged nodes including lowest level nodes, each of the lowest level nodes comprising pointers to leaf data;

compressing the lowest level nodes by:

quantizing a set of lowest level nodes of a parent inner node within the hierarchical acceleration data structure to generate a set of quantized lowest level nodes; and

storing parent inner node data and the set of quantized lowest level node and associated leaf data without storing pointers to the associated leaf data, and wherein the pointers to the associated leaf data are to be determined using sizes of the parent inner node data and associated leaf data.

12. The method of claim 11 wherein each quantized lowest level node is to be stored contiguously with its associated leaf data and wherein a location of each portion of the leaf data is to be determined based on its contiguously-stored relation to the associated quantized lowest level node.

13. The method of claim 12 further comprising:

traversing one or more rays through the hierarchically arranged nodes; and

determining one or more intersections of the one or more rays with one or more primitives associated with the one or more hierarchically arranged nodes.

14. The method of claim 13 wherein the one or more primitives are associated with the one or more hierarchically arranged nodes by being enclosed by one or more bounding boxes of the one or more hierarchically arranged nodes.

15. The method of claim 13 wherein the operations of traversing and determining are performed by a plurality of execution units which execute a set of instructions to traverse the one or more rays through the hierarchically arranged nodes and determine the one or more intersections.

16. The method of claim 13 wherein the one or more primitives comprise hair primitives and wherein the quantized lowest level nodes comprise oriented bounding boxes (OBBs), wherein the method further comprises:

determining an oriented coordinate space which is aligned to a hair direction of a first hair primitive;

bounding the hair primitive with an axis-aligned bounding box (AABB); and

compressing the oriented coordinate space and bounding box for the first hair primitive and one or more other hair primitive that are spatially close together.

17. The method of claim 16 the oriented coordinate space is expressed by three vectors, v x , v y , and v z , that are orthogonal to each other and wherein transforming a point p into that space works by projecting it onto the axes: p x =dot(v x , p), p y =dot(v y , p), and p z =dot(v z , p), wherein compressing the oriented coordinate space further comprises:

quantizing the vectors v x , v y , and v z using 8-bit signed fixed point numbers to generate quantized vectors v x ′, v y ′, and v y ′.

18. The method of claim 11 wherein the hierarchical acceleration data structure comprises a bounding volume hierarchy (BVH) or oriented bounding boxes (OBB).

19. The method of claim 11 further comprising:

determining common properties of primitives shared by at least one of the lowest level nodes; and

causing data related to the common properties to be stored only once and shared by multiple primitives.

20. The method of claim 19 wherein the common properties comprise an objectID and/or one or more vertices of the primitives.

21. A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of:

executing graphics instructions including instructions to perform ray tracing operations with a hierarchical acceleration data structure comprising a plurality of hierarchically arranged nodes including lowest level nodes, each of the lowest level nodes comprising pointers to leaf data;

compressing the lowest level nodes by:

quantizing a set of lowest level nodes of a parent inner node within the hierarchical acceleration data structure to generate a set of quantized lowest level nodes; and

storing parent inner node data and the set of quantized lowest level node and associated leaf data without storing pointers to the associated leaf data, and wherein the pointers to the associated leaf data are to be determined using sizes of the parent inner node data and associated leaf data.

22. The non-transitory machine-readable medium of claim 21 wherein each quantized lowest level node is to be stored contiguously with its associated leaf data and wherein a location of each portion of the leaf data is to be determined based on its contiguously-stored relation to the associated quantized lowest level node.

23. The non-transitory machine-readable medium of claim 22 further comprising:

traversing one or more rays through the hierarchically arranged nodes; and

determining one or more intersections of the one or more rays with one or more primitives associated with the one or more hierarchically arranged nodes.

24. The non-transitory machine-readable medium of claim 23 wherein the one or more primitives are associated with the one or more hierarchically arranged nodes by being enclosed by one or more bounding boxes of the one or more hierarchically arranged nodes.

25. The non-transitory machine-readable medium of claim 23 wherein the operations of traversing and determining are performed by a plurality of execution units which execute a set of instructions to traverse the one or more rays through the hierarchically arranged nodes and determine the one or more intersections.

26. The non-transitory machine-readable medium of claim 23 wherein the one or more primitives comprise hair primitives and wherein the quantized lowest level nodes comprise oriented bounding boxes (OBBs), wherein the operations further comprise:

determining an oriented coordinate space which is aligned to a hair direction of a first hair primitive;

bounding the hair primitive with an axis-aligned bounding box (AABB); and

compressing the oriented coordinate space and bounding box for the first hair primitive and one or more other hair primitive that are spatially close together.

27. The non-transitory machine-readable medium of claim 26 the oriented coordinate space is expressed by three vectors, v x , v y , and v z , that are orthogonal to each other and wherein transforming a point p into that space works by projecting it onto the axes: p x =dot(v x , p), p y =dot(v y , p), and p z =dot(v z , p), wherein compressing the oriented coordinate space further comprises:

quantizing the vectors v x , v y , and v z using 8-bit signed fixed point numbers to generate quantized vectors v x ′, v y ′, and v y ′.

28. The non-transitory machine-readable medium of claim 21 wherein the hierarchical acceleration data structure comprises a bounding volume hierarchy (BVH) or oriented bounding boxes (OBB).

29. The non-transitory machine-readable medium of claim 21 further comprising:

determining common properties of primitives shared by at least one of the lowest level nodes; and

causing data related to the common properties to be stored only once and shared by multiple primitives.

30. The non-transitory machine-readable medium of claim 29 wherein the common properties comprise an objectID and/or one or more vertices of the primitives.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2021
From: INTEL IP CORPORATION
To: INTEL CORPORATION
Reel/Frame 056337/0609 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 049731 FRAME: 0740. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 26, 2020
From: BENTHIN, CARSTEN; WOOP, SVEN; WALD, INGO
To: INTEL IP CORPORATION
Reel/Frame 052249/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2019
From: BENTHIN, CARSTEN; WOOP, SVEN; WALD, INGO
To: INTEL CORPORATION
Reel/Frame 049731/0740 →