IP Library Granted Patent US 12,657,805
Granted Patent B2
US 12,657,805 · App. 18/387,218 · Granted Jun 16, 2026

Hierarchical acceleration structures for use in ray tracing systems

Inventors: Gregory Clark (Hemel Hempstead, GB); Steven J. Clohset (San Francisco, CA)
Assignee: Imagination Technologies Limited
G06T15/005G06T15/06G06T2210/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,657,805
App. No.
18/387,218
Granted
Jun 16, 2026
Kind
B2
Abstract

Ray tracing systems and computer-implemented methods for generating a hierarchical acceleration structure for intersection testing in a ray tracing system. Nodes of the hierarchical acceleration structure are determined, wherein each of the nodes represents a region in a scene, and wherein the nodes are linked to form the hierarchical acceleration structure. Data is stored representing the hierarchical acceleration structure including data defining the regions represented by a plurality of the nodes of the hierarchical acceleration structure. At least one node is an implicitly represented node, wherein data defining a region represented by an implicitly represented node is not explicitly included as part of the stored data but can be inferred from the stored data. Ray tracing systems and computer-implemented methods for performing intersection testing in the ray tracing system determine whether testing of one or more rays for intersection with a region represented by a particular node of a sub-tree is to be skipped.

Claims (34)

1 . A computer-implemented method of generating a hierarchical acceleration structure in a ray tracing system, the method comprising:

storing data representing the hierarchical acceleration structure, wherein a node of the hierarchical acceleration structure is an implicitly represented node, which is implicitly represented by said stored data;

wherein data representing the implicitly represented node is not explicitly included as part of said stored data but can be inferred from said stored data using at least some of the data representing at least some nodes of the hierarchical acceleration structure.

2 . The method of claim 1 , wherein said at least some nodes of the hierarchical acceleration structure are nodes which are the descendants of the implicitly represented node at a particular level in the hierarchical acceleration structure.

3 . The method of claim 2 , wherein either:

(i) the descendants of the implicitly represented node at the particular level in the hierarchical acceleration structure are the children of the implicitly represented node in the hierarchical acceleration structure, or

(ii) the descendants of the implicitly represented node at the particular level in the hierarchical acceleration structure are the grandchildren of the implicitly represented node in the hierarchical acceleration structure.

4 . The method of claim 2 , wherein regions represented by nodes of the hierarchical acceleration structure are axis-aligned bounding boxes in the scene, and wherein the data representing the implicitly represented node can be inferred by determining, in each dimension of the scene, a minimum and a maximum component of the components defining the axis-aligned bounding boxes represented by the descendants of the implicitly represented node at the particular level in the hierarchical acceleration structure.

5 . The method of claim 1 , wherein stored data representing the hierarchical acceleration structure comprises data indicating how nodes of the hierarchical acceleration structure are linked, and wherein the data representing the implicitly represented node can be inferred from said stored data using at least some of the data indicating how the nodes of the hierarchical acceleration structure are linked.

6 . The method of claim 1 , wherein said storing data representing the hierarchical acceleration structure comprises storing said data representing the hierarchical acceleration structure in data blocks, wherein a data block comprises data representing a sub-tree within the hierarchical acceleration structure, wherein the sub-tree comprises one or more nodes at a plurality of levels within the hierarchical acceleration structure.

7 . The method of claim 6 , wherein the data block comprises: (i) data defining regions represented by the nodes at the lowest level of the sub-tree, and (ii) data indicating how the nodes of the sub-tree are linked.

8 . The method of claim 7 , wherein a node of the sub-tree which is at a level above the lowest level of the sub-tree is the implicitly represented node which is implicitly represented by the data in the data block, such that data defining the region represented by the implicitly represented node is not explicitly stored in the data block but can be inferred from: (i) at least some of the data defining the regions represented by at least some of the nodes at the lowest level of the sub-tree, and (ii) at least some of the data indicating how the nodes of the sub-tree are linked.

9 . The method of claim 8 , wherein the implicitly represented node is the parent node in the sub-tree for said at least some of the nodes at the lowest level of the sub-tree.

10 . The method of claim 6 , wherein the data block comprises data defining regions which are represented by nodes having a shared ancestor in the hierarchical acceleration structure.

11 . The method of claim 10 , wherein the shared ancestor is a shared parent, a shared grandparent or a shared great grandparent in the hierarchical acceleration structure.

