Coherency gathering for ray tracing
AssigneeImagination Technologies Limited
InventorsMichael John Livesley, Gregory Clark
Life of this patent
Estimating the term…
Abstract
A system and method for coherency gathering for rays in a ray tracing system. The ray tracing system uses a hierarchical acceleration structure comprising a plurality of nodes including upper level nodes and lower level nodes. For each instance where one of the lower level nodes is a child of one of the upper level nodes, an instance transform is defined, specifying the relationship between a first coordinate system of the upper level node and the second coordinate system for that instance of the lower level node. The system provides an instance transform cache for storing a plurality of these instance transforms while conducting intersection testing.
Claims20
A method of coherency gathering for rays in a ray tracing system, the method comprising:
- defining a plurality of rays, each ray having associated with it ray information defining the ray;
- and
- defining an acceleration structure comprising a plurality of nodes, each node of the acceleration structure having geometry information associated with it;
- wherein the nodes are instantiated within the acceleration structure in one or more instances, each instance associated with an instance transform specifying a relationship between the plurality of rays and a coordinate system for that instance;
- the method further comprising:
- gathering together a group of rays, wherein said group requires intersection testing against one of the one or more instances of a given node in the acceleration structure;
- providing the instance transform of said one of the one or more instances in an instance transform cache;
- and
- submitting the group of rays for intersection testing;
- wherein the instance transform cache comprises a first instance content addressable memory (CAM) and a first instance random access memory (RAM), and a second instance CAM and a second instance RAM;
- wherein the first instance CAM is configured to store, for each of a plurality of instance transforms for box nodes, a memory address of the instance transform, and the first instance RAM is configured to store, for each of the plurality of instance transforms for box nodes, a set of transform coefficients of that instance transform;
- and
- wherein the second instance CAM is configured to store, for each of a plurality of instance transforms for primitive nodes, a memory address of the instance transform, and the second instance RAM is configured to store, for each of the plurality of instance transforms for primitive nodes, a set of transform coefficients of that instance transform.
A system for coherency gathering for rays in a ray tracing system, the system comprising:
- a ray store, configured to store ray information of a plurality of rays, the ray information for each ray defining the ray;
- a memory, configured to store:
- geometry information associated with each of a plurality of nodes of an acceleration structure, wherein the nodes are instantiated within the acceleration structure in one or more instances, each instance associated with an instance transform specifying the relationship between the plurality of rays and a coordinate system for that instance,
- the memory being further configured to store the instance transforms;
- an instance transform cache, configured to temporarily store instance transforms;
- and
- a coherency gathering unit, configured to:
- gather together a group of rays, wherein said group requires intersection testing against one of the one or more instances of a given node in the acceleration structure;
- provide the instance transform of said one of the one or more instances in an instance transform cache;
- and
- submit the selected group of rays for intersection testing,
- wherein the instance transform cache comprises a first instance content addressable memory (CAM), and a first instance random access memory (RAM), and a second instance CAM and a second instance RAM;
- wherein the first instance CAM is configured to store, for each of a plurality of instance transforms for box nodes, a memory address of the instance transform, and the first instance RAM is configured to store, for each of the plurality of instance transforms for box nodes, a set of transform coefficients of that instance transform;
- and
- wherein the second instance CAM is configured to store, for each of a plurality of instance transforms for primitive nodes, a memory address of the instance transform, and the second instance RAM is configured to store, for each of the plurality of instance transforms for primitive nodes, a set of transform coefficients of that instance transform.
Dependencies are inferred from the claim text.