IP Library › Granted Patent US 12,266,047
Granted Patent B2
US 12,266,047 · App. 18/239,679 · Granted Apr 1, 2025

Intersection testing in a ray tracing system using three-dimensional axis-aligned box

Inventors: Gregory Clark (Hertfordshire, GB); Simon Fenney (Hertfordshire, GB)
Assignee: Imagination Technologies Limited
G06T15/06G06T15/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 12,266,047
App. No.
18/239,679
Granted
Apr 1, 2025
Kind
B2
Abstract

Methods and intersection testing modules are provided for determining, in a ray tracing system, whether a ray intersects a 3D axis-aligned box representing a volume defined by a front-facing plane and a back-facing plane for each dimension. The front-facing plane of the box which intersects the ray furthest along the ray is identified. It is determined whether the ray intersects the identified front-facing plane at a position that is no further along the ray than positions at which the ray intersects the back-facing planes in a subset of the dimensions, and this determination is used to determine whether the ray intersects the axis-aligned box. The subset of dimensions comprises the two dimensions for which the front-facing plane was not identified, but does not comprise the dimension for which the front-facing plane was identified. It is determined whether the ray intersects the box without performing a test to determine whether the ray intersects the identified front-facing plane at a position that is no further along the ray than a position at which the ray intersects the back-facing plane in the dimension for which the front-facing plane was identified.

Claims (62)

1. A method of determining, in a ray tracing system, whether a ray intersects a three-dimensional axis-aligned box, wherein the box represents a volume defined by a front-facing plane and a back-facing plane for each dimension of the three-dimensional axis-aligned box, the method comprising:

identifying which of the front-facing planes intersects the ray at a position that is furthest along a direction of the ray; and

determining whether the ray intersects the axis-aligned box in dependence on comparing (i) the position at which the ray intersects the identified front-facing plane with (ii) at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified;

wherein the method determines whether the ray intersects the box without comparing the position at which the ray intersects the identified front-facing plane with a position at which the ray intersects the back-facing plane in the dimension for which the front-facing plane was identified.

2. The method of claim 1 , wherein said steps of identifying which of the front-facing planes of the box intersects the ray at a position that is furthest along a direction of the ray and comparing (i) the position at which the ray intersects the identified front-facing plane with (ii) the at least one position at which the ray intersects one of the back-facing planes are performed without computing intersection distances to any of the planes of the box.

3. The method of claim 1 , wherein said identifying which of the front-facing planes of the box intersects the ray at a position that is furthest along the direction of the ray comprises:

performing a first front-facing test to determine which of a first front-facing plane and a second front-facing plane of the box the ray intersects furthest along the ray; and

performing a second front-facing test to determine which of the determined front-facing plane and a third front-facing plane of the box the ray intersects furthest along the ray, thereby identifying which of the front-facing planes of the box intersects the ray furthest along the ray.

4. The method of claim 1 , wherein said identifying which of the front-facing planes of the box intersects the ray at a position that is furthest along the direction of the ray comprises:

performing a first front-facing test to determine which of a first front-facing plane and a second front-facing plane of the box intersects the ray at a position that is furthest along the ray;

performing a second front-facing test to determine which of the first front-facing plane and a third front-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray;

performing a third front-facing test to determine which of the second front-facing plane and the third front-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray; and

using the results of the first, second and third front-facing tests to identify which of the front-facing planes of the box intersects the ray at a position that is furthest along the direction of the ray.

5. The method of claim 1 , wherein the step of comparing (i) the position at which the ray intersects the identified front-facing plane with (ii) the at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified comprises determining whether the position at which the ray intersects the identified front-facing plane is no further along the ray than the at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified.

6. The method of claim 5 , wherein said determining whether the position at which the ray intersects the identified front-facing plane is no further along the ray than the at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified comprises:

performing a first mixed-facing test to determine which of the identified front-facing plane and a first back-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray, wherein the first back-facing plane of the box is a back-facing plane for a first dimension of the two dimensions for which the front-facing plane was not identified;