12 . The method of claim 10 , wherein the data block comprises an indication of a common origin region and wherein the data in the data block defining the regions which are represented by nodes having a shared ancestor in the hierarchical acceleration structure comprises, for each of the nodes having the shared ancestor, one or more offsets from the common origin region, wherein the common origin region represents the region represented by the shared ancestor.

13 . The method of claim 6 , wherein said storing data representing the hierarchical acceleration structure comprises storing said data representing the hierarchical acceleration structure in a memory, wherein said stored data can be read from the memory for use in intersection testing in the ray tracing system, and wherein the size of a data block matches the minimum burst size of the memory.

14 . The method of claim 1 , wherein said storing data representing the hierarchical acceleration structure comprises storing said data representing the hierarchical acceleration structure in a memory, wherein said stored data can be read from the memory for use in intersection testing in the ray tracing system.

15 . A method of rendering an image of a scene in a ray tracing system comprising:

generating a hierarchical acceleration structure according to the method as set forth in claim 1 ;

performing intersection testing using at least part of the generated hierarchical acceleration structure; and

executing one or more shader programs to process results of the intersection testing to determine rendered values representing the image of the scene.

16 . A processor configured to generate a hierarchical acceleration structure in a ray tracing system, the processor being configured to:

cause data representing the hierarchical acceleration structure to be stored,

 herein a node of the hierarchical acceleration structure is an implicitly represented node, which is implicitly represented by said data; and

 wherein data representing the implicitly represented node is not explicitly included as part of said stored data but can be inferred from said stored data using at least some of the data representing at least some nodes of the hierarchical acceleration structure.

17 . The processor of claim 16 , wherein at least some nodes of the hierarchical acceleration structure are nodes which are the descendants of the implicitly represented node at a particular level in the hierarchical acceleration structure.

18 . A ray tracing system configured to render an image of a scene, the ray tracing system comprising:

a processor configured to generate a hierarchical acceleration structure as set forth in claim 16 ;

an intersection testing module configured to use at least part of the generated hierarchical acceleration structure to perform intersection testing; and

processing logic configured to execute one or more shader programs to process results of the intersection testing to determine rendered values representing the image of the scene.

19 . 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 a processor which is configured to generate a hierarchical acceleration structure in a ray tracing system, the processor being configured to:

cause data representing the hierarchical acceleration structure to be stored, wherein a node of the hierarchical acceleration structure is an implicitly represented node, which is implicitly represented by said data; and

wherein data representing the implicitly represented node is not explicitly included as part of said stored data but can be inferred from said stored data using at least some of the data representing at least some nodes of the hierarchical acceleration structure.

