IP Library › Granted Patent US 10,319,139
Granted Patent B2
US 10,319,139 · App. 15/477,043 · Granted Jun 11, 2019

Apparatus and method for data-parallel ray tracing using volume proxies

Inventor: Ingo Wald (Salt Lake City, UT)
Assignee: Intel Corporation
G06T15/06G06T1/20G06T15/005
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 10,319,139
App. No.
15/477,043
Granted
Jun 11, 2019
Kind
B2
Abstract

An apparatus and method are described for utilizing volume proxies. For example, one embodiment of an apparatus comprises: a volume subdivision module to subdivide a volume into a plurality of partitions, the apparatus to process a first of the partitions and to distribute data associated with each of the other partitions to each of a plurality of nodes; a proxy generation module to compute a first proxy for the first partition, the first proxy to be transmitted to the plurality of nodes; and a ray tracing engine to perform one or more traversal/intersection operations for a current ray or group of rays using the first proxy; if the ray or group of rays interacts with the first proxy, then the ray tracing engine to send the ray(s) to a second node associated with the first proxy or retrieves data related to the interaction from the second node.

Claims (41)

1. A method comprising:

logically subdividing, by a volume subdivision circuitry, a volume into a plurality of partitions;

distributing, by the volume subdivision circuitry, data associated with the plurality of partitions to a corresponding plurality of nodes, wherein the nodes are ray tracing nodes that perform ray tracing operations in parallel;

computing, by a proxy generation circuitry, a proxy at each node for its respective partition and transmitting the proxy to all other nodes;

performing, by a ray tracing engine, one or more traversal/intersection operations for a current ray or group of rays using the proxies;

if the ray or group of rays interacts with a first proxy, then sending, by the ray tracing engine, the ray(s) to a first node associated with the first proxy or retrieving data related to the interaction from the first node.

2. The method as in claim 1 further comprising:

ignoring certain regions within the proxies during the traversal/intersection operations which are not relevant to the operations.

3. The method as in claim 2 further comprising:

determining, for a given transfer function setting, data values are relevant to the operations.

4. The method as in claim 1 wherein each of the partitions comprises a grid at a first resolution and wherein each proxy comprises a grid at a second resolution.

5. The method as in claim 4 wherein the grid at the second resolution comprises a macrocell grid.

6. The method as in claim 4 wherein the grid at the second resolution comprises a plurality of cells, each cell corresponding to a region of cells in the grid at the first resolution.

7. The method as in claim 6 wherein each cell at the second resolution stores a minimum and maximum scalar value associated with a region of the cell.

8. An apparatus comprising:

a volume subdivision circuitry to subdivide a volume into a plurality of partitions, the apparatus to process a first of the partitions and to distribute data associated with each of the other partitions to each of a plurality of nodes, wherein the nodes are ray tracing nodes that perform ray tracing operations in parallel;

a proxy generation circuitry to compute a proxy at each node for its respective partition, each of the proxies to be transmitted to all other nodes of the plurality of nodes; and

a ray tracing engine to perform one or more traversal/intersection operations for a current ray or group of rays using the proxies;

if the ray or group of rays interacts with a first proxy, then the ray tracing engine to send the ray(s) to a first node associated with the first proxy or retrieves data related to the interaction from the first node.

9. The apparatus as in claim 8 further comprising:

ignoring certain regions within the proxies during the traversal/intersection operations which are not relevant to the operations.

10. The apparatus as in claim 9 further comprising:

determining, for a given transfer function setting, data values are relevant to the operations.

11. The apparatus as in claim 8 wherein each of the partitions comprises a grid at a first resolution and wherein each proxy comprises a grid at a second resolution.

12. The apparatus as in claim 11 wherein the grid at the second resolution comprises a macrocell grid.

13. The apparatus as in claim 11 wherein the grid at the second resolution comprises a plurality of cells, each cell corresponding to a region of cells in the grid at the first resolution.

14. The apparatus as in claim 13 wherein each cell at the second resolution stores a minimum and maximum scalar value associated with a region of the cell.

15. A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of:

logically subdividing a volume into a plurality of partitions;

distributing data associated with the plurality of partitions to a corresponding plurality of nodes, wherein the nodes are ray tracing nodes that perform ray tracing operations in parallel;

computing a proxy at each node for its respective partition and transmitting the proxy to all other nodes;

performing one or more traversal/intersection operations for a current ray or group of rays using the proxies;

if the ray or group of rays interacts with a first proxy, then sending the ray(s) to a first node associated with the first proxy or retrieving data related to the interaction from the first node.

16. The machine-readable medium as in claim 15 comprising additional program code to cause the machine to perform the operations of:

ignoring certain regions within the proxies during the traversal/intersection operations which are not relevant to the operations.

17. The machine-readable medium as in claim 16 comprising additional program code to cause the machine to perform the operations of:

determining, for a given transfer function setting, data values are relevant to the operations.

18. The machine-readable medium as in claim 15 wherein each of the partitions comprises a grid at a first resolution and wherein each proxy comprises a grid at a second resolution.

19. The machine-readable medium as in claim 18 wherein the grid at the second resolution comprises a macrocell grid.

20. The machine-readable medium as in claim 18 wherein the grid at the second resolution comprises a plurality of cells, each cell corresponding to a region of cells in the grid at the first resolution.

21. The machine-readable medium as in claim 20 wherein each cell at the second resolution stores a minimum and maximum scalar value associated with a region of the cell.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2018
From: WALD, INGO
To: INTEL CORPORATION
Reel/Frame 046446/0079 →
Continuity (1)
Related Publication 20180286104A1 · Oct 4, 2018