# US 10,319,139 B2 · Apparatus and method for data-parallel ray tracing using volume proxies

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,319,139 B2
- Document ID: US10319139B2
- Status: Granted
- Kind: B2
- Application number: 15/477,043
- Filed: 2017-04-01
- Published: 2018-10-04
- Granted: 2019-06-11
- Earliest claimed: 2017-04-01
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Ingo Wald
- Web page: https://patentgrep.com/patent/US10319139B2

## CPC

- G06T 15/06: Ray-tracing
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06T 15/005: {General purpose rendering architectures}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

The method as in claim 2 further comprising:
determining, for a given transfer function setting, data values are relevant to the operations.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 4)

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

### Claim 6 (depends on 4)

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.

### Claim 7 (depends on 6)

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.

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 9)

The apparatus as in claim 9 further comprising:
determining, for a given transfer function setting, data values are relevant to the operations.

### Claim 11 (depends on 8)

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.

### Claim 12 (depends on 11)

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

### Claim 13 (depends on 11)

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.

### Claim 14 (depends on 13)

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.

### Claim 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 15)

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.

### Claim 19 (depends on 18)

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

### Claim 20 (depends on 18)

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.

### Claim 21 (depends on 20)

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.
