IP Library Granted Patent US 11,238,640
Granted Patent B2
US 11,238,640 · App. 17/008,462 · Granted Feb 1, 2022

Early culling for ray tracing

Inventors: Skyler Jonathon Saleh (San Diego, CA); Sagar S. Bhandare (San Diego, CA); Fataneh F. Ghodrat (Boxborough, MA); Paul Raymond Vella (Boxborough, MA)
Assignee: Advanced Micro Devices, Inc.
G06T15/06G06T15/40G06T2210/21
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 11,238,640
App. No.
17/008,462
Granted
Feb 1, 2022
Kind
B2
Abstract

A technique for performing ray tracing operations is provided. The technique includes reading descendant-shared type metadata for a non-leaf node of a bounding volume hierarchy; identifying one or more culling types for a ray-intersection test for a ray; and determining whether to treat the non-leaf node as not intersected based on whether the one or more culling types includes at least one type specified by the descendant-shared type metadata.

Claims (51)

1. A method for performing ray tracing operations, the method comprising:

reading descendant-shared type metadata for a non-leaf node of a bounding volume hierarchy, wherein the descendant-shared type metadata includes type information other than geometry defining a bounding box for the non-leaf node, wherein the type information is common among all descendant leaf nodes of the non-leaf node;

identifying one or more culling types for a ray-intersection test for a ray; and

determining whether to treat the non-leaf node as not intersected based on whether the one or more culling types includes at least one type specified by the descendant-shared type metadata.

2. The method of claim 1 , wherein:

the one or more culling types includes at least one type specified by the descendant-shared type metadata; and

determining whether to treat the non-leaf node as not intersected comprises determining to treat the non-leaf node as not intersected.

3. The method of claim 1 , wherein:

the one or more culling types includes no types specified by the descendant-shared type metadata; and

determining whether to treat the non-leaf node as not intersected comprises not determining to treat the non-leaf node as not intersected.

4. The method of claim 1 , wherein:

the one or more culling types include one or more of triangle, procedural geometry, opaque geometry, and non-opaque geometry.

5. The method of claim 1 , wherein:

treating the non-leaf node as not intersected comprises generating an indication that the non-leaf node is not intersected by the ray.

6. The method of claim 5 , further comprising:

transmitting the indication to a traversal unit in response to the traversal unit requesting the ray be tested for intersection against the non-leaf node.

7. The method of claim 6 , wherein the traversal unit is configured to execute a traversal shader program that requests the ray be tested for intersection against the non-leaf node as part of the ray-intersection test.

8. The method of claim 1 , further comprising:

performing the reading, identifying, and determining steps for multiple nodes of the bounding volume hierarchy during traversal of the bounding volume hierarchy.

9. The method of claim 8 , further comprising:

for intersection tests of the ray against non-leaf nodes for which it is determined that the ray does not intersect the non-leaf node, foregoing considering children of that non-leaf node.

10. A system, comprising:

an acceleration structure traversal stage configured to:

read descendant-shared type metadata for a non-leaf node of a bounding volume hierarchy, wherein the descendant-shared type metadata includes type information other than geometry defining a bounding box for the non-leaf node, wherein the type information is common among all descendant leaf nodes of the non-leaf node,

identify one or more culling types for a ray-intersection test for a ray, and

determine whether to treat the non-leaf node as not intersected based on whether the one or more culling types includes at least one type specified by the descendant-shared type metadata; and

a memory configured to store at least a part of the bounding volume hierarchy.

11. The system of claim 10 , wherein:

the one or more culling types includes at least one type specified by the descendant-shared type metadata; and

determining whether to treat the non-leaf node as not intersected comprises determining to treat the non-leaf node as not intersected.

12. The system of claim 10 , wherein:

the one or more culling types includes no types specified by the descendant-shared type metadata; and

determining whether to treat the non-leaf node as not intersected comprises not determining to treat the non-leaf node as not intersected.

13. The system of claim 10 , wherein:

the one or more culling types include one or more of triangle, procedural geometry, opaque geometry, and non-opaque geometry.

14. The system of claim 10 , wherein:

treating the non-leaf node as not intersected comprises generating an indication that the non-leaf node is not intersected by the ray.

15. The system of claim 14 , wherein the acceleration structure traversal stage is further configured to:

transmit the indication to a traversal unit in response to the traversal unit requesting the ray be tested for intersection against the non-leaf node.

16. The system of claim 15 , wherein the traversal unit is configured to execute a traversal shader program that requests the ray be tested for intersection against the non-leaf node as part of the ray-intersection test.

17. The system of claim 10 , wherein the acceleration structure traversal stage is further configured to:

perform the reading, identifying, and determining steps for multiple nodes of the bounding volume hierarchy during traversal of the bounding volume hierarchy.

18. The system of claim 17 , wherein the acceleration structure traversal stage is further configured to:

for intersection tests of the ray against non-leaf nodes for which it is determined that the ray does not intersect the non-leaf node, forego considering children of that non-leaf node.

19. A non-transitory computer-readable medium storing instructions that, when executed by a processor, causes the processor to:

read descendant-shared type metadata for a non-leaf node of a bounding volume hierarchy, wherein the descendant-shared type metadata includes type information other than geometry defining a bounding box for the non-leaf node, wherein the type information is common among all descendant leaf nodes of the non-leaf node;

identify one or more culling types for a ray-intersection test for a ray; and

determine whether to treat the non-leaf node as not intersected based on whether the one or more culling types includes at least one type specified by the descendant-shared type metadata.

20. The non-transitory computer-readable medium of claim 19 , wherein:

the one or more culling types includes at least one type specified by the descendant-shared type metadata; and

the determination of whether to treat the non-leaf node as not intersected comprises determining to treat the non-leaf node as not intersected.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2021
From: SALEH, SKYLER JONATHON; BHANDARE, SAGAR S.; GHODRAT, FATANEH F.; VELLA, PAUL RAYMOND
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 056892/0115 →
Continuity (2)
Provisional Application 63044686 · Jun 26, 2020
Related Publication 20210407175A1 · Dec 30, 2021
Cited By (1)
US 12,236,518