# US 2019/0318529 A1 · Systems and Methods for Rendering Foveated Effects

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

- Number: US 2019/0318529 A1
- Document ID: US20190318529A1
- Status: Published application
- Kind: A1
- Application number: 15/954,523
- Filed: 2018-04-16
- Published: 2019-10-17
- Earliest claimed: 2018-04-16
- Assignees: Oculus VR, LLC
- Applicants: Oculus VR, LLC
- Inventors: Warren Andrew Hunt; Anton S. Kaplanyan; Michael Mara; Alexander Nankervis
- Web page: https://patentgrep.com/patent/US20190318529A1

## CPC

- G06T 15/06: Ray-tracing
- G06T 15/40: Hidden part removal
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

In one embodiment, a computer system may determine an orientation in a 3D space based on sensor data generated by a virtual reality device. The system may generate ray footprints in the 3D space based on the determined orientation. For at least one of the ray footprints, the system may identify a corresponding number of subsamples to generate for that ray footprint and generate one or more coordinates in the ray footprint based on the corresponding number of subsamples. The system may determine visibility of one or more objects defined within the 3D space by projecting a ray from each of the one or more coordinates to test for intersection with the one or more objects. The system may generate an image of the one or more objected based on the determined visibility of the one or more objects.

## Claims

### Claim 1

A method comprising, by a computing system:
determining an orientation in a three-dimensional (3D) space, wherein the orientation is based on sensor data generated by a virtual reality device;
generating a plurality of ray footprints in the 3D space based on the determined orientation;
for at least one ray footprint of the plurality of ray footprints:
identifying a corresponding number of subsamples to generate for that ray footprint;
generating one or more coordinates in the ray footprint based on the corresponding number of subsamples; and
determining visibility of one or more objects defined within the 3D space by projecting a ray from each of the one or more coordinates to test for intersection with the one or more objects; and
generating an image of the one or more objected based on the determined visibility of the one or more objects.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
accessing an importance map specified by an application through an application programming interface;
wherein the importance map comprises a plurality of importance values that correspond to the plurality of ray footprints, respectively; and
wherein the corresponding number of subsamples to generate for the ray footprint is identified based on a first importance value of the plurality of importance values defined by the importance map.

### Claim 3 (depends on 2)

The method of claim 2,
wherein the plurality of importance values are stored in a grid data structure;
wherein the plurality of ray footprints correspond to a plurality of pixels, respectively; and
wherein the identifying of the corresponding number of subsamples for the ray footprint is based on (1) a relative position of the first importance value in the grid data structure and (2) a relative position of the ray footprint's corresponding pixel in the plurality of pixels.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
for a second ray footprint of the plurality of ray footprints, identifying a corresponding second number of subsamples to generate for the second ray footprint based on a second importance value of the plurality of importance values defined by the importance map;
wherein the first importance value corresponding to the ray footprint is defined to be more important than the second importance value corresponding to the second ray footprint.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
generating one or more second coordinates in the second ray footprint based on the corresponding second number of subsamples;
wherein a number of the one or more coordinates generated for the ray footprint is greater than a number of the one or more second coordinates generated for the second ray footprint.

### Claim 6 (depends on 4)

The method of claim 4, wherein the ray footprint is associated with a fixation area in the image and the second ray footprint is associated with an area in the image that is outside of the fixation area.

### Claim 7 (depends on 1)

The method of claim 1, wherein each of the plurality of ray footprints is defined by a center coordinate and at least one differential.

### Claim 8 (depends on 1)

The method of claim 1, wherein the number of subsamples to generate for the ray footprint is identified based on a density of points defined within an area of a focal surface map.

### Claim 9

One or more computer-readable non-transitory storage media embodying software that is operable when executed to cause one or more processors to perform operations comprising:
determining an orientation in a three-dimensional (3D) space, wherein the orientation is based on sensor data generated by a virtual reality device;
generating a plurality of ray footprints in the 3D space based on the determined orientation;
for at least one ray footprint of the plurality of ray footprints:
identifying a corresponding number of subsamples to generate for that ray footprint;
generating one or more coordinates in the ray footprint based on the corresponding number of subsamples; and
determining visibility of one or more objects defined within the 3D space by projecting a ray from each of the one or more coordinates to test for intersection with the one or more objects; and
generating an image of the one or more objected based on the determined visibility of the one or more objects.