performing a second mixed-facing test to determine which of the identified front-facing plane and a second back-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray, wherein the second back-facing plane of the box is a back-facing plane for a second dimension of the two dimensions for which the front-facing plane was not identified; and

using the results of the first and second mixed-facing tests to determine whether the position at which the ray intersects the identified front-facing plane is no further along the ray than the at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified.

7. The method of claim 5 , wherein said determining whether the position at which the ray intersects the identified front-facing plane is no further along the ray than the at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified comprises:

performing a back-facing test to determine which of a first back-facing plane and a second back-facing plane of the box intersects the ray at a position that is the least far along the direction of the ray, wherein the first back-facing plane and the second back-facing plane each have a respective dimension of the two dimensions for which the front-facing plane was not identified;

performing a mixed-facing test to determine which of the identified front-facing plane and the determined back-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray; and

using the result of the mixed-facing test to determine whether the position at which the ray intersects the identified front-facing plane is no further along the ray than the at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified.

8. The method of claim 1 , further comprising:

storing one or more intermediate results which are determined in said identifying which of the front-facing planes of the box intersects the ray at a position that is furthest along the direction of the ray; and

reading the stored one or more intermediate results for use in the step of comparing (i) the position at which the ray intersects the identified front-facing plane with (ii) the at least one position at which the ray intersects one of the back-facing planes.

9. The method of claim 1 , further comprising determining whether a maximum distance condition is satisfied, wherein the maximum distance condition is satisfied if a maximum valid distance of the ray from the ray origin is greater than or equal to a minimum distance from the ray origin to any intersection of the ray with a point within the box,

wherein said determining whether the ray intersects the axis-aligned box further comprises using the determination of whether the maximum distance condition is satisfied.

10. The method of claim 1 , further comprising determining whether a minimum distance condition is satisfied, wherein the minimum distance condition is satisfied if a minimum valid distance of the ray from the ray origin is less than or equal to a maximum distance from the ray origin to any intersection of the ray with a point within the box;

wherein said determining whether the ray intersects the axis-aligned box further comprises using the determination of whether the minimum distance condition is satisfied.

11. The method of claim 10 , further comprising determining whether a maximum distance condition is satisfied, wherein the maximum distance condition is satisfied if a maximum valid distance of the ray from the ray origin is greater than or equal to a minimum distance from the ray origin to any intersection of the ray with a point within the box;

wherein said determining whether the ray intersects the axis-aligned box further comprises using the determination of whether the maximum distance condition is satisfied; and

wherein said determining whether a maximum distance condition is satisfied and said determining whether a minimum distance condition is satisfied are performed in parallel with the step of comparing (i) the position at which the ray intersects the identified front-facing plane and (ii) the at least one position at which the ray intersects one of the back-facing planes.

12. The method of claim 1 , further comprising selectively reversing the axes for the components of the ray and the axis-aligned box, such that D i ≥0, D j ≥0 and D k ≥0, before identifying which of the front-facing planes of the box intersects the ray at a position that is furthest along the direction of the ray, wherein D i , D j and D k are the components of a direction vector of the ray in the i th , j th and k th dimensions respectively.

13. A method of determining, in a ray tracing system, whether a ray intersects a three-dimensional axis-aligned box, wherein the box represents a volume defined by a front-facing plane and a back-facing plane for each dimension of the three-dimensional axis-aligned box, the method comprising:

identifying which of the back-facing planes intersects the ray as a position that is the least far along a direction of the ray; and

determining whether the ray intersects the axis-aligned-box in dependence on comparing (i) the position at which the ray intersects the identified back-facing plane with (ii) at least one position at which the ray intersects one of the front-facing planes for the two dimensions for which the back-facing plane was not identified;

wherein the method determines whether the ray intersects the box without comparing the position at which the ray intersects the identified back-facing plane with a position at which the ray intersects the front-facing plane in the dimension for which back-facing plane was identified.

14. The method of claim 13 , wherein said identifying which of the back-facing planes of the box intersects the ray as a position that is the least far along the direction of the ray comprises:

