IP Library Granted Patent US 12694605
Granted Patent B2
US 12694605 · App. 18/405,191 · Granted Jul 28, 2026

Bounding volume hierarchy with bounding volumes in prior space corresponding to subset of transform sub-tree bounds

Inventors: Ali Rabbani Rankouhi (Bushey, GB); David J. Bermingham (Cambridge, GB)
Assignee: Apple Inc.
G06T15/06G06T17/005G06T2210/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 12694605
App. No.
18/405,191
Granted
Jul 28, 2026
Kind
B2
Abstract

Techniques are disclosed relating to ray tracing, e.g., in graphics processors. Ray tracing embodiments may utilize a bounding volume hierarchy (BVH) acceleration data structure (ADS) that includes a hierarchy of bounding volumes. A graphics processor may traverse the ADS, testing for intersections with bounding volumes, to determine which primitives to test for a given ray. Some nodes may be transform nodes (e.g., instance nodes) that correspond to a ray transform before further traversal. In disclosed embodiment, one or more levels below the transform node may be reverse transformed and included above the transform node. This may advantageously avoid a ray transform operation for rays that would not have hit in the first one or more levels of the transform sub-tree.

Claims (50)

1 . An apparatus, comprising:

processor circuitry configured to:

access graphics data that indicates coordinates of primitives in a graphics scene;

generate, based on the graphics data, a bounding volume hierarchy (BVH) acceleration data structure (ADS) that includes:

a transform node;

one or more ancestor nodes, of the transform node, that define bounding volumes in a first coordinate space; and

levels of descendent nodes, of the transform node, wherein the descendent nodes define bounding volumes in a second coordinate space, wherein the bounding volumes in the second coordinate space include a first bounding volume and one or more of the ancestor nodes define, in the first coordinate space, a copy of the first bounding volume, wherein the copy corresponds to a transform of the first bounding volume from the second coordinate space to the first coordinate space and wherein the first bounding volume is smaller than a bounding volume corresponding to the transform node;

traverse the ADS, including to determine whether to traverse to the levels of descendent nodes based on whether there are any intersections between a ray and the bounding volumes defined by the one or more ancestor nodes, including whether there was an intersection between the ray and the copy of the first bounding volume; and

determine one or more primitives to test for intersection by the ray based on the traversal.

2 . The apparatus of claim 1 , wherein the processor circuitry is configured to:

transform coordinates of a first ray to the second coordinate space and traverse the ADS to the transform node in response to a determination of an intersect between the first ray and at least one copy of a bounding volume defined by the ancestor nodes;

skip traversal of the transform node for a second ray based on a determination that the second ray does not intersect the first bounding volume.

3 . The apparatus of claim 1 , wherein the processor circuitry includes:

execution circuitry configured to execute one or more programs to generate the ADS; and

dedicated ray intersect circuitry configured to traverse the ADS, including to test the ray for intersection with multiple bounding volumes in parallel.

4 . The apparatus of claim 1 , wherein the ancestor nodes further define, in the first coordinate space, copies of bounding volumes from multiple levels of the levels of descendant nodes.

5 . The apparatus of claim 1 , wherein the first coordinate space is a world space and the second coordinate space is an instance space.

6 . The apparatus of claim 1 , wherein the first bounding volume is included in an ancestor node that corresponds to the same bounding volume as the transform node.

7 . The apparatus of claim 1 , wherein the processor circuitry is configured to determine a number of levels of descendent nodes having copies of bounding volumes stored in ancestor nodes based on one or more characteristics of the levels of descendent nodes.

8 . The apparatus of claim 1 , wherein at least a first node of the one or more ancestor nodes includes link information for traversal directly from the first node to one of the descendent nodes.

9 . The apparatus of claim 1 , wherein the apparatus is a computing device that further includes:

a central processing unit;

a display; and

network interface circuitry.

10 . A method, comprising:

accessing, by a computing system, graphics data that indicates coordinates of primitives in a graphics scene;

generating, by the computing system based on the graphics data, a bounding volume hierarchy (BVH) acceleration data structure (ADS) that includes:

a transform node;

one or more ancestor nodes, of the transform node, that define bounding volumes in a first coordinate space; and

levels of descendent nodes, of the transform node, wherein the descendent nodes define bounding volumes in a second coordinate space, wherein the bounding volumes in the second coordinate space include a first bounding volume and one or more of the ancestor nodes define, in the first coordinate space, a copy of the first bounding volume, wherein the copy corresponds to a transform of the first bounding volume from the second coordinate space to the first coordinate space and wherein the first bounding volume is smaller than a bounding volume corresponding to the transform node; traversing, by the computing system, the ADS, including determining whether to traverse to the levels of descendent nodes based on whether there are any intersections between a ray and the bounding volumes defined by the one or more ancestor nodes, including whether there was an intersection between the ray and the copy of the first bounding volume; and

determining one or more primitives to test for intersection by the ray based on the traversal.

11 . The method of claim 10 , further comprising:

skipping, by the computing system, traversal of the transform node for the ray based on a determination that the ray does not intersect the first bounding volume.

12 . The method of claim 10 , wherein the one or more ancestor nodes further define, in the first coordinate space, copies of bounding volumes from multiple levels of the levels of descendant nodes.

13 . The method of claim 10 , wherein the first coordinate space is a first instance space and the second coordinate space is a second instance space.

14 . The method of claim 10 , wherein the first bounding volume is included in an ancestor node that corresponds to the same bounding volume as the transform node.

15 . A non-transitory computer-readable medium having instructions stored thereon that are executable by a computing device to perform operations comprising:

accessing, by a computing system, graphics data that indicates coordinates of primitives in a graphics scene;

generating, by the computing system based on the graphics data, a bounding volume hierarchy (BVH) acceleration data structure (ADS) that includes:

a transform node;

one or more ancestor nodes, of the transform node, that define bounding volumes in a first coordinate space; and

levels of descendent nodes, of the transform node, wherein the descendent nodes define bounding volumes in a second coordinate space, wherein the bounding volumes in the second coordinate space include a first bounding volume and one or more of the ancestor nodes define, in the first coordinate space, a copy of the first bounding volume, wherein the copy corresponds to a transform of the first bounding volume from the second coordinate space to the first coordinate space and wherein the first bounding volume is smaller than a bounding volume corresponding to the transform node; traversing, by the computing system, the ADS, including determining whether to traverse to the levels of descendent nodes based on whether there are any intersections between a ray and the bounding volumes defined by the one or more ancestor nodes, including whether there was an intersection between the ray and the copy of the first bounding volume; and

determining one or more primitives to test for intersection by the ray based on the traversal.

16 . The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

skipping traversal of the transform node for the ray based on a determination that the ray does not intersect the first bounding volume.

17 . The non-transitory computer-readable medium of claim 15 , wherein the one or more ancestor nodes further define, in the first coordinate space, copies of bounding volumes from multiple levels of the levels of descendant nodes.

18 . The non-transitory computer-readable medium of claim 15 , wherein the first coordinate space is a first instance space and the second coordinate space is a second instance space.

19 . The non-transitory computer-readable medium of claim 15 , wherein the first bounding volume is included in an ancestor node that corresponds to the same bounding volume as the transform node.

20 . The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

determining a number of levels of descendent nodes having copies of bounding volumes stored in ancestor nodes based on one or more characteristics of the levels of descendent nodes.