Ray tracing image processing system
First Claim
1. A computer implemented method of performing ray tracing, wherein steps of the computer implemented method are performed by a microprocessor, the computer implemented method comprising:
- issuing a ray into a three-dimensional scene;
with a first processing element;
tracing, iteratively, the ray through a spatial index having nodes representing bounding volumes within the three-dimensional scene by taking branches to nodes defining bounding volumes intersected by the ray until a first leaf node is reached, wherein the spatial index partitions the three-dimentional scene into smaller volumes through a use of splitting planes which are parallel to a selected axis; and
sending information defining the ray and the first leaf node to a second processing element, wherein the information defining the ray is sent to the second processing element irrespective of a processing of any previously processed leaf node, and the first processing element begins tracing a subsequent ray upon sending the information;
with the second processing element;
performing ray-primitive intersection tests to determine if the ray intersects a primitive contained within a bounding volume defined by the first leaf node;
generating at least one secondary ray, the secondary ray includes a shadow ray; and
sending the secondary ray to the first processing element,wherein the first processing element and the second processing element are configured to be controlled by the microprocessor.
4 Assignments
0 Petitions
Accused Products
Abstract
According to embodiments of the invention, a normally recursive ray tracing algorithm may be partitioned to form an iterative ray tracing algorithm. The resulting portions of the iterative ray tracing algorithm may be executed by a plurality of processing elements. Furthermore, according to embodiments of the invention, a network of inboxes may be used to transfer information which defines original rays and secondary rays (information unlikely to be reused for subsequently issued rays and subsequently rendered frames) between processing elements, and a shared memory cache may store information relating to a three dimensional scene (information likely to be reused for subsequently issued rays and subsequently rendered frames). Using a plurality of processing elements to perform ray tracing and storing information in the shared memory cache which is likely to be reused for subsequent rays and subsequent frames, the performance of a ray tracing image processing system may be improved.
-
Citations
18 Claims
-
1. A computer implemented method of performing ray tracing, wherein steps of the computer implemented method are performed by a microprocessor, the computer implemented method comprising:
-
issuing a ray into a three-dimensional scene; with a first processing element; tracing, iteratively, the ray through a spatial index having nodes representing bounding volumes within the three-dimensional scene by taking branches to nodes defining bounding volumes intersected by the ray until a first leaf node is reached, wherein the spatial index partitions the three-dimentional scene into smaller volumes through a use of splitting planes which are parallel to a selected axis; and sending information defining the ray and the first leaf node to a second processing element, wherein the information defining the ray is sent to the second processing element irrespective of a processing of any previously processed leaf node, and the first processing element begins tracing a subsequent ray upon sending the information; with the second processing element; performing ray-primitive intersection tests to determine if the ray intersects a primitive contained within a bounding volume defined by the first leaf node; generating at least one secondary ray, the secondary ray includes a shadow ray; and sending the secondary ray to the first processing element, wherein the first processing element and the second processing element are configured to be controlled by the microprocessor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable storage medium containing a program which, when executed, performs an operation, comprising:
-
issuing a ray into a three-dimensional scene; with a first processing element; tracing, iteratively, the ray through a spatial index having nodes representing bounding volumes within the three-dimensional scene by taking branches to nodes defining bounding volumes intersected by the ray until a first leaf node is reached, wherein the spatial index partitions the three-dimentional scene into smaller volumes through a use of splitting planes which are parallel to a selected axis; and sending information defining the ray and the first leaf node to a second processing element, wherein the information defining the ray is sent to the second processing element irrespective of a processing of any previously processed leaf node and the first processing element begins tracing a subsequent ray upon sending the information defining the ray to the second processing element; and with the second processing element; performing ray-primitive intersection tests to determine if the ray intersects a primitive contained within a bounding volume defined by the first leaf node; generating at least one secondary ray, the secondary ray includes a shadow ray; and sending the secondary ray to the first processing element, wherein the first processing element and the second processing element are configured controlled by the microprocessor. - View Dependent Claims (8, 9, 10)
-
-
11. A system, comprising:
-
a first processing element; a second processing element; a spatial index having nodes defining bounding volumes of a three-dimensional scene; a communication network coupled to the first processing element and the second processing element; wherein the first processing element is configured to iteratively traverse a ray through the spatial index by taking branches to nodes defining bounding volumes intersected by the ray until a leaf node is reached, and send the ray to the second processing element via the communication network, wherein the spatial index partitions the three-dimentional scene into smaller volumes through a use of splitting planes which are parallel to a selected axis, wherein the ray is sent to the second processing element irrespective of a processing of any previously processed leaf node and the first processing element begins tracing a subsequent ray upon sending the ray to the second processing element; and wherein the second processing element is configured to determine if the ray intersects a primitive contained within a bounding volume defined by the leaf node, wherein the second processing element is further configured to generate a secondary ray, the secondary ray includes a shadow ray, the second processing element is further configured to send the secondary ray to the first processing element, wherein the first processing element and the second processing element are configured to be controlled by the microprocessor. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification