US-12626448-B2 - Discrete rotations for oriented bounding boxes based on platonic solids
Abstract
A technique for performing ray tracing operations is provided. The technique includes arriving at a bounding box of a bounding volume hierarchy (“BVH”) having an orientation defined based on a platonic solid; testing a ray for intersection with the bounding box; and continuing traversal of the BVH based on results of the testing.
Inventors
- Michael Alexander Kern
- Matthäus G. Chajdas
- Daniel James Skinner
Assignees
- ADVANCED MICRO DEVICES, INC.
Dates
- Publication Date
- 20260512
- Application Date
- 20231214
Claims (18)
- 1 . A system for performing ray tracing operations, the system comprising: a memory configured to store data for a bounding volume hierarchy (“BVH”); and a processor configured to: arrive at a bounding box of the BVH, the bounding box having an orientation that is not axis aligned and that is defined based on a platonic solid, wherein the orientation is selected based on a vector extending from a center of the platonic solid to a face, a child face, a vertex, an edge midpoint, or a face midpoint of the platonic solid; test a ray for intersection with the bounding box; and continue traversal of the BVH based on results of the testing.
- 2 . The system of claim 1 , wherein each oriented bounding box of the BVH has an orientation that is based on a quantization space.
- 3 . The system of claim 1 , wherein the orientation includes a plurality of directions, each of which is within a quantization space.
- 4 . The system of claim 1 , wherein the orientation includes a first direction within a quantization space and two directions that are perpendicular to the first direction.
- 5 . The system of claim 1 , wherein the processor is further configured to build the BVH by selecting orientations based on a quantization space for each oriented bounding box of the BVH.
- 6 . The system of claim 1 , wherein the platonic solid includes one of a regular tetrahedron, a cube, a regular octahedron, a regular dodecahedron, or a regular icosahedron.
- 7 . A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising: arriving at a bounding box of a bounding volume hierarchy (“BVH”), the bounding box having an orientation that is not axis aligned and that is defined based on a platonic solid, wherein the orientation is selected based on a vector extending from a center of the platonic solid to a face, a child face, a vertex, an edge midpoint, or a face midpoint of the platonic solid; testing a ray for intersection with the bounding box; and continuing traversal of the BVH based on results of the testing.
- 8 . The non-transitory computer-readable medium of claim 7 , wherein each oriented bounding box of the BVH has an orientation that is based on a quantization space.
- 9 . The non-transitory computer-readable medium of claim 7 , wherein the orientation includes a plurality of directions, each of which is within a quantization space.
- 10 . The non-transitory computer-readable medium of claim 7 , wherein the orientation includes a first direction within a quantization space and two directions that are perpendicular to the first direction.
- 11 . The non-transitory computer-readable medium of claim 7 , wherein the operations further comprise building the BVH by selecting orientations based on a quantization space for each oriented bounding box of the BVH.
- 12 . The non-transitory computer-readable medium of claim 7 , wherein the platonic solid includes one of a regular tetrahedron, a regular octahedron, a regular dodecahedron, or a regular icosahedron.
- 13 . A method for performing ray tracing operations, the method comprising: arriving at a bounding box of a bounding volume hierarchy (“BVH”), the bounding box having an orientation that is not axis aligned and that is defined based on a platonic solid, wherein the orientation is selected based on a vector extending from a center of the platonic solid to a face, a child face, a vertex, an edge midpoint, or a face midpoint of the platonic solid; testing a ray for intersection with the bounding box; and continuing traversal of the BVH based on results of the testing.
- 14 . The method of claim 1 , wherein each oriented bounding box of the BVH has an orientation that is based on a quantization space.
- 15 . The method of claim 1 , wherein the orientation includes a plurality of directions, each of which is within a quantization space.
- 16 . The method of claim 1 , wherein the orientation includes a first direction within a quantization space and two directions that are perpendicular to the first direction.
- 17 . The method of claim 1 , further comprising building the BVH by selecting orientations based on a quantization space for each oriented bounding box of the BVH.
- 18 . The method of claim 13 , wherein the platonic solid includes one of a regular tetrahedron, a cube, a regular octahedron, a regular dodecahedron, or a regular icosahedron.
Description
BACKGROUND Ray tracing is a rendering technique that generates an image using simulated light rays. Improvements to ray tracing techniques are constantly being made. BRIEF DESCRIPTION OF THE DRAWINGS A more detailed understanding can be had from the following description, given by way of example in conjunction with the accompanying drawings wherein: FIG. 1 is a block diagram of an example device in which one or more features of the disclosure can be implemented; FIG. 2 is a block diagram of the device of FIG. 1, illustrating additional detail, according to an example; FIG. 3 illustrates a ray tracing pipeline for rendering graphics using a ray tracing technique, according to an example; FIG. 4 is an illustration of a bounding volume hierarchy (“BVH”), according to an example; FIG. 5 illustrates an example well-fit bounding box and an example poorly-fit bounding box; FIG. 6 illustrates techniques for generating a bounding volume hierarchy having oriented bounding boxes, according to an example; FIGS. 7A-7E illustrate example platonic solids for quantizing oriented bounding boxes; and FIG. 8 is a flow diagram of a method for performing ray tracing with a bounding volume hierarchy having an oriented bounding box with an orientation defined with respect to a platonic solid, according to an example. DETAILED DESCRIPTION A technique for performing ray tracing operations is provided. The technique includes arriving at a bounding box of a bounding volume hierarchy (“BVH”) having an orientation defined based on a platonic solid; testing a ray for intersection with the bounding box; and continuing traversal of the BVH based on results of the testing. FIG. 1 is a block diagram of an example computing device 100 in which one or more features of the disclosure can be implemented. In various examples, the computing device 100 is one of, but is not limited to, for example, a computer, a gaming device, a handheld device, a set-top box, a television, a mobile phone, a tablet computer, or other computing device. The device 100 includes, without limitation, one or more processors 102, a memory 104, one or more auxiliary devices 106, and a storage 108. An interconnect 112, which can be a bus, a combination of buses, and/or any other communication component, communicatively links the one or more processors 102, the memory 104, the one or more auxiliary devices 106, and the storage 108. In various alternatives, the one or more processors 102 include a central processing unit (CPU), a graphics processing unit (GPU), a CPU and GPU located on the same die, or one or more processor cores, wherein each processor core can be a CPU, a GPU, or a neural processor. In various alternatives, at least part of the memory 104 is located on the same die as one or more of the one or more processors 102, such as on the same chip or in an interposer arrangement, and/or at least part of the memory 104 is located separately from the one or more processors 102. The memory 104 includes a volatile or non-volatile memory, for example, random access memory (RAM), dynamic RAM, or a cache. The storage 108 includes a fixed or removable storage, for example, without limitation, a hard disk drive, a solid state drive, an optical disk, or a flash drive. The one or more auxiliary devices 106 include, without limitation, one or more auxiliary processors 114, and/or one or more input/output (“IO”) devices. The auxiliary processors 114 include, without limitation, a processing unit capable of executing instructions, such as a central processing unit, graphics processing unit, parallel processing unit capable of performing compute shader operations in a single-instruction-multiple-data form, multimedia accelerators such as video encoding or decoding accelerators, or any other processor. Any auxiliary processor 114 is implementable as a programmable processor that executes instructions, a fixed function processor that processes data according to fixed hardware circuitry, a combination thereof, or any other type of processor. The one or more auxiliary devices 106 includes an accelerated processing device (“APD”) 116. The APD 116 may be coupled to a display device, which, in some examples, is a physical display device or a simulated device that uses a remote display protocol to show output. The APD 116 is configured to accept compute commands and/or graphics rendering commands from processor 102, to process those compute and graphics rendering commands, and, in some implementations, to provide pixel output to a display device for display. As described in further detail below, the APD 116 includes one or more parallel processing units configured to perform computations in accordance with a single-instruction-multiple-data (“SIMD”) paradigm. Thus, although various functionality is described herein as being performed by or in conjunction with the APD 116, in various alternatives, the functionality described as being performed by the APD 116 is additionally or alternative