### Claim 10 (depends on 9)

The media of claim 9, wherein the software is further operable when executed to cause the one or more processors to perform operations comprising:
accessing an importance map specified by an application through an application programming interface;
wherein the importance map comprises a plurality of importance values that correspond to the plurality of ray footprints, respectively; and
wherein the corresponding number of subsamples to generate for the ray footprint is identified based on a first importance value of the plurality of importance values defined by the importance map.

### Claim 11 (depends on 10)

The media of claim 10,
wherein the plurality of importance values are stored in a grid data structure;
wherein the plurality of ray footprints correspond to a plurality of pixels, respectively; and
wherein the identifying of the corresponding number of subsamples for the ray footprint is based on (1) a relative position of the first importance value in the grid data structure and (2) a relative position of the ray footprint's corresponding pixel in the plurality of pixels.

### Claim 12 (depends on 10)

The media of claim 10, wherein the software is further operable when executed to cause the one or more processors to perform operations comprising:
for a second ray footprint of the plurality of ray footprints, identifying a corresponding second number of subsamples to generate for the second ray footprint based on a second importance value of the plurality of importance values defined by the importance map;
wherein the first importance value corresponding to the ray footprint is defined to be more important than the second importance value corresponding to the second ray footprint.

### Claim 13 (depends on 12)

The media of claim 12, wherein the software is further operable when executed to cause the one or more processors to perform operations comprising:
generating one or more second coordinates in the second ray footprint based on the corresponding second number of subsamples;
wherein a number of the one or more coordinates generated for the ray footprint is greater than a number of the one or more second coordinates generated for the second ray footprint.

### Claim 14 (depends on 9)

The media of claim 9, wherein the number of subsamples to generate for the ray footprint is identified based on a density of points defined within an area of a focal surface map.

### Claim 15

A system comprising: one or more processors and one or more computer-readable non-transitory storage media coupled to one or more of the processors, the one or more computer-readable non-transitory storage media comprising instructions operable when executed by one or more of the processors to cause the system to perform operations comprising:
determining an orientation in a three-dimensional (3D) space, wherein the orientation is based on sensor data generated by a virtual reality device;
generating a plurality of ray footprints in the 3D space based on the determined orientation;
for at least one ray footprint of the plurality of ray footprints:
identifying a corresponding number of subsamples to generate for that ray footprint;
generating one or more coordinates in the ray footprint based on the corresponding number of subsamples; and
determining visibility of one or more objects defined within the 3D space by projecting a ray from each of the one or more coordinates to test for intersection with the one or more objects; and
generating an image of the one or more objected based on the determined visibility of the one or more objects.

### Claim 16 (depends on 15)

The system of claim 15, wherein the processors are further operable when executing the instructions to perform operations comprising:
accessing an importance map specified by an application through an application programming interface;
wherein the importance map comprises a plurality of importance values that correspond to the plurality of ray footprints, respectively; and
wherein the corresponding number of subsamples to generate for the ray footprint is identified based on a first importance value of the plurality of importance values defined by the importance map.

### Claim 17 (depends on 16)

The system of claim 16,
wherein the plurality of importance values are stored in a grid data structure;
wherein the plurality of ray footprints correspond to a plurality of pixels, respectively; and
wherein the identifying of the corresponding number of subsamples for the ray footprint is based on (1) a relative position of the first importance value in the grid data structure and (2) a relative position of the ray footprint's corresponding pixel in the plurality of pixels.

### Claim 18 (depends on 16)

The system of claim 16, wherein the processors are further operable when executing the instructions to perform operations comprising:
for a second ray footprint of the plurality of ray footprints, identifying a corresponding second number of subsamples to generate for the second ray footprint based on a second importance value of the plurality of importance values defined by the importance map;
wherein the first importance value corresponding to the ray footprint is defined to be more important than the second importance value corresponding to the second ray footprint.

### Claim 19 (depends on 18)

The system of claim 18, wherein the processors are further operable when executing the instructions to perform operations comprising:
generating one or more second coordinates in the second ray footprint based on the corresponding second number of subsamples;
wherein a number of the one or more coordinates generated for the ray footprint is greater than a number of the one or more second coordinates generated for the second ray footprint.

### Claim 20 (depends on 15)

The system of claim 15, wherein the number of subsamples to generate for the ray footprint is identified based on a density of points defined within an area of a focal surface map.
