IP Library Granted Patent US 12,469,205
Granted Patent B2
US 12,469,205 · App. 18/114,402 · Granted Nov 11, 2025

Intersection testing in a ray tracing system using offset intersection distances

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,469,205
App. No.
18/114,402
Granted
Nov 11, 2025
Kind
B2
Abstract

A method and an intersection testing module for performing intersection testing in a ray tracing system determines a first offset intersection distance which is equal to a sum of an intersection distance at which a ray intersects a first primitive and a first offset which is dependent upon the orientation of the first primitive. A second offset intersection distance is determined which is equal to a sum of an intersection distance at which the ray intersects a second primitive and a second offset which is dependent upon the orientation of the second primitive. The determined first and second offset intersection distances are compared to select the intersection of the ray with one of the first and second primitives.

Claims (39)

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

determining a first offset intersection distance which is equal to a sum of an intersection distance at which a ray intersects a first primitive and a first offset which is dependent upon the orientation of the first primitive;

determining a second offset intersection distance which is equal to a sum of an intersection distance at which the ray intersects a second primitive and a second offset which is dependent upon the orientation of the second primitive; and

comparing the determined first and second offset intersection distances to select the intersection of the ray with one of the first and second primitives.

2 . The method of claim 1 , wherein said determining the first offset intersection distance comprises determining the intersection distance at which the ray intersects the first primitive, and wherein said determining the second offset intersection distance comprises determining the intersection distance at which the ray intersects the second primitive.

3 . The method of claim 2 , wherein said determining the first offset intersection distance comprises offsetting the determined intersection distance at which the ray intersects the first primitive by the first offset.

4 . The method of claim 2 , wherein said determining the second offset intersection distance comprises offsetting the determined intersection distance at which the ray intersects the second primitive by the second offset.

5 . The method of claim 1 , wherein the orientation of the first primitive is different to the orientation of the second primitive, and wherein the first offset is different to the second offset.

6 . The method of claim 5 , wherein the first offset is zero and the second offset is non-zero.

7 . The method of claim 5 , wherein the second offset is zero and the first offset is non-zero.

8 . The method of claim 1 , wherein if the first offset is non-zero, then an offset with the same sign as the first offset is used for determining offset intersection distances for any primitives which have the same orientation as the first primitive, and

wherein if the second offset is non-zero, then an offset with the same sign as the second offset is used for determining offset intersection distances for any primitives which have the same orientation as the second primitive.

9 . The method of claim 1 , wherein if the first offset is non-zero, then an offset with the same sign and mantissa as the first offset is used for determining offset intersection distances for any primitives which have the same orientation as the first primitive;

wherein if the second offset is non-zero, then an offset with the same sign and mantissa as the second offset is used for determining offset intersection distances for any primitives which have the same orientation as the second primitive; and

wherein each of the offsets has an exponent which scales with an exponent of the intersection distance with which it is to be summed.

10 . The method of claim 1 , wherein if the first offset is non-zero, then an offset with the same sign, mantissa and exponent as the first offset is used for determining offset intersection distances for any primitives which have the same orientation as the first primitive, and

wherein if the second offset is non-zero, then an offset with the same sign, mantissa and exponent as the second offset is used for determining offset intersection distances for any primitives which have the same orientation as the second primitive.

11 . The method of claim 1 , wherein

if the first primitive has a particular orientation then the first offset is less than if the first primitive does not have the particular orientation, and

if the second primitive has the particular orientation then the second offset is less than if the second primitive does not have the particular orientation.

12 . The method of claim 1 , wherein said comparing the determined first and second offset intersection distances comprises identifying which of the determined first and second offset intersection distances is lower, wherein the intersection corresponding to the identified offset intersection distance is selected.

13 . The method of claim 11 , 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.

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

15 . The method of claim 1 , wherein if the determined first and second offset intersection distances are equal, the intersection of the ray with one of the first and second primitives is selected based on unique primitive IDs which are associated with the first and second primitives.

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

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

intersection selection logic configured to:

determine a first offset intersection distance which is equal to a sum of an intersection distance at which a ray intersects a first primitive and a first offset which is dependent upon the orientation of the first primitive;

determine a second offset intersection distance which is equal to a sum of an intersection distance at which the ray intersects a second primitive and a second offset which is dependent upon the orientation of the second primitive; and

compare the determined first and second offset intersection distances to select the intersection of the ray with one of the first and second primitives.

18 . The intersection testing module of claim 17 , 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.

19 . The intersection testing module of claim 17 , wherein the intersection selection logic is configured to compare the determined first and second offset intersection distances to select the intersection of the ray with one of the first and second primitives by identifying which of the determined first and second offset intersection distances is lower, wherein the intersection corresponding to the identified offset intersection distance is selected.

20 . 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 a first offset intersection distance which is equal to a sum of an intersection distance at which a ray intersects a first primitive and a first offset which is dependent upon the orientation of the first primitive;

determine a second offset intersection distance which is equal to a sum of an intersection distance at which the ray intersects a second primitive and a second offset which is dependent upon the orientation of the second primitive; and

compare the determined first and second offset intersection distances to select the intersection of the ray with one of the first and second primitives.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2025
From: SMITH-LACEY, PETER; FENNEY, SIMON; CLARK, GREGORY; KING, ROSTAM
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 072174/0570 →
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 20230334756A1 · Oct 19, 2023
References Cited (27)
US 8059122B1 · MacGillivray · 2011 [cited by examiner]
US 12067669B2 · Laine et al. · 2024 [cited by applicant]
US 20080259075A1 · Fowler et al. · 2008 [cited by applicant]
US 20110267347A1 · Purcell · 2011 [cited by examiner]
US 20130113801A1 · Monson et al. · 2013 [cited by applicant]
US 20160260245A1 · DeCell et al. · 2016 [cited by applicant]
US 20180089885A1 · Wald · 2018 [cited by examiner]
US 20190333263A1 · Melkote Krishnaprasad · 2019 [cited by examiner]
US 20200051314A1 · Laine · 2020 [cited by examiner]
US 20200193683A1 · Saleh · 2020 [cited by examiner]
US 20210390759A1 · Muthler · 2021 [cited by examiner]
US 20220351458A1 · Smith-Lacey et al. · 2022 [cited by applicant]
US 20220392146A1 · Bruce · 2022 [cited by examiner]
US 20230005209A1 · Valsaraju · 2023 [cited by examiner]
US 20230081791A1 · Burgess · 2023 [cited by examiner]
US 20230298258A1 · Laine et al. · 2023 [cited by applicant]
US 20230334756A1 · Smith-Lacey · 2023 [cited by examiner]
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]
Vasilakis et al., Depth-fighting Aware Methods for Multi-fragment Rendering, 2012 (Year: 2012). [cited by examiner]
Woop et al., Watertight Ray/Triangle Intersection, 2013 (Year: 2013). [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]
Agelek, Rainer: “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 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]