Assignments (1)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Continuity (3)
Continuation 17848253 · Jun 23, 2022
Continuation 16912939 · Jun 26, 2020
Related Publication 20240070963A1 · Feb 29, 2024
References Cited (66)
US 6219061B1 · Lauer et al. · 2001 [cited by applicant]
US 7969434B2 · Peterson et al. · 2011 [cited by applicant]
US 8259105B2 · Wald et al. · 2012 [cited by applicant]
US 8471845B1 · Stich · 2013 [cited by applicant]
US 9460546B1 · Stich · 2016 [cited by applicant]
US 9721320B2 · Karras · 2017 [cited by applicant]
US 10032289B2 · Laine et al. · 2018 [cited by applicant]
US 10430099B2 · Carter et al. · 2019 [cited by applicant]
US 11335055B2 · Clark et al. · 2022 [cited by applicant]
US 11380042B2 · Clark et al. · 2022 [cited by applicant]
US 11403803B2 · Clark et al. · 2022 [cited by applicant]
US 11663777B2 · Woop et al. · 2023 [cited by applicant]
US 20090138663A1 · Lee et al. · 2009 [cited by applicant]
US 20090157997A1 · Leonenko · 2009 [cited by applicant]
US 20090167763A1 · Waechter et al. · 2009 [cited by applicant]
US 20090225081A1 · Keller et al. · 2009 [cited by applicant]
US 20100060634A1 · Wald et al. · 2010 [cited by applicant]
US 20100281064A1 · Ikegami · 2010 [cited by applicant]
US 20120268483A1 · Soupikov et al. · 2012 [cited by applicant]
US 20130235049A1 · Karras · 2013 [cited by applicant]
US 20140270574A1 · Asukai et al. · 2014 [cited by applicant]
US 20140285488A1 · Sevastiyanov et al. · 2014 [cited by applicant]
US 20140306959A1 · Ozdas et al. · 2014 [cited by applicant]
US 20140333623A1 · Ozdas et al. · 2014 [cited by applicant]
US 20150261833A1 · Blaas · 2015 [cited by applicant]
US 20150348308A1 · Lee et al. · 2015 [cited by applicant]
US 20170061674A1 · Lee et al. · 2017 [cited by applicant]
US 20170116760A1 · Laine et al. · 2017 [cited by applicant]
US 20170178387A1 · Woop et al. · 2017 [cited by applicant]
US 20170287100A1 · Liktor et al. · 2017 [cited by applicant]
US 20170309059A1 · Howson et al. · 2017 [cited by applicant]
US 20180190021A1 · Bhiravabhatla · 2018 [cited by examiner]
US 20180373809A1 · Ylitie et al. · 2018 [cited by applicant]
US 20190019326A1 · Clark et al. · 2019 [cited by applicant]
US 20190035147A1 · Hazel · 2019 [cited by applicant]
US 20190057539A1 · Stanard et al. · 2019 [cited by applicant]
US 20190088002A1 · Howson et al. · 2019 [cited by applicant]
US 20190147636A1 · Howson et al. · 2019 [cited by applicant]
US 20190147638A1 · Howson et al. · 2019 [cited by applicant]
US 20200211261A1 · Janus et al. · 2020 [cited by applicant]
US 20200211263A1 · Janus et al. · 2020 [cited by applicant]
US 20210287429A1 · Vaidyanathan et al. · 2021 [cited by applicant]
US 20210304484A1 · Saleh et al. · 2021 [cited by applicant]
US 20210383591A1 · Gupta et al. · 2021 [cited by applicant]
US 20210407167A1 · Clark et al. · 2021 [cited by applicant]
US 20210407175A1 · Saleh et al. · 2021 [cited by applicant]
US 20220301255A1 · Clark et al. · 2022 [cited by applicant]
US 20230334777A1 · Davison · 2023 [cited by applicant]
CN 102037497A · 2011 [cited by applicant]
CN 102495427A · 2012 [cited by applicant]
CN 104050707A · 2014 [cited by applicant]
CN 106780716A · 2017 [cited by applicant]
CN 107408312A · 2017 [cited by applicant]
CN 109255829A · 2019 [cited by applicant]
CN 109509138A · 2019 [cited by applicant]
JP 2014174898A · 2014 [cited by applicant]
Chitalu et al., Binary Ostensibly-Implicit Trees for Fast Collision Detection, Computer Graphics Forum, vol. 39, No. 2, May 2020, pp. 509-521 (Year: 2020). [cited by examiner]
Chitalu et al.: “Binary Ostensibly-Implicit Trees for Fast Collision Detection”, 2020 (Year: 2020). [cited by applicant]
Eisemann et al.: “Implicit Object Space Partitioning: The No Memory BVH”, 2011 (Year: 2011). [cited by applicant]
Gourmel et al.: “Fitted BVH for Fast Raytracing of Metaballs”, 2010 (Year: 2010). [cited by applicant]
Nah et al; “RayCore: A Ray-Tracing Hardware Architecture for Mobile Devices”; ACM Transactions on Graphics, vol. 33, No. 5, Article 162, Publication date: Aug. 2014. [cited by applicant]
Kinkelin; “GPU Volume Raycasting using Bounding Interval Hierarchies”; URL: https://www. cg. tuwien. ac. at/research/publications/2009/Kinkelin _ 2009/ Kinkelin _ 2009-Paper. pdf; 15 pages, 2009. [cited by applicant]
Ernst et al; “Multi Bounding Volume Hierarchies”; IEEE/EG Symposium on Interactive Ray Tracing; 2008; □ pp. 35-40. [cited by applicant]
Fabianowski et al; “Compact BVH Storage for Ray Tracing and Photon Mapping”; URL: http://www.fabianowski.eu/research/egie2009; pp. 1-8, 2009. [cited by applicant]
Pinto et al; “Adaptive Collapsing on Bounding Volume Hierarchies for Ray-Tracing”; URL: https://diglib.eg.org/xmlui/pitstream/handle/10.2312/ egsh.20101051. 073 -076/073-076.pdf?sequence= I; pp. 1-4, 2010. [cited by applicant]
(Note: copies of NPL documents in parent application). [cited by applicant]