# US 10,121,277 B2 · Progressively refined volume ray tracing

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

- Number: US 10,121,277 B2
- Document ID: US10121277B2
- Status: Granted
- Kind: B2
- Application number: 15/187,148
- Filed: 2016-06-20
- Published: 2017-12-21
- Granted: 2018-11-06
- Earliest claimed: 2016-06-20
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Ingo Wald; Jefferson D. Amstutz
- Web page: https://patentgrep.com/patent/US10121277B2

## CPC

- G06T 15/06: Ray-tracing
- G06T 15/08: Volume rendering
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A first set of N samples is located along a ray through a volume in connection with a first frame. The first set of N samples is stored. A second set of N additional samples is located along the ray in connection with a second frame. Then the first and second sets of samples are accumulated.

## Claims

### Claim 1

A method comprising:
locating a first set of N samples along a ray through a volume in connection with a first frame using a hardware processor, where the first set samples along the ray accumulate to compute a pixel color in the first frame, the first frame represents a volume rendering of the volume;
storing the first set of N samples in a storage;
locating, using said hardware processor, a second set of N additional samples along the ray in connection with a second frame, the second set being different samples compared to the first set and said second set offset, relative to the first set, the offset resulting in the samples from the second set being interleaved in a sequence with the samples from the first set along the ray through the volume; and
combining said first and second sets of samples, using said hardware processor, so that all samples from the first and second frames are used for the volume, the combined set of samples along the ray accumulate to compute another pixel color in the second frame.

### Claim 2 (depends on 1)

The method of claim 1 including performing data parallel rendering using a plurality of nodes.

### Claim 3 (depends on 2)

The method of claim 2 including sorting the samples to a node that stores data for a sample being processed on the node.

### Claim 4 (depends on 2)

The method of claim 2 including sorting a list of samples from front to back.

### Claim 5 (depends on 2)

The method of claim 2 including processing samples along the same ray in different nodes.

### Claim 6 (depends on 2)

The method of claim 2 where each node sends only the result of the node's blended samples instead of all samples taken.

### Claim 7

One or more non-transitory computer readable media storing instructions to perform a sequence comprising:
locating a first set of N samples along a ray through a volume in connection with a first frame, where the first set samples along the ray accumulate to compute a pixel color in the first frame, the first frame represents a volume rendering of the volume;
storing the first set of N samples;
locating a second set of N additional samples along the ray in connection with a second frame, the second set being different samples compared to the first set and said second set offset, relative to the first set, the offset resulting in the samples from the second set being interleaved in a sequence with the samples from the first set along the ray through the volume; and
combining said first and second sets of samples, so that all samples from the first and second frames are used for the volume, the combined set of samples along the ray accumulate to compute another pixel color in the second frame.

### Claim 8 (depends on 7)

The media of claim 7, further storing instructions to perform a sequence including randomly selecting the point to begin sampling along the ray in connection with the second frame.

### Claim 9 (depends on 7)

The media of claim 7, further storing instructions to perform a sequence including performing data parallel rendering using a plurality of nodes.

### Claim 10 (depends on 9)

The media of claim 9, further storing instructions to perform a sequence including sorting the samples to a node that stores data for a sample being processed on the node.

### Claim 11 (depends on 9)

The media of claim 9, further storing instructions to perform a sequence including sorting a list of samples from front to back.

### Claim 12 (depends on 9)

The media of claim 9, further storing instructions to perform a sequence including processing samples along the same ray in different nodes.

### Claim 13 (depends on 9)

The media of claim 9, further storing instructions to perform a sequence where each node sends only the result of the node's blended samples instead of all samples taken.

### Claim 14

An apparatus comprising:
a processor to locate a first set of N samples along a ray through a volume in connection with a first frame, where the first set samples along the ray accumulate to compute a pixel color in the first frame, the first frame represents a volume rendering of the volume, store the first set of N samples in a storage, locate a second set of N additional samples along the ray in connection with a second frame, the second set being different samples compared to the first set and said second set offset, relative to the first set, the offset resulting in the samples from the second set being interleaved in a sequence with the samples from the first set along the ray through the volume and combine said first and second sets of samples, so that all samples from the first and second frames are used for the volume, the combined set of samples along the ray accumulate to compute another pixel color in the second frame; and
a memory coupled to said processor.

### Claim 15 (depends on 14)

The apparatus of claim 14, said processor to randomly select the point to begin sampling along the ray in connection with the second frame.

### Claim 16 (depends on 14)

The apparatus of claim 14, said processor to perform data parallel rendering using a plurality of nodes.

### Claim 17 (depends on 16)

The apparatus of claim 16, said processor to sort the samples to a node that stores data for a sample being processed on the node.

### Claim 18 (depends on 16)

The apparatus of claim 16, said processor to sort a list of samples from front to back.

### Claim 19 (depends on 16)

The apparatus of claim 16, said processor to process samples along the same ray in different nodes.

### Claim 20 (depends on 16)

The apparatus of claim 16, said processor where each node sends only the result of the node's blended samples instead of all samples taken.
