IP Library Granted Patent US 12,469,203
Granted Patent B2
US 12,469,203 · App. 17/946,509 · Granted Nov 11, 2025

Efficiency of ray-box tests

Inventors: Gregory Muthler (Chapel Hill, NC); John Burgess (Austin, TX); Eric Enderton (Berkeley, CA); Nikhil Dixit (Austin, TX); Josh Noel (San Jose, CA)
Assignee: NVIDIA Corporation
G06T15/06
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 12,469,203
App. No.
17/946,509
Granted
Nov 11, 2025
Kind
B2
Abstract

To improve the efficiency of bounding volumes in a hardware based ray tracer, we employ a sheared axis-aligned bounding box to approximate an oriented bounding box typically defined by rotations. To achieve this, the bounding volume hierarchy builder shears an axis-aligned box to fit tightly around its enclosed oriented geometry in top level or bottom level space, then computes the inverse shear transform. The bounds are still stored as axis-aligned boxes in memory, now defined in the new sheared coordinate system, along with the derived parameters to transform a ray into the sheared coordinate system before testing intersection with the boxes. The ray-bounding volume intersection test is performed as usual, just in the new sheared coordinate system. Additional efficiencies are gained by constraining the number of shear dimensions, constraining the shear transform coefficients to a quantized list, sharing a shear transform across a collection of bounds, performing a shear transform only for ray-bounds testing and not for ray-geometry intersection testing, and adding a specialized shear transform calculator/accelerator to the hardware.

Claims (62)

1 . A method of building an acceleration structure performed by at least one processor, comprising:

determining that orienting a bounding volume in a different coordinate space will more closely fit geometry; and

storing, in association with the geometry, parameters of a transform configured for use in transforming at least one ray to be tested for intersection against the oriented bounding volume in an intersection coordinate system, thereby equivalently transforming the bounding volume so it becomes axis-aligned in the intersection coordinate system,

wherein the storing comprises storing the parameters in a complet defining a plurality of objects, and the parameters are configured to apply locally to the complet.

2 . The method of claim 1 wherein the different coordinate space comprises a shear space, and the transform comprises an inverse shear transform.

3 . The method of claim 1 wherein determining includes selecting the transform from a constrained quantized list.

4 . The method of claim 1 wherein the transform is constrained to be one-dimensional.

5 . The method of claim 1 wherein the transform is constrained to be two-dimensional with only two coefficients.

6 . The method of claim 1 wherein the stored parameters comprise an index into a list of quantized transforms.

7 . The method of claim 1 wherein the stored parameters comprise a selector configured to select between power-of-two coefficients.

8 . A ray tracer configured to perform, with hardware circuitry, operations comprising:

receiving a specification of a bounding volume;

receiving parameters that define a transform associated with the bounding volume;

receiving a specification of a ray;

transforming the ray using the defined transform, thereby equivalently transforming the bounding volume so it becomes axis-aligned; and

testing whether the transformed ray intersects the axis-aligned bounding volume,

wherein the hardware circuitry comprises a hardware calculator configured to transform the ray, the hardware calculator configured to derive a reciprocal of the transformed ray for intersection testing.

9 . The ray tracer of claim 8 wherein the received parameters define an inverse shear transform.

10 . The ray tracer of claim 8 wherein the received parameters select between power-of-two coefficients.

11 . The ray tracer of claim 8 wherein the received parameters constrain the transform to a single axis transform or a two-axis transform requiring at most two coefficients.

12 . The ray tracer of claim 8 wherein the hardware calculator comprises integer exponent adders and a further adder.

13 . The ray tracer of claim 12 wherein the further adder comprises a floating point adder.

14 . The ray tracer of claim 8 wherein the hardware calculator is further configured to transform the origin and direction of the ray.

15 . The ray tracer of claim 8 wherein:

the ray tracer is further configured to receive the parameters that define a transform associated with the bounding volume within a complet that defines or is associated with geometry; and

the ray tracer is further configured to apply the transformed ray to the geometry defined or associated with the complet and then discard the transformed ray.

16 . A ray tracer configured to perform, with hardware circuitry, operations comprising:

receiving a specification of a bounding volume;

receiving parameters that define a shear transform associated with the bounding volume;

receiving a specification of a ray;

applying the shear transform to the bounding volume or the ray; and

testing, along axes within shear space, whether the ray intersects the bounding volume,

wherein the hardware circuitry comprises a hardware transform calculator comprising hardware that derives a reciprocal for intersection testing.

17 . The ray tracer of claim 16 wherein the applying is configured to apply the shear transform to the ray.

18 . The ray tracer of claim 16 wherein the received parameters define an inverse shear transform.

19 . The ray tracer of claim 16 wherein the received parameters select between power-of-two coefficients.

20 . The ray tracer of claim 16 wherein the received parameters constrain the transform to a single axis transform or a two-axis transform requiring at most two coefficients.

21 . The ray tracer of claim 16 wherein the hardware transform calculator comprises integer exponent adders and a further adder.

22 . The ray tracer of claim 21 wherein the further adder comprises a floating point adder.

23 . The ray tracer of claim 16 wherein the hardware transform calculator is further configured to transform the origin and direction of the ray.

24 . A ray tracer configured to perform, with hardware circuitry, operations comprising:

receiving a specification of a bounding volume;

receiving parameters that define a shear transform associated with the bounding volume;

receiving a specification of a ray;

applying the shear transform to the bounding volume or the ray; and

testing, along axes within shear space, whether the ray intersects the bounding volume:

