IP Library Granted Patent US 8,587,588
Granted Patent B2
US 8,587,588 · App. 12/543,389 · Granted Nov 19, 2013

Ray-aggregation for ray-tracing during rendering of imagery

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,587,588
App. No.
12/543,389
Granted
Nov 19, 2013
Kind
B2
Abstract

A computer-enabled method for rendering a scene of objects representing physical objects includes projecting a first plurality of rays against a scene and aggregating a second plurality of rays that intersect a bounding volume, wherein the bounding volume encloses an object of the scene, and wherein the second plurality of rays is a portion of the first plurality of rays. The method further includes determining or computing intersections of the second plurality of aggregated rays with the object when the number of the second plurality of aggregated rays exceeds a predetermined value. The method also includes rendering the scene based on the determined intersections of the rays with the object. The second plurality of rays may be aggregated in a bounding volume aggregate data structure for processing.

Claims (39)

1. A computer-enabled method of rendering a scene of objects representing physical objects, the method comprising:

projecting a first plurality of rays against a scene;

aggregating at least a portion of the first plurality of rays that intersect a sub-region of the scene, the sub-region comprising a bounding volume;

determining intersections of the at least a portion of the first plurality of rays with the bounding volume in response to the portion of the first plurality of rays intersecting the sub-region exceeding a second predetermined value;

aggregating a second plurality of rays that intersect the bounding volume, wherein the bounding volume encloses at least one object of the scene, and wherein the second plurality of rays is a portion of the first plurality of rays;

determining intersections of the second plurality of aggregated rays with the at least one object in response to the number of the second plurality of aggregated rays exceeding a predetermined value; and

rendering the scene based on the determined intersections.

2. The method of claim 1 , wherein aggregating the second plurality of rays comprises aggregating the second plurality of rays in a bounding volume aggregate data structure.

3. The method of claim 1 , wherein determining intersections comprises computing intersections using vector instructions.

4. The method of claim 1 , wherein determining intersections comprises computing intersections on at least one of a graphics processing unit (GPU), or a field-programmable gate array (FPGA).

5. The method of claim 1 , further comprising storing the portion of the first plurality of rays within an aggregate data structure.

6. The method of claim 1 , wherein aggregating the portion of the first plurality of rays within a sub-region of the scene comprises aggregating the rays in a voxel aggregate data structure, which maintains a list comprising the bounding volume.

7. A non-transitory computer-readable storage medium comprising computer-executable instructions for rendering a scene of objects representing physical objects, the instructions comprising:

projecting a first plurality of rays against a scene;

aggregating at least a portion of the first plurality of rays intersecting a sub-region of the scene, the sub-region comprising a bounding volume;

determining intersections of the at least a portion of the first plurality of rays with the bounding volume in response to the portion of the first plurality of rays intersecting the sub-region exceeding a second predetermined value;

aggregating a second plurality of rays that intersect the bounding volume, wherein the bounding volume encloses at least one object of the scene, and wherein the second plurality of rays is a portion of the first plurality of rays;

determining intersections of the second plurality of aggregated rays with the at least one object in response to the number of the second plurality of aggregated rays exceeding a predetermined value; and

rendering the scene based on the determined intersections.

8. The non-transitory computer-readable storage medium of claim 7 , wherein aggregating the second plurality of rays comprises aggregating the second plurality of rays in a bounding volume aggregate data structure.

9. The non-transitory computer-readable storage medium of claim 7 , wherein determining intersections comprises computing intersections using vector instructions.

10. The non-transitory computer-readable storage medium of claim 7 , wherein determining intersections comprises computing intersections on at least one of a graphics processing unit (GPU), or a field-programmable gate array (FPGA).

11. The non-transitory computer-readable storage medium of claim 7 , further comprising instructions for storing the portion of the first plurality of rays within an aggregate data structure.

12. The non-transitory computer-readable storage medium of claim 7 , wherein aggregating the portion of the first plurality of rays within a sub-region of the scene comprises aggregating the rays in a voxel aggregate data structure, which maintains a list comprising the bounding volume.

13. Apparatus for rendering a scene of objects representing physical objects, the apparatus comprising:

a memory configured to store ray intersection data; and

a computer-readable medium having computer-executable instructions for:

projecting a first plurality of rays against a scene;

aggregating at least a portion of the first plurality of rays intersecting a sub-region of the scene, the sub-region comprising a bounding volume;

determining intersections of the at least a portion of the first plurality of rays with the bounding volume in response to the portion of the first plurality of rays intersecting the sub-region exceeding a second predetermined value;

aggregating a second plurality of rays that intersect the bounding volume, wherein the bounding volume is associated with at least one object of the scene, and wherein the second plurality of rays is a portion of the first plurality of rays;

determining intersections of the second plurality of aggregated rays with the at least one object in response to the number of the second plurality of aggregated rays exceeding a predetermined value; and

storing the determined intersections.

14. The apparatus of claim 13 , wherein the computer-readable medium further comprises instructions for rendering the scene based on the determined intersections.

15. The apparatus of claim 13 , wherein aggregating the second plurality of rays comprises aggregating the second plurality of rays in a bounding volume aggregate data structure.

16. The apparatus of claim 13 , wherein determining intersections comprises computing intersections using vector instructions.

17. The apparatus of claim 13 , wherein determining intersections comprises computing intersections on at least one of a graphics processing unit (GPU), or a field-programmable gate array (FPGA).

18. The apparatus of claim 13 , wherein the computer-readable medium further comprises instructions for storing the portion of the first plurality of rays within an aggregate data structure.

19. The apparatus of claim 13 , wherein aggregating the portion of the first plurality of rays within a sub-region of the scene comprises aggregating the rays in a voxel aggregate data structure, which maintains a list comprising the bounding volume.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2016
From: JPMORGAN CHASE BANK, N.A.
To: DREAMWORKS ANIMATION L.L.C.
Reel/Frame 040775/0318 →
SECURITY AGREEMENT Recorded Aug 17, 2012
From: DREAMWORKS ANIMATION L.L.C.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 028801/0800 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2009
From: SMYTH, EVAN P.
To: DREAMWORKS ANIMATION LLC
Reel/Frame 023118/0888 →