IP Library Granted Patent US 12,608,881
Granted Patent B2
US 12,608,881 · App. 18/126,424 · Granted Apr 21, 2026

Formation of bounding volume hierarchies

Inventor: Joseph John Davison (Hertfordshire, GB)
Assignee: Imagination Technologies Limited
G06T15/506G06T1/20G06T15/06G06T15/50G06T17/005G06T17/10G06T2210/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,608,881
App. No.
18/126,424
Granted
Apr 21, 2026
Kind
B2
Abstract

A method in a graphics processor searches for a candidate reinsertion for each of a plurality of input nodes in a current bounding volume hierarchy (BVH), which would move the respective input node from an old parent to a new parent, and which would reduce the expected computational cost of searching the BVH for a ray intersection; and updates the current BVH with one or more selected reinsertions selected from among the candidates. In the search for candidate reinsertions, either or both of: a) the new parent is limited to being related to the old parent by an ancestor at no more than a predetermined number of hierarchal levels above the old parent, and/or b) the input nodes are limited to being at or above a hierarchical level a predetermined number of hierarchical levels below the root node.

Claims (49)

1 . A method performed by a graphics processor, the method comprising:

obtaining a starting bounding volume hierarchy (BVH) modelling an environment at a modelled point in time in the modelled environment, the BVH being a data structure comprising nodes representing different 3D regions of space in the modelled environment, the data structure comprising a tree in which the nodes are arranged hierarchically from a root node down to a plurality of leaf nodes, wherein the region modelled by each leaf node encompasses at least one primitive or part of a primitive;

performing one or more iterations to the modelling of the environment as at said modelled point in time, starting with a first iteration which starts with the starting BVH as a current BVH, each iteration comprising:

for each respective one of a plurality of input nodes in the tree of the current BVH, searching for at least one respective candidate reinsertion which would move the respective input node from an old parent to a new parent in the tree, and which compared to the current BVH would reduce an expected computational cost of traversing the tree to determine whether a modelled ray would intersect with one of the primitives, according to a metric for estimating the expected computational cost, and

performing at least a first update to update the current BVH with one or more selected reinsertions selected from among the candidate reinsertions;

wherein in the search for candidate reinsertions, either or both of:

the new parent is limited to being related to the old parent by an ancestor at no more than a predetermined number of hierarchical levels above the old parent in the tree of the current BVH, and/or

the input nodes are limited to being at or above a hierarchical level in the tree of the current BVH a predetermined number of hierarchical levels below the root node,

thereby restricting a scope of the searching to a subset of the nodes of the current BVH.

2 . The method of claim 1 , wherein the new parent is limited to being related to the old parent by an ancestor at no more than the predetermined number of hierarchical levels above the old parent.

3 . The method of claim 1 , wherein the input nodes are limited to being at or above a hierarchical level in the tree of the current BVH a predetermined number of hierarchical levels below the root node.

4 . The method of claim 3 , wherein the new parent is limited to being at or above a hierarchical level in the tree of the current BVH a predetermined number of hierarchical levels below the root.

5 . The method of claim 1 , wherein in each of one, some or all of the candidate reinsertions, the candidate reinsertion increases a number of child nodes at the new parent or adds a new node to the data structure as the new parent.

6 . The method of claim 1 , wherein said plurality of input nodes is only a subset of a total number of nodes in the tree, the subset excluding the root node as well as one or more internal nodes and/or leaf nodes.

7 . The method of claim 6 , wherein in at least one layer in the tree of the current BVH, the subset comprises only every Nth node within that layer, wherein N is an integer greater than two.

8 . The method of claim 1 , wherein for each of said plurality of input nodes in any given one of said iterations, said search for at least one candidate reinsertion may or may not successfully find at least one candidate reinsertion that would reduce the expected computational cost according to said metric.

9 . The method of claim 1 , wherein for each of said plurality of input nodes, said at least one candidate reinsertion searched for in said searching consists of a single best candidate reinsertion, among multiple possible candidate reinsertions of the respective input node, that according to said metric would give a greatest reduction in the expected computational cost.

10 . The method of claim 1 , wherein said searching for the candidate reinsertions comprises, for each respective one of the plurality of input nodes:

scoring each of a respective plurality of possible reinsertions for the respective input node according to said metric, to determine a difference in the estimated computational cost that the reinsertion would achieve; and

from among the multiple possible reinsertions for the respective input node, identifying the reinsertion which gives the lowest difference, and if the lowest difference for the respective input node is a reduction in the expected computational cost, selecting the identified reinsertion as the at least one searched-for candidate reinsertion for the respective input node.

11 . The method of claim 1 , wherein the method comprises determining a starting score being a score of the starting BVH according to said metric, wherein the first iteration starts with the starting score as a current score of the current BVH; and wherein each iteration comprises updating the current score to account for the first update.

12 . The method of claim 1 , comprising after said one or more iterations, searching the tree of the current BVH to determine whether a modelled ray intersects with any of the primitives.

13 . The method of claim 12 , comprising outputting graphical data for controlling a screen to render a scene representing at least part of the modelled environment, including a lighting effect based on the modelled ray.

14 . The method of claim 1 , wherein in the searching step of at least one of the iterations, the one or more candidate reinsertions include at least one candidate reinsertion that would leave the old parent with more than one child, and/or give the new parent more than two children.

15 . The method of claim 1 , wherein in the updating step of at least one of the iterations, at least one of the selected reinsertions leaves the respective old parent with more than one child, and/or gives the respective new parent more than two children.

16 . The method of claim 1 , wherein the one or more selected reinsertions selected for inclusion in the first update are selected according to a conflict check to determine whether any group of the candidate reinsertions would affect a same part of the tree of the current BVH as one another, and if so selecting only one of the group to include in the first update.

17 . The method of claim 16 , wherein said one of the group selected for the first update is selected based on being the candidate reinsertion from among the group that gives the greatest reduction in the expected computational cost according to said metric.

18 . The method of claim 16 , wherein at least one of the iterations further comprises, after the first update, performing a second update within the same iteration to update the current BVH with another of said group.

19 . A non-transitory computer readable storage medium having stored thereon computer executable code configured such that when run on a graphics processor causes said graphics processor to perform a method comprising:

obtaining a starting bounding volume hierarchy (BVH) modelling an environment at a modelled point in time in the modelled environment, the BVH being a data structure comprising nodes representing different 3D regions of space in the modelled environment, the data structure comprising a tree in which the nodes are arranged hierarchically from a root node down to a plurality of leaf nodes, wherein the region modelled by each leaf node encompasses at least one primitive or part of a primitive;

performing one or more iterations to the modelling of the environment as at said modelled point in time, starting with a first iteration which starts with the starting BVH as a current BVH, each iteration comprising:

for each respective one of a plurality of input nodes in the tree of the current BVH, searching for at least one respective candidate reinsertion which would move the respective input node from an old parent to a new parent in the tree, and which compared to the current BVH would reduce an expected computational cost of traversing the tree to determine whether a modelled ray would intersect with one of the primitives, according to a metric for estimating the expected computational cost; and

performing at least a first update to update the current BVH with one or more selected reinsertions selected from among the candidate reinsertions;

wherein in the search for candidate reinsertions, either or both of:

the new parent is limited to being related to the old parent by an ancestor at no more than a predetermined number of hierarchical levels above the old parent in the tree of the current BVH, and/or

the input nodes are limited to being at or above a hierarchical level in the tree of the current BVH a predetermined number of hierarchical levels below the root node,

thereby restricting a scope of the searching to a subset of the nodes of the current BVH.

20 . A graphics processor comprising:

memory comprising one or more memory units, and

processing apparatus comprising one or more execution units;

wherein the memory stores code arranged to run on the processing apparatus, the code being configured when run to cause the processing apparatus to perform a method comprising:

obtaining a starting bounding volume hierarchy (BVH) modelling an environment at a modelled point in time in the modelled environment, the BVH being a data structure comprising nodes representing different 3D regions of space in the modelled environment, the data structure comprising a tree in which the nodes are arranged hierarchically from a root node down to a plurality of leaf nodes, wherein the region modelled by each leaf node encompasses at least one primitive or part of a primitive;

performing one or more iterations to the modelling of the environment as at said modelled point in time, starting with a first iteration which starts with the starting BVH as a current BVH, each iteration comprising:

for each respective one of a plurality of input nodes in the tree of the current BVH, searching for at least one respective candidate reinsertion which would move the respective input node from an old parent to a new parent in the tree, and which compared to the current BVH would reduce an expected computational cost of traversing the tree to determine whether a modelled ray would intersect with one of the primitives, according to a metric for estimating the expected computational cost; and

performing at least a first update to update the current BVH with one or more selected reinsertions selected from among the candidate reinsertions;

wherein in the search for candidate reinsertions, either or both of:

the new parent is limited to being related to the old parent by an ancestor at no more than a predetermined number of hierarchical levels above the old parent in the tree of the current BVH, and/or

the input nodes are limited to being at or above a hierarchical level in the tree of the current BVH a predetermined number of hierarchical levels below the root node,

thereby restricting a scope of the searching to a subset of the nodes of the current BVH.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2026
From: DAVISON, JOSEPH JOHN
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 073861/0360 →
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
Priority Claims (4)
GB 2204657 · Mar 31, 2022 · national
GB 2204658 · Mar 31, 2022 · national
GB 2204664 · Mar 31, 2022 · national
GB 2301775 · Feb 8, 2023 · national
Continuity (1)
Related Publication 20230334777A1 · Oct 19, 2023
References Cited (27)
US 6480849B1 · Lee · 2002 [cited by examiner]
US 20140168228A1 · Luebke et al. · 2014 [cited by applicant]
US 20140362074A1 · Karras · 2014 [cited by examiner]
US 20140365532A1 · Karras et al. · 2014 [cited by applicant]
US 20160070820A1 · Laine · 2016 [cited by examiner]
US 20160078588A1 · Garanzha · 2016 [cited by examiner]
US 20170061673A1 · Park · 2017 [cited by examiner]
US 20170270146A1 · Harrison et al. · 2017 [cited by applicant]
US 20180373809A1 · Ylitie et al. · 2018 [cited by applicant]
US 20210390760A1 · Muthler et al. · 2021 [cited by applicant]
US 20230027725A1 · Chajdas · 2023 [cited by examiner]
US 20230099806A1 · Oldcorn · 2023 [cited by examiner]
US 20230206539A1 · Tsakok · 2023 [cited by examiner]
US 20230215091A1 · Drabinski · 2023 [cited by examiner]
US 20230252685A1 · Ramesh Babu · 2023 [cited by examiner]
US 20230252725A1 · Mcallister · 2023 [cited by examiner]
US 20240202178A1 · Meister et al. · 2024 [cited by applicant]
Clarberg et al. “Importance Sampling of Many Lights on the GPU” (Year: 2019). [cited by examiner]
Meister et al. “Parallel Reinsertion for Bounding Volume Hierarchy Optimization” (Year: 2018). [cited by examiner]
Bittner et al. “Fast Insertion-Based Optimization of Bounding vol. Hierarchies” (Year: 2013). [cited by examiner]
Har-Peled, “Geometric Approximation Algorithms”, Textbook, vol. 173, 2011, pp. 163-176. (Year: 2011). [cited by examiner]
Garanzha, Kirill. “Efficient clustered BVH update algorithm for highly-dynamic models.” 2008 IEEE Symposium on Interactive Ray Tracing. IEEE, 2008. (Year: 2008). [cited by examiner]
Wald et al; “State of the Art in Ray Tracing Animated Scenes”; Computer Graphics Forum : Journal of the European Associates for Graphics; vol. 28; No. 6; No. 6; Apr. 24, 2009; pp. 1691-1722. [cited by applicant]
Haber et al., “Enhanced automatic creation of multi-purpose object hierarchies”, Computer Graphics and Applications, 2000. Proceedings of The Eighth Pacific Conference on Hong Kong, China Oct. 3-5, 2000. [cited by applicant]
Kensler, “Tree Rotations for Improving Bounding Volume Hierarchies”, 2008 IEEE Symposium on Interactive Ray Tracing, 2008, pp. 73-76. [cited by applicant]
Meister et al., “Parallel Reinsertion for Bounding Volume Hierarchy Optimization,” Eurographics, vol. 37, No. 2, 2018. [cited by applicant]
Pharr, et al.: “Physically based rendering: From theory to implementation”, Elsevier Science & Technology, 2nd edition. pp. 208-226 (Year: 2010). [cited by applicant]