wherein the ray tracer is further configured to receive the parameters that define a transform associated with the bounding volume within a complet that defines or is associated with geometry; and

the ray tracer is further configured to discard results of the transform after processing the geometry the complet defines or is associated with.

25 . A ray tracer comprising:

first hardware circuitry configured to transform a ray using a first transform and test for intersection against an axis-aligned bounding volume enclosing geometry; and

second hardware circuitry configured to, in response to the first hardware circuitry detecting an intersection, transform the ray using a second transform different from the first transform and test for intersection against the geometry;

wherein the first transform comprises an inverse shear transform and the first hardware circuitry comprises a hardware transform calculator comprising hardware that derives a reciprocal for intersection testing.

26 . A hardware based ray tracing method with improve efficiency of bounding volumes, the method comprising:

receiving bounds of an axis-aligned bounding box sheared to fit around enclosed oriented geometry in top level or bottom level space, the sheared axis-aligned bounding box approximating an oriented bounding box typically defined by rotations;

receiving parameters derived from or representing an inverse of a shear transform;

using the received parameters to transform a ray into a sheared coordinate system including:

constraining the number of shear dimensions,

constraining the shear transform coefficients to a quantized list,

sharing a shear transform across a collection of bounds,

performing a shear transform only for ray-bounds testing and not for ray-geometry intersection testing, and

performing the using with a specialized shear transform calculator/accelerator circuit; and

testing the transformed ray in the sheared coordinate system for intersection with the sheared axis-aligned bounding boxes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2022
From: MUTHLER, GREGORY; BURGESS, JOHN; ENDERTON, ERIC; DIXIT, NIKHIL; NOEL, JOSH
To: NVIDIA CORPORATION
Reel/Frame 062133/0621 →
Continuity (1)
Related Publication 20240095996A1 · Mar 21, 2024
References Cited (38)
US 9569559B2 · Karras et al. · 2017 [cited by applicant]
US 9582607B2 · Laine et al. · 2017 [cited by applicant]
US 10025879B2 · Karras et al. · 2018 [cited by applicant]
US 10032289B2 · Laine et al. · 2018 [cited by applicant]
US 10235338B2 · Laine et al. · 2019 [cited by applicant]
US 10242485B2 · Karras et al. · 2019 [cited by applicant]
US 10580196B1 · Muthler et al. · 2020 [cited by applicant]
US 10740952B2 · Laine et al. · 2020 [cited by applicant]
US 10810785B2 · Muthler et al. · 2020 [cited by applicant]
US 10825230B2 · Laine et al. · 2020 [cited by applicant]
US 10825232B2 · Muthler et al. · 2020 [cited by applicant]
US 10866990B2 · Lehtinen et al. · 2020 [cited by applicant]
US 10867429B2 · Laine et al. · 2020 [cited by applicant]
US 10885698B2 · Muthler et al. · 2021 [cited by applicant]
US 11113790B2 · Marrs et al. · 2021 [cited by applicant]
US 11138009B2 · Babich, Jr. et al. · 2021 [cited by applicant]
US 11157414B2 · Muthler et al. · 2021 [cited by applicant]
US 11164360B2 · Laine et al. · 2021 [cited by applicant]
US 11189075B2 · Laine et al. · 2021 [cited by applicant]
US 11200725B2 · Muthler et al. · 2021 [cited by applicant]
US 11282261B2 · Muthler et al. · 2022 [cited by applicant]
US 11295508B2 · Muthler et al. · 2022 [cited by applicant]
US 11302056B2 · Muthler et al. · 2022 [cited by applicant]
US 11328472B2 · Laine et al. · 2022 [cited by applicant]
US 20160005215A1 · Hwang · 2016 [cited by examiner]
US 20160070767A1 · Karras et al. · 2016 [cited by applicant]
US 20160070820A1 · Laine et al. · 2016 [cited by applicant]
US 20210012552A1 · Laine et al. · 2021 [cited by applicant]
US 20210390759A1 · Muthler et al. · 2021 [cited by applicant]
US 20220207690A1 · Burns · 2022 [cited by examiner]
US 20230099806A1 · Oldcorn · 2023 [cited by examiner]
US 20230206541A1 · Saleh · 2023 [cited by examiner]
Wikipedia, Rotation matrix, pp. 26, URL: https://en.wikipedia.org/w/index.php?title=Rotation_matrix&oldid=1038415306 (Year: 2021). [cited by examiner]
Sjoholm, “Best Practices: Using NVIDIA RTX Ray Tracing”, https://developer.nvidia.com/blog/best-practices-using-nvidia-rtx-ray-tracing/ (Aug. 10, 2020). [cited by applicant]
Lefrançois et al., “DX12 Raytracing tutorial—Part 1” https://developer.nvidia.com/rtx/raytracing/dxr/dx12-raytracing-tutorial-part-1 (2018). [cited by applicant]
Wyman et al, “Introduction to DirectX Raytracing” In: Haines, E., Akenine-Moller, T. (eds) Ray Tracing Gems. Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-4427-2_3; (2019). [cited by applicant]
Gottshalk et al, OBBTree: A Hierarchical Structure for Rapid Interference Detection, pp. 171-180 SIGGRAPH '96: Proceedings of the 23rd Annual Conference on Computer Graphics and Interactive Techniques, doi.org/10.1145/2… [cited by applicant]
Woop, “A Ray Tracing Hardware Architecture for Dynamic Scenes”, Universitat des Saarlandes (2004). [cited by applicant]