Method for reducing network bandwidth by delaying shadow ray generation
First Claim
1. A method of performing ray tracing, comprising:
- configuring one or more processors to perform an operation, comprising;
issuing a ray into a three-dimensional scene;
with a first processor;
tracing 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; and
, after a leaf node is reached, sending information defining the ray and the first leaf node to a second processor;
with the second processor;
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 a first set of secondary rays;
sending, information defining the first set of secondary rays to the first processor; and
sending a ray-primitive intersection point to the first processor; and
with the first processor, generating a second set of secondary rays based on at least the ray-primitive intersection point.
4 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides methods and apparatus in a ray tracing image processing system to reduce the amount of information passed between processing elements. According to embodiments of the invention, in response to a ray-primitive intersection, a first processing element in the image processing system may generate a portion of secondary rays and a second processing element may generate a second portion of secondary rays. The first processing element may generate reflected and refracted rays and the second processing element may generate shadow rays. The first processing element may send a ray-primitive intersection point to the second processing element so that the second processing element may generate the shadow rays. By only sending the intersection point to the second processing element, in contrast to sending a plurality of shadow rays, the amount of information communicated between the two processing elements may be reduced.
-
Citations
20 Claims
-
1. A method of performing ray tracing, comprising:
-
configuring one or more processors to perform an operation, comprising; issuing a ray into a three-dimensional scene; with a first processor;
tracing 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; and
, after a leaf node is reached, sending information defining the ray and the first leaf node to a second processor;with the second processor;
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 a first set of secondary rays;
sending, information defining the first set of secondary rays to the first processor; and
sending a ray-primitive intersection point to the first processor; andwith the first processor, generating a second set of secondary rays based on at least the ray-primitive intersection point. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer readable storage medium containing a program which, when executed, performs an operation, comprising:
-
issuing a ray into a three-dimensional scene; initiating on a first processor;
tracing 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;
after the leaf node is reached, sending information defining the ray and the first leaf node to a second processor;
receiving information defining a first set of secondary rays and information defining a ray-primitive intersection point from the second processor; and
generating a second set of secondary rays based on at least the information defining the ray-primitive intersection point. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system, comprising:
-
a first processor; a second processor; a memory device comprising a spatial index having nodes defining bounding volumes of a three-dimensional scene; a communication network coupled to the first processor and the second processor; wherein the first processor is configured to 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 information defining the ray and the leaf node to the second processor via the communication network; wherein the second processor is configured to determine if the ray intersects a primitive contained within a bounding volume defined by the leaf node; generate a first set of secondary rays;
send information defining the first set of secondary rays to the first processor; and
send information defining a ray-primitive intersection point to the first processor; andwherein the first processor is further configured to generate a second set of secondary rays based on at least the ray-primitive intersection point. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification