IP Library Granted Patent US 12,456,251
Granted Patent B2
US 12,456,251 · App. 18/126,426 · Granted Oct 28, 2025

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,456,251
App. No.
18/126,426
Granted
Oct 28, 2025
Kind
B2
Abstract

A method performed by a graphics processor searches for a candidate reinsertion for each of a plurality of input nodes of a current bounding volume hierarchy (BVH) which would move the input node from an old parent to a new parent, and which would reduce an expected computational cost of searching the BVH for a ray intersection; and performs a first update to update the current BVH with one or more selected reinsertions from among the candidates. The selection comprises a conflict check to determine whether any group of the candidates would affect a same part of the current BVH, and if so selecting only one of the group to include in the first update. 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.

Claims (49)

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

obtaining a starting BVH, bounding volume hierarchy, being a data structure comprising nodes representing different 3D regions of space in a 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, starting with a first of the one or more iterations 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 that would be incurred by searching the tree to determine whether a modelled ray would intersect with one of the primitives, according to a metric for estimating said computational cost; and

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

wherein selecting the one or more selected reinsertions comprises 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;

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; and

wherein the second update comprises retrying a plurality of retried reinsertions remaining in the group after the first update, the retrying comprising: evaluating whether each of the retried reinsertions meet one or more criteria, and selecting one of the retried reinsertions that meets all of the one or more criteria as said other reinsertion to include in the second update.

2 . The method of claim 1 , 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.

3 . The method of claim 1 , wherein the one or more criteria comprise at least: that the retried reinsertion is still valid following the first update.

4 . The method of claim 1 , wherein the one or more criteria comprise at least: that the retried reinsertion is not still conflicted with another, more beneficial one of the retried reinsertions by affecting a same part of the tree of the current BVH as one another following the first update, wherein the other retried reinsertion would be more beneficial if giving a greater reduction in the expected computational cost according to said metric.

5 . The method of claim 1 , wherein the one or more criteria comprise at least: that the retried reinsertion is still beneficial after the first update, in that the retried reinsertion would still lower the expected computational cost according to said metric, said evaluation comprising rescoring the retried reinsertions according to said metric.

6 . The method of claim 5 , wherein the evaluation comprises, before rescoring the retired reinsertion, recalculating bounds of bounding volumes modelled by any node having bounds affected by the first update.

7 . The method of claim 1 , wherein the retried reinsertions are not rescored according to said metric following the first update, said one or more conditions not including that the retried reinsertion is still beneficial after the first update.

8 . The method of claim 1 , wherein said other of the reinsertions selected for the second update is selected based on being the reinsertion, from among the retried reinsertions that meet the one or more criteria, that gives the greatest reduction in the expected computational cost according to said metric.

9 . 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 further comprises updating the current score to account for the first update, and in said at least one update the updating of the current score also accounts for the second update.

10 . The method of claim 1 , wherein for each of said plurality of input nodes, the at least one candidate reinsertion being searched for comprises a single best candidate reinsertion for the respective input node, the best reinsertion being that which gives a delta in the metric representing a greatest reduction in the expected computational cost for the respective input node, wherein the respective best candidate reinsertion is found if the delta is beyond a threshold representing a reduction and not an increase.

11 . The method of claim 1 , wherein the graphics processor is configured to run a plurality of processes including at least some in parallel with one another, wherein each respective process is configured to process a respective one or more of the input nodes, each process comprises one or more threads or shader invocations, and each process is identified by a respective process ID; wherein the processing of each respective input node comprises:

performing the search for the candidate reinsertion of the respective input node, including scoring of the candidate reinsertion according to said metric to determine the reduction in the expected computational cost that would be given by the candidate reinsertion, and

if any one of the candidate reinsertions of the respective input node is selected as a respective one of the selected reinsertions, executing the respective selected reinsertion by performing the updating of the current BVH with the respective selected reinsertion.

12 . The method of claim 11 , wherein:

the conflict check comprises a bidding procedure whereby, as part of said processing of each respective input node:

the respective process placing a bid for ownership of each node in the tree affected by the respective reinsertion, the bid indicating the reduction in the expected computational cost and the input node of the respective candidate reinsertion according to said metric;

wherein the ownership of each affected node is won by the process whose respective reinsertion, from among the reinsertions affecting the same node, gives the greatest reduction in the expected computational cost according to said metric; from among the group of conflicting reinsertions, said one of the reinsertions selected for the first update is selected on condition of winning the ownership of all of its affected nodes; and

the retrying comprises repeating the bidding procedure among the retried reinsertions to determine said other of the reinsertions to include in the second update, said one or more criteria comprising winning ownership of all affected nodes among the retried reinsertions in the repeated bidding procedure.

13 . 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.

14 . 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.

15 . The method of claim 14 , 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.

16 . The method of claim 1 , wherein in the search for candidate reinsertions in each iteration, the input nodes are limited to being at or above a predetermined number of hierarchical levels below the root node in the tree of the current BVH.

17 . The method of claim 1 , wherein in the search for candidate reinsertions in each iteration, 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 input node in the tree of the current BVH.

18 . A computer program embodied on non-transitory computer-readable storage, the computer program comprising code configured so as when run on the graphics processor to perform a method comprising:

obtaining a starting BVH, bounding volume hierarchy, being a data structure comprising nodes representing different 3D regions of space in a 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, starting with a first of the one or more iterations 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 that would be incurred by searching the tree to determine whether a modelled ray would intersect with one of the primitives, according to a metric for estimating said computational cost; and

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

wherein selecting the one or more selected reinsertions comprises 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;

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; and

wherein the second update comprises retrying a plurality of retried reinsertions remaining in the group after the first update, the retrying comprising: evaluating whether each of the retried reinsertions meet one or more criteria, and selecting one of the retried reinsertions that meets all of the one or more criteria as said other reinsertion to include in the second update.

19 . 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 so as when run to perform a method comprising:

obtaining a starting BVH, bounding volume hierarchy, being a data structure comprising nodes representing different 3D regions of space in a 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, starting with a first of the one or more iterations 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 that would be incurred by searching the tree to determine whether a modelled ray would intersect with one of the primitives, according to a metric for estimating said computational cost; and

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

wherein selecting the one or more selected reinsertions comprises 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;

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; and

wherein the second update comprises retrying a plurality of retried reinsertions remaining in the group after the first update, the retrying comprising: evaluating whether each of the retried reinsertions meet one or more criteria, and selecting one of the retried reinsertions that meets all of the one or more criteria as said other reinsertion to include in the second update.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2025
From: DAVISON, JOSEPH JOHN
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 072371/0642 →
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 20230334770A1 · Oct 19, 2023
References Cited (22)
US 20140168228A1 · Luebke et al. · 2014 [cited by applicant]
US 20140362074A1 · Karras et al. · 2014 [cited by applicant]
US 20140365532A1 · Karras et al. · 2014 [cited by applicant]
US 20160070820A1 · Laine et al. · 2016 [cited by applicant]
US 20160078588A1 · Garanzha · 2016 [cited by applicant]
US 20170270146A1 · Harrison · 2017 [cited by examiner]
US 20180373809A1 · Ylitie et al. · 2018 [cited by applicant]
US 20210390760A1 · Muthler et al. · 2021 [cited by applicant]
US 20230027725A1 · Chajdas et al. · 2023 [cited by applicant]
US 20230206539A1 · Tsakok et al. · 2023 [cited by applicant]
US 20230252685A1 · Ramesh Babu et al. · 2023 [cited by applicant]
US 20240202178A1 · Meister et al. · 2024 [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]
Meister et al; “Parallel Reinsertion for Bounding Volume Hierarchy Optimization”; Computer Graphics Forum: Journal of the European Association for Computer Graphics; vol. 37; No. 2; May 22, 2018; pp. 463-473. [cited by applicant]
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]
Pharr, et al.: “Physically based rendering: From theory to implementation”, Elsevier Science & Technology, 2nd edition. pp. 208-226 (Year: 2010). [cited by applicant]
Bittner, et al.: “Fast Insertion-Based Optimization of Bounding Volume Hierarchies”, (Year: 2013). [cited by applicant]
Clarberg, et al. “Importance Sampling of Many Lights on the GPU”, (Year: 2019). [cited by applicant]
Har-Peled: “Geometric Approximation Algorithms”, Textbook, vol. 173, 2011, pp. 163-176. (Year: 2011). [cited by applicant]
Garanzha, Kirill: “Efficient clustered BVH update algorithm for highly-dynamic models”, 2008 IEEE Symposium on Interactive Ray Tracing. IEEE, 2008. (Year: 2008). [cited by applicant]
Cited By (1)
US 12,602,844