Intersectable instance nodes for ray tracing acceleration structure nodes
A technique for performing ray tracing operations is provided. The technique includes, in a first iteration of a ray traversal technique, traversing to an instance node of a bounding volume hierarchy; in a second iteration of the ray traversal technique that is subsequent to the first iteration, transforming a ray based on an instance transform of the instance node to generate a transformed ray; and in the second iteration, performing a ray-box intersection test for box node data of the instance node based on the transformed ray.
1 . A method for performing ray tracing operations, the method comprising:
in a first iteration of a ray traversal technique, traversing to an instance node of a bounding volume hierarchy, the instance node including an instance transform and a plurality of bounding volumes, each bounding volume bounding and pointing to different geometry of the same bottom-level acceleration structure, wherein the instance transform indicates how to transform geometry of the bottom-level acceleration structure and the bottom-level acceleration structure is pointed to by multiple instance nodes of the bounding volume hierarchy;
in a second iteration of the ray traversal technique that is subsequent to the first iteration, transforming a ray based on the instance transform to generate a transformed ray; and
in the second iteration, performing a ray-box intersection test for box node data of the instance node based on the transformed ray.
2 . The method of claim 1 , wherein traversing to the instance node is performed in response to encountering a pointer to the instance node during traversal of the bounding volume hierarchy.
3 . The method of claim 1 , wherein transforming the ray includes performing one or more of translation, scaling, or shearing of the ray.
4 . The method of claim 1 , further comprising:
during each iteration of the ray traversal technique, fetching one or more nodes of the bounding volume hierarchy from a working set, testing the ray for intersection against the one or more nodes, and storing intersected nodes of the one or more nodes into the working set.
5 . The method of claim 1 , wherein performing the ray-box intersection test comprises determining whether the transformed ray intersects the box node data.
6 . The method of claim 1 , wherein the instance node points to a root node of an acceleration structure.
7 . The method of claim 1 , wherein the box node data includes a bounding box and a box node pointer.
8 . The method of claim 1 , wherein the instance node includes box node data for a smaller number of box nodes than a box node of the bounding volume hierarchy.
9 . The method of claim 1 , further comprising:
shading pixels based on results of traversal of the bounding volume hierarchy.
10 . A system for performing ray tracing operations, the system comprising:
a memory configured to store a bounding volume hierarchy; and
a processor configured to perform operations comprising:
in a first iteration of a ray traversal technique, traversing to an instance node of the bounding volume hierarchy, the instance node including an instance transform and a plurality of bounding volumes, each bounding volume bounding and pointing to different geometry of the same bottom-level acceleration structure,, wherein the instance transform indicates how to transform geometry of the bottom-level acceleration structure and the bottom-level acceleration structure is pointed to by multiple instance nodes of the bounding volume hierarchy;
in a second iteration of the ray traversal technique that is subsequent to the first iteration, transforming a ray based on the instance transform to generate a transformed ray; and
in the second iteration, performing a ray-box intersection test for box node data of the instance node based on the transformed ray.
11 . The system of claim 10 , wherein traversing to the instance node is performed in response to encountering a pointer to the instance node during traversal of the bounding volume hierarchy.
12 . The system of claim 10 , wherein transforming the ray includes performing one or more of translation, scaling, or shearing of the ray.
13 . The system of claim 10 , wherein the processor is further configured to:
during each iteration of the ray traversal technique, fetch one or more nodes of the bounding volume hierarchy from a working set, testing the ray for intersection against the one or more nodes, and storing intersected nodes of the one or more nodes into the working set.
14 . The system of claim 10 , wherein performing the ray-box intersection test comprises determining whether the transformed ray intersects the box node data.
15 . The system of claim 10 , wherein the instance node points to a root node of an acceleration structure.
16 . The system of claim 10 , wherein the box node data includes a bounding box and a box node pointer.
17 . The system of claim 10 , wherein the instance node includes box node data for a smaller number of box nodes than a box node of the bounding volume hierarchy.
18 . The system of claim 10 , wherein the processor is further configured to:
shade pixels based on results of traversal of the bounding volume hierarchy.
19 . A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:
in a first iteration of a ray traversal technique, traversing to an instance node of a bounding volume hierarchy, the instance node including an instance transform and a plurality of bounding volumes, each bounding volume bounding and pointing to different geometry of the same bottom-level acceleration structure, wherein the instance transform indicates how to transform geometry of the bottom-level acceleration structure and the bottom-level acceleration structure is pointed to by multiple instance nodes of the bounding volume hierarchy;
in a second iteration of the ray traversal technique that is subsequent to the first iteration, transforming a ray based on the instance transform to generate a transformed ray; and
in the second iteration, performing a ray-box intersection test for box node data of the instance node based on the transformed ray.
20 . The non-transitory computer-readable medium of claim 19 , wherein traversing to the instance node is performed in response to encountering a pointer to the instance node during traversal of the bounding volume hierarchy.