CPC G06T 15/06 (2013.01) [G06F 16/9027 (2019.01); G06T 15/005 (2013.01); G06T 2210/21 (2013.01)] | 16 Claims |
1. A method of operating a graphics processor when rendering a frame that represents a view of a scene comprising one or more objects using a ray tracing process,
wherein the ray tracing process uses a ray tracing acceleration data structure indicative of the distribution of geometry for the scene to be rendered to determine geometry for the scene that may be intersected by a ray being used for a ray tracing operation, the ray tracing acceleration data structure comprising a plurality of nodes, each node associated with a respective one or more volumes within the scene,
the ray tracing process comprising performing for a plurality of rays a traversal of the ray tracing acceleration data structure to determine, by testing the rays for intersection with the volumes represented by the nodes of the acceleration data structure, geometry for the scene to be rendered that may be intersected by the rays;
the graphics processor comprising a programmable execution unit operable to execute programs to perform graphics processing operations, and in which a program can be executed by groups of plural execution threads together;
the method comprising:
when a group of execution threads is executing a program to perform a ray tracing acceleration data structure traversal, with individual execution threads in the group of execution threads performing a traversal operation for a respective ray in a corresponding group of rays such that the group of rays performing the traversal operation together, in response to the execution threads executing a set of one or more ray-volume testing instructions that are included in the program in respect of a node of the ray tracing acceleration data structure:
testing one or more rays from the group of plural rays that are performing the traversal operation together for intersection with the one or more volumes associated with the node being tested; and
returning a result of the intersection testing for the node for the traversal operation;
wherein the graphics processor further comprises an intersection testing circuit operable to test rays for intersection with the volumes associated with the nodes of the ray tracing acceleration data structure, and wherein the set of one or more ray-volume testing instructions, when executed by execution threads of the group of plural execution threads, will cause the execution unit to message the intersection testing circuit to perform the testing of the one or more rays from the group of plural rays that are performing the traversal of the ray tracing acceleration data structure together for intersection with the one or more volumes associated with the node to be tested and to return the result of the intersection testing for the node being tested to the execution unit.
|