performing a first back-facing test to determine which of a first back-facing plane and a second back-facing plane of the box intersects the ray intersects as a position that is the least far along the direction of the ray; and

performing a second back-facing test to determine which of the determined back-facing plane and a third back-facing plane of the box intersects the ray as a position that is the least far along the direction of the ray, thereby identifying which of the back-facing planes of the box intersects the ray at a position that is the least far along the direction of the ray.

15. The method of claim 13 , wherein said identifying which of the back-facing planes of the box intersects the ray as a position that is the least far along the direction of the ray comprises:

performing a first back-facing test to determine which of a first back-facing plane and a second back-facing plane of the box intersects the ray at a position that is the least far along the direction of the ray;

performing a second back-facing test to determine which of the first back-facing plane and a third back-facing plane of the box intersects the ray at a position that is the least far along the direction of the ray;

performing a third back-facing test to determine which of the second back-facing plane and the third back-facing plane of the box intersects the ray at a position that is the least far along the direction of the ray; and

using the results of the first, second and third back-facing tests to identify which of the back-facing planes of the box intersects the ray as a position that the least far along the direction of the ray.

16. The method of claim 13 , wherein the step of comparing (i) the position at which the ray intersects the identified back-facing plane with (ii) the at least one position at which the ray intersects one of the front-facing planes for the two dimensions for which the back-facing plane was not identified comprises determining whether the at least one position at which the ray intersects one of the front-facing planes for the two dimensions for which the back-facing plane was not identified is no further along the ray than the position at which the ray intersects the identified back-facing plane.

17. The method of claim 16 , wherein said determining whether the at least one position at which the ray intersects one of the front-facing planes for the for the two dimensions for which the back-facing plane was not identified is no further along the ray than the position at which the ray intersects the identified back-facing plane comprises:

performing a first mixed-facing test to determine which of the identified back-facing plane and a first front-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray, wherein the first front-facing plane of the box is a front-facing plane for a first dimension for the two dimensions for which the back-facing plane was not identified;

performing a second mixed-facing test to determine which of the identified back-facing plane and a second front-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray, wherein the second front-facing plane of the box is a front-facing plane for a second dimension for the two dimensions for which the back-facing plane was not identified; and

using the results of the first and second mixed-facing tests to determine whether the at least one position at which the ray intersects one of the front-facing planes for the for the two dimensions for which the back-facing plane was not identified is no further along the ray than the position at which the ray intersects the identified back-facing plane.

18. The method of claim 16 , wherein said determining whether the at least one position at which the ray intersects one of the front-facing planes for the for the two dimensions for which the back-facing plane was not identified is no further along the ray than the position at which the ray intersects the identified back-facing plane comprises:

performing a front-facing test to determine which of a first front-facing plane and a second front-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray, wherein the first front-facing plane of the box and the second front-facing plane of the box each have a respective dimension of the two dimensions for which the back-facing plane was not identified;

performing a mixed-facing test to determine which of the identified back-facing plane and the determined front-facing plane of the box intersects the ray at a position that is furthest along the direction of the ray; and

using the result of the mixed-facing test to determine whether the at least one position at which the ray intersects one of the front-facing planes for the two dimensions for which the back-facing plane was not identified is no further along the ray than the position at which the ray intersects the identified back-facing plane.

19. An intersection testing module implemented in fixed function circuitry, for use in a ray tracing system, configured to determine whether a ray intersects a three-dimensional axis-aligned box, wherein the box represents a volume defined by a front-facing plane and a back-facing plane for each dimension of the three-dimensional axis-aligned box, the intersection testing module being configured to:

identify which of the front-facing planes intersects the ray at a position that is furthest along a direction of the ray; and

determine whether the ray intersects the axis-aligned box in dependence on comparing (i) the position at which the ray intersects the identified front-facing plane with (ii) at least one position at which the ray intersects one of the back-facing planes for the two dimensions for which the front-facing plane was not identified;

wherein the intersection testing module is configured to determine whether the ray intersects the box without comparing the position at which the ray intersects the identified front-facing plane with a position at which the ray intersects the back-facing plane in the dimension for which the front-facing plane was identified.

20. An intersection testing module implemented in fixed function circuitry, for use in a ray tracing system, configured to determine whether a ray intersects a three-dimensional axis-aligned box, wherein the box represents a volume defined by a front-facing plane and a back-facing plane for each dimension of the three-dimensional axis-aligned box, the intersection testing module being configured to:

identify which of the back-facing planes intersects the ray at a position that is the least far along a direction of the ray; and

determine whether the ray intersects the axis-aligned-box in dependence on comparing (i) the position at which the ray intersects the identified back-facing plane with (ii) at least one position at which the ray intersects one of the front-facing planes for the two dimensions for which the back-facing plane was not identified;

wherein the intersection testing module is configured to determine whether the ray intersects the box without comparing the position at which the ray intersects the identified back-facing plane with a position at which the ray intersects the front-facing plane in the dimension for which back-facing plane was identified.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Priority Claims (1)
GB 2104055 · Mar 23, 2021 · national
Continuity (2)
Continuation 17701575 · Mar 22, 2022
Related Publication 20230410409A1 · Dec 21, 2023
References Cited (24)
US 8564589B1 · Aila et al. · 2013 [cited by applicant]
US 20070097118A1 · Reshetov · 2007 [cited by examiner]
US 20080043018A1 · Keller · 2008 [cited by examiner]
US 20150379756A1 · Shin · 2015 [cited by examiner]
US 20160071313A1 · Laine · 2016 [cited by examiner]
US 20180182158A1 · Karras · 2018 [cited by examiner]
US 20180302614A1 · Toksvig · 2018 [cited by examiner]
US 20210287421A1 · Saleh · 2021 [cited by examiner]
CN 107111890A · 2017 [cited by applicant]
CN 108090947A · 2018 [cited by applicant]
CN 110930497A · 2020 [cited by applicant]
GB 2584187A · 2020 [cited by applicant]
“Ray tracing primitives”; https://www.cl.cam.ac.uk/teaching/1999/AGraphHCI/SMAG/node2.html#SECTION00023100000000000000. [cited by applicant]
Havel et al; “Yet Faster Ray-Triangle Intersection (Using SSE4)”; IEEE Transactions on Visualization and Computer Graphics; vol. 16; No. 3; May/Jun. 2010; pp. 434-438. [cited by applicant]
Kensler et al; “Optimizing Ray-Triangle Intersection via Automated Search”; School of Computing; University of Utah; pp. 1-6. [cited by applicant]
Mahovsky et al; “Fast Ray-Axis Aligned Bounding Box Overlap Tests with PI licker Coordinates”; vol. 9; No. 1; pp. 35-46. [cited by applicant]
Moller et al; “Fast, Minimum Storage Ray/Triangle Intersection”; pp. 1-7. [cited by applicant]
Shevtsov et al; “Ray-Triangle Intersection Algorithm for Modern CPU Architectures”; Russia, Moscow, Jun. 23-27, 2007; pp. 1-7. [cited by applicant]
Smits; “Efficiency Issues for Ray Tracing”; University of Utah; Feb. 19, 1999; pp. 1-12. [cited by applicant]
Toth; “On Ray Tracing Parametric Surfaces”; Computer Graphics Development; Ford Motor Company; vol. 19; No. 3; 1985; San Francisco Jul. 22-26; pp. 171-179. [cited by applicant]
Woop et al; “Watertight Ray/Triangle Intersection”; Journal of Computer Graphics Techniques; vol. 2; No. 1; 2013; pp. 65-82. [cited by applicant]
Kay et al., “Ray Tracing Complex Scenes;” ACM Siggraph 86, Computer Graphics, vol. 20, No. 4, pp. 269-278, 1986. [cited by applicant]
Williams et al., “An Efficient and Robust Ray-Box Intersection Algorithm;” Courses on ACM Siggraph, vol. 10, No. 1, pp. 55-60, Jul. 2005. [cited by applicant]
(Note: NPL in parent application). [cited by applicant]