Intersection testing for ray tracing
AssigneeImagination Technologies Limited
InventorDaniel Barnard
Life of this patent
Estimating the term…
Abstract
A system and method for performing intersection testing of rays in a ray tracing system. The ray tracing system uses a hierarchical acceleration structure comprising a plurality of nodes, each identifying one or more elements for intersection testing. The system defines and updates progress information that identifies, for a ray, leaf nodes of the hierarchical acceleration structure which identify elements for which it is not yet known whether or not the ray interests.
Claims17
A computer-implemented method of performing iterative intersection testing between a ray and elements identified by nodes of a hierarchical acceleration structure of a ray tracing system, the computer-implemented method comprising:
- defining a sequential value for each leaf node of the hierarchical acceleration structure, wherein the sequential values of the leaf nodes that branch from any given non-leaf node are sequential with respect to one another;
- defining progress information for the ray, the progress information comprising first progress information identifying the earliest sequential value amongst the sequential values of leaf nodes for which it is not known whether or not the ray intersects any of their elements;
- during an intersection testing process, obtaining one or more ray requests for the ray, each ray request identifying a different node that identifies elements against which the ray is to undergo intersection testing;
- identifying, by processing the obtained one or more ray requests, any intersections is between the ray and any elements identified by any node identified by the obtained one or more ray requests;
- and
- updating the progress information based on any identified intersections between the ray and the elements identified by the nodes of the hierarchical acceleration structure;
- processing the first progress information and the identified intersections to identify a first number of identified intersections which are an intersection between the ray and an element, of a non-leaf node, associated with a leaf node that has, or is a parent node of one or more leaf nodes that have, a sequential value sequentially at or after the sequential value identified by the first progress information;
- and
- defining one or more ray requests to be obtained in a subsequent iteration of the intersection process based on the first number of identified intersections.
An intersection testing system for performing iterative intersection testing between one or more rays and elements identified by nodes of a hierarchical acceleration structure, wherein:
- a sequential value is defined for each leaf node of the hierarchical acceleration structure, wherein the sequential values of the leaf nodes that branch from any given non-leaf node are sequential with respect to one another;
- and
- progress information is defined for the ray, the progress information comprising first progress information identifying the earliest sequential value amongst the sequential values of leaf nodes for which it is not known whether or not the ray intersects any of their elements;
- wherein the intersection testing system is configured to:
- during an intersection testing process, obtain one or more ray requests for the ray, each ray request identifying a different node that identifies elements against which the ray is to undergo intersection testing;
- identify, by processing the obtained one or more ray requests, any intersections between the ray and any elements identified by any node identified by the obtained one or more ray requests;
- update the progress information based on any identified intersections between the ray and the elements identified by the nodes of the hierarchical acceleration structure;
- process the first progress information and the identified intersections to identify a first number of identified intersections which are an intersection between the ray and an element, of a non-leaf node, associated with a leaf node that has, or is a parent node of one or more leaf nodes that have, a sequential value sequentially at or after the is sequential value identified by the first progress information;
- and
- define one or more ray requests to be obtained in a subsequent iteration of the intersection process based on the first number of identified intersections.
Dependencies are inferred from the claim text.