IP Library Granted Patent US 12,423,904
Granted Patent B2
US 12,423,904 · App. 18/114,376 · Granted Sep 23, 2025

Intersection testing in a ray tracing system

Inventors: Peter Smith-Lacey (Hertfordshire, GB); Simon Fenney (Hertfordshire, GB); Gregory Clark (Hertfordshire, GB); Rostam King (Hertfordshire, GB)
Assignee: Imagination Technologies Limited
G06T15/06G06T15/005G06T17/20G06T2210/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,423,904
App. No.
18/114,376
Granted
Sep 23, 2025
Kind
B2
Abstract

A method and an intersection testing module for performing intersection testing in a ray tracing system determines that a difference between an intersection distance at which a ray intersects a first primitive and an intersection distance at which the ray intersects a second primitive satisfies a comparison condition with respect to a threshold. It is determined that the orientations of the first and second primitives are different. The intersection of the ray with one of the first and second primitives is selected on the basis that the one of the first and second primitives has a particular orientation.

Claims (33)

1. A computer-implemented method of performing intersection testing in a ray tracing system, the method comprising:

determining that a difference between an intersection distance at which a ray intersects a first primitive and an intersection distance at which the ray intersects a second primitive satisfies a comparison condition with respect to a threshold;

determining that orientations of the first and second primitives are different; and

selecting the intersection of the ray with one of the first and second primitives on the basis that said one of the first and second primitives has a particular orientation.

2. The method of claim 1 , wherein the comparison condition is satisfied with respect to the threshold if the difference between the intersection distance at which the ray intersects the first primitive and the intersection distance at which the ray intersects the second primitive is less than the threshold.

3. The method of claim 1 , wherein the comparison condition is satisfied with respect to the threshold if the difference between the intersection distance at which the ray intersects the first primitive and the intersection distance at which the ray intersects the second primitive is less than or equal to the threshold.

4. The method of claim 1 , wherein said determining that the difference between the intersection distance at which a ray intersects a first primitive and the intersection distance at which the ray intersects a second primitive satisfies the comparison condition with respect to the threshold comprises:

determining the intersection distance at which the ray intersects the first primitive;

determining the intersection distance at which the ray intersects the second primitive; and

comparing the determined intersection distances.

5. The method of claim 1 , wherein the threshold is non-zero.

6. The method of claim 1 , wherein a primitive which has said particular orientation is a front-facing primitive, and wherein a primitive which has an orientation that is different to said particular orientation is a back-facing primitive.

7. The method of claim 1 , further comprising determining that the ray intersects the first and second primitives.

8. The method of claim 1 , further comprising:

if the difference between the intersection distance at which the ray intersects the first primitive and the intersection distance at which the ray intersects the second primitive does not satisfy the comparison condition with respect to the threshold, selecting the intersection of the ray with the one of the first and second primitives which has the smaller intersection distance.

9. The method of claim 1 , further comprising:

if the intersection distance at which the ray intersects the first primitive is equal to the intersection distance at which the ray intersects the second primitive, and if the orientations of the first and second primitives are the same, selecting the intersection of the ray with one of the first and second primitives based on unique primitive IDs which are associated with the first and second primitives.

10. The method of claim 1 , further comprising using the selected intersection in the ray tracing system for rendering an image.

11. An intersection testing module, for use in a ray tracing system, the intersection testing module comprising:

intersection selection logic configured to:

determine that a difference between an intersection distance at which a ray intersects a first primitive and an intersection distance at which the ray intersects a second primitive satisfies a comparison condition with respect to a threshold;

determine that orientations of the first and second primitives are different; and

select the intersection of the ray with one of the first and second primitives on the basis that said one of the first and second primitives has a particular orientation.

12. The intersection testing module of claim 11 , wherein the comparison condition is satisfied with respect to the threshold if the difference between the intersection distance at which the ray intersects the first primitive and the intersection distance at which the ray intersects the second primitive is less than the threshold.

13. The intersection testing module of claim 11 , wherein the comparison condition is satisfied with respect to the threshold if the difference between the intersection distance at which the ray intersects the first primitive and the intersection distance at which the ray intersects the second primitive is less than or equal to the threshold.

14. The intersection testing module of claim 11 , further comprising intersection determination logic configured to:

determine that the ray intersects the first primitive and determine the intersection distance at which the ray intersects the first primitive; and

determine that the ray intersects the second primitive and determine the intersection distance at which the ray intersects the second primitive.

15. A non-transitory computer readable storage medium having stored thereon an integrated circuit definition dataset that, when processed in an integrated circuit manufacturing system, configures the integrated circuit manufacturing system to manufacture an intersection testing module for use in a ray tracing system, the intersection testing module comprising:

intersection selection logic configured to:

determine that a difference between an intersection distance at which a ray intersects a first primitive and an intersection distance at which the ray intersects a second primitive satisfies a comparison condition with respect to a threshold;

determine that orientations of the first and second primitives are different; and

select the intersection of the ray with one of the first and second primitives on the basis that said one of the first and second primitives has a particular orientation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2025
From: SMITH-LACEY, PETER; FENNEY, SIMON; CLARK, GREGORY; KING, ROSTAM
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 071663/0822 →
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Priority Claims (3)
GB 2202657 · Feb 25, 2022 · national
GB 2202658 · Feb 25, 2022 · national
GB 2202659 · Feb 25, 2022 · national
Continuity (1)
Related Publication 20230334755A1 · Oct 19, 2023
References Cited (23)
US 8059122B1 · MacGillivray · 2011 [cited by applicant]
US 12067669B2 · Laine et al. · 2024 [cited by applicant]
US 20080259075A1 · Fowler · 2008 [cited by examiner]
US 20100231589A1 · Salsbury · 2010 [cited by examiner]
US 20110267347A1 · Purcell et al. · 2011 [cited by applicant]
US 20130113801A1 · Monson · 2013 [cited by examiner]
US 20160260245A1 · DeCell · 2016 [cited by examiner]
US 20180089885A1 · Wald · 2018 [cited by applicant]
US 20190019325A1 · Clark · 2019 [cited by examiner]
US 20200051314A1 · Laine et al. · 2020 [cited by applicant]
US 20200193683A1 · Saleh · 2020 [cited by applicant]
US 20210390759A1 · Muthler · 2021 [cited by examiner]
US 20210398340A1 · Muthler · 2021 [cited by examiner]
US 20220351458A1 · Smith-Lacey et al. · 2022 [cited by applicant]
US 20230298258A1 · Laine et al. · 2023 [cited by applicant]
US 20230334757A1 · Smith-Lacey et al. · 2023 [cited by applicant]
US 20230359496A1 · Majewski et al. · 2023 [cited by applicant]
US 20240362851A1 · Muthler et al. · 2024 [cited by applicant]
Rainer Agelek, “On Orienting Edges of Unstructured Two- and Three-Dimensional Meshes”, Mar. 2018, ACM Transactions on Mathematical Software 44, 1, Article 5, pp. 5:1-5:22 (Year: 2018). [cited by examiner]
Sjoholm; “Best Practices: Using NVIDIA RTX Ray Tracing (Updated)”; URL:https://developer.nvidia.com/blog/best-practices-using-nvidia-rtx-ray-tracing/; Aug. 10, 2020; pp. 1-10. [cited by applicant]
Woop et al; “Watertight Ray/Triangle Intersection”; Journal of Computer Graphics Techniques; Jun. 28, 2013; Retrieved from the Internet: URL:http;//jcgt.org/published/0002/01/05/paper.pdf; vol. 2; No. 1; 2013; pp. 65-82. [cited by applicant]
Chen, X. et al.: “Polygon offsetting by computing winding numbers”, In International Design Engineering Technical Conferences and Computers and Information in Engineering Conference Jan. 1, 2005 (vol. 4739, pp. 565-575). [cited by applicant]
Ern, A. et al.: “Finite elements I: Approximation and interpolation”, Springer Nature; Feb. 18, 2021. [cited by applicant]