IP Library Granted Patent US 8,817,026
Granted Patent B1
US 8,817,026 · App. 14/180,068 · Granted Aug 26, 2014

Computer hardware architecture and data structures for a ray traversal unit to support incoherent ray traversal

Inventor: Alvin D. Zimmerman (Pleasanton, CA)
Assignee: Raycast Systems, Inc.
G06T15/06
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,817,026
App. No.
14/180,068
Granted
Aug 26, 2014
Kind
B1
Abstract

A new hardware architecture defines an indexing and encoding method for accelerating incoherent ray traversal. Accelerating multiple ray traversal may be accomplished by organizing the rays for minimal movement of data, hiding latency due to external memory access, and performing adaptive binning. Rays may be binned into coarse grain and fine grain spatial bins, independent of direction.

Claims (44)

1. A method in a ray traversal unit comprising digital logic circuits, the method comprising the digital logic circuits:

storing in a data store ray data representative of a plurality of rays traversed through a scene, the scene being partitioned into a hierarchy of cells, the ray data including, for each ray, a hierarchy of dirty cells intersected by said each ray, the ray data being grouped according to intersected dirty cells at a first level in the hierarchy (“first level dirty cells”);

receiving from the data store ray data representative of a group of first rays which intersect a given first level dirty cell;

sorting the received ray data according to dirty cells in a second level in the hierarchy (“second level dirty cells”) and dirty cells in a third level in the hierarchy (“third level dirty cells”);

processing the sorted ray data for ray/object intersections, and when a given ray intersects an object then:

completing processing of the given ray concurrently with launching one or more new rays from the given ray;

traversing the one or more new rays through the scene; and

when one of the new rays intersects a dirty cell at an n th level in the hierarchy, then storing ray data of said one of the new rays in the data store including data representative of a hierarchy of dirty cells that contain the n th level dirty cell.

2. The method of claim 1 wherein the ray data of said one of the new rays is grouped with other ray data in the data store according to its first level dirty cell.

3. The method of claim 1 wherein the ray data in the data store are grouped according to first level dirty cells using a radix sort and using cell addresses of the first level dirty cells as a sort radix.

4. The method of claim 3 wherein the received ray data are sorted using a radix sort, wherein cell addresses of the second level cells and the third level cells are sort radices.

5. The method of claim 1 the number of rays in the group of first rays is less than or equal to the number of rays that intersect the given first level dirty cell.

6. The method of claim 1 wherein the data store is a memory separate from the ray traversal unit.

7. An apparatus comprising:

a traversal unit comprising:

an input to receive rays for traversal through a scene; and

a memory to store data that represent the scene as a hierarchy of cells;

a first binning unit comprising:

an input to receive from the traversal unit ray data for rays that intersect cells at a first level in the hierarchy (“first level dirty cells”);

logic circuits that sort received ray data according to the first level dirty cells; and

an output for connection to an external memory separate from the apparatus to store sorted ray data;

a second binning unit comprising:

an input to receive first ray data from the external memory, the first ray data representative of rays that intersect a given first level dirty cell; and

logic circuits that sort the first ray data according to dirty cells at a second level in the hierarchy (“second level dirty cells”) and dirty cells at a third level in the hierarchy (“third level dirty cells”), whereby the first ray data become spatially coherent ray data; and

an object intersection processing unit having an input to receive the spatially coherent ray data to detect intersections of objects by rays represented by the spatially coherent ray data.

8. The apparatus of claim 7 further comprising a new ray generator having an input to receive from the object intersection processing unit ray data for rays that have intersected objects, the traversal unit further comprising an input connected to the new ray generator to receive new rays, wherein the new rays are generated depending on the intersected objects.

9. The apparatus of claim 8 further comprising a completion buffer having an input to receive from the object intersection processing unit the ray data for rays that have intersected objects.

10. The apparatus of claim 7 wherein the first level is the highest level in the hierarchy and the third level is the lowest level in the hierarchy.

11. The ray traversal apparatus of claim 7 wherein the logic circuits of the first binning unit perform a partial radix sort using cell addresses of the first level dirty cells as a sort radix.

12. The apparatus of claim 11 wherein the logic circuits of the second binning unit perform a radix sort using cell addresses of the second level dirty cells and third level dirty cells as sort radices.

13. The apparatus of claim 7 wherein the traversal unit further comprises an input connected to the object intersection processing unit to receive ray data for rays that did not intersect an object, wherein the second binning unit further comprises an input connected to the traversal unit to receive rays that intersect a third level dirty cell in the given first level dirty cell.

14. A ray traversal unit comprising:

means for storing in a data store ray data representative of a plurality of rays traversed through a scene, the scene being partitioned into a hierarchy of cells, the ray data including, for each ray, a hierarchy of dirty cells intersected by said each ray, the ray data being grouped according to intersected dirty cells at a first level in the hierarchy (“first level dirty cells”);

means for receiving from the data store ray data representative of a group of first rays which intersect a given first level dirty cell;

means for sorting the received ray data according to dirty cells in a second level in the hierarchy (“second level dirty cells”) and dirty cells in a third level in the hierarchy (“third level dirty cells”);

means for processing the sorted ray data for ray/object intersections, and when a given ray intersects an object then the means for processing:

completes processing of the given ray concurrently with launching one or more new rays from the given ray;

traverses the one or more new rays through the scene; and

when one of the new rays intersects a dirty cell at an n th level in the hierarchy, then stores ray data of said one of the new rays in the data store including data representative of a hierarchy of dirty cells that contain the n th level dirty cell.

15. The ray traversal unit of claim 14 wherein the ray data of said one of the new rays is grouped with other ray data in the data store according to its first level dirty cell.

16. The ray traversal unit of claim 14 wherein the ray data in the data store are grouped according to first level dirty cells using a radix sort and using cell addresses of the first level dirty cells as a sort radix.

17. The ray traversal unit of claim 16 wherein the received ray data are sorted using a radix sort, wherein cell addresses of the second level cells and the third level cells are sort radices.

18. The ray traversal unit of claim 14 the number of rays in the group of first rays is less than or equal to the number of rays that intersect the given first level dirty cell.

19. The ray traversal unit of claim 14 wherein the data store is a memory separate from the ray traversal unit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2015
From: RAYCAST SYSTEMS, INC.
To: ZIMMERMAN, ALVIN D.
Reel/Frame 036467/0469 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2014
From: ZIMMERMAN, ALVIN D.
To: RAYCAST SYSTEMS, INC.
Reel/Frame 032214/0845 →
Continuity (1)
Provisional Application 61939372 · Feb 13, 2014