IP Library Granted Patent US 11,195,319
Granted Patent B1
US 11,195,319 · App. 16/668,692 · Granted Dec 7, 2021

Computing ray trajectories for pixels and color sampling using interpolation

Inventor: Larry Seiler (Redmond, WA)
Assignee: Facebook Technologies, LLC.
G06T15/06G06T5/006G06T15/04G06T2207/10024G06T2210/21
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 11,195,319
App. No.
16/668,692
Granted
Dec 7, 2021
Kind
B1
Abstract

In one embodiment, a method includes accessing a distortion mesh defined in a 3D space by a plurality of mesh coordinates that are respectively associated with a plurality of predetermined points in a screen representation, where each mesh coordinate specifies a trajectory for a ray cast from the associated predetermined point into the 3D space; determining a sampling point within the screen representation; selecting a set of mesh coordinates from the plurality of mesh coordinates based on proximities between the sampling point and the predetermined points associated with the set of mesh coordinates; computing a sampling trajectory for the sampling point based on the selected set of mesh coordinates; casting a ray into the 3D space using the sampling trajectory; computing an intersection location between the cast ray and an object in the 3D space; and determining a color value for the sampling point based on the intersection location.

Claims (52)

1. A method comprising, by one or more computer systems:

accessing a pre-computed distortion mesh defined in a 3D space, the pre-computed distortion mesh comprising a plurality of mesh coordinates that are respectively associated with a plurality of predetermined points in a screen representation, wherein each mesh coordinate in the pre-computed distortion mesh specifies a known sampling trajectory for a ray cast from the associated predetermined point into the 3D space;

determining a particular sampling point with unknown sampling trajectory for ray casting within the screen representation;

selecting a set of mesh coordinates from the plurality of mesh coordinates in the pre-computed distortion mesh based on proximities between the particular sampling point and the predetermined points associated with the set of mesh coordinates;

computing a sampling trajectory for the particular sampling point with the unknown sampling trajectory based on the known sampling trajectories specified by the selected set of mesh coordinates in the pre-computed distortion mesh;

casting a ray into the 3D space using the sampling trajectory;

computing an intersection location between the cast ray and an object in the 3D space; and

determining a color value for the particular sampling point based on the intersection location.

2. The method of claim 1 , wherein computing the sampling trajectory for the particular sampling point comprises:

estimating a mesh coordinate through which to cast the ray into the 3D space based on interpolation of the selected set of mesh coordinates using a particular interpolation technique.

3. The method of claim 2 , wherein the particular interpolation technique is a bilinear interpolation or a bicubic interpolation.

4. The method of claim 1 , wherein determining the color value for the particular sampling point comprises:

transforming the intersecting location of the cast ray from the 3D space into a texture grid, wherein the texture grid comprises a plurality of texels each reflecting color information; and

calculating, using a particular interpolation technique, the color value based on interpolation of neighboring texels surrounding the intersection location.

5. The method of claim 4 , wherein the particular interpolation technique is a bilinear interpolation or a bicubic interpolation.

6. The method of claim 1 , further comprising:

generating a display for a wearable headset based on the determined color value for the particular sampling point.

7. The method of claim 6 , wherein the wearable headset is a virtual reality (VR) headset or an augmented reality (AR) headset.

8. The method of claim 6 , wherein the pre-computed distortion mesh is used to correct effects of chromatic aberration resulting from one or more optics of the wearable headset.

9. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

access a pre-computed distortion mesh defined in a 3D space, the pre-computed distortion mesh comprising a plurality of mesh coordinates that are respectively associated with a plurality of predetermined points in a screen representation, wherein each mesh coordinate in the pre-computed distortion mesh specifies a known sampling trajectory for a ray cast from the associated predetermined point into the 3D space;

determine a particular sampling point with unknown sampling trajectory for ray casting within the screen representation;

select a set of mesh coordinates from the plurality of mesh coordinates in the pre-computed distortion mesh based on proximities between the particular sampling point and the predetermined points associated with the set of mesh coordinates;

compute a sampling trajectory for the particular sampling point with the unknown sampling trajectory based on the known sampling trajectories specified by the selected set of mesh coordinates in the pre-computed distortion mesh;

cast a ray into the 3D space using the sampling trajectory;

compute an intersection location between the cast ray and an object in the 3D space; and

determine a color value for the particular sampling point based on the intersection location.

10. The media of claim 9 , wherein to compute the sampling trajectory for the particular sampling point, the software is further operable to:

estimate a mesh coordinate through which to cast the ray into the 3D space based on interpolation of the selected set of mesh coordinates using a particular interpolation technique.

11. The media of claim 10 , wherein the particular interpolation technique is a bilinear interpolation or a bicubic interpolation.

12. The media of claim 9 , wherein to determine the color value for the particular sampling point, the software is further operable to:

transform the intersecting location of the cast ray from the 3D space into a texture grid, wherein the texture grid comprises a plurality of texels each reflecting color information; and

calculate, using a particular interpolation technique, the color value based on interpolation of neighboring texels surrounding the intersection location.

13. The media of claim 12 , wherein the particular interpolation technique is a bilinear interpolation or a bicubic interpolation.

14. The media of claim 9 , wherein the software is further operable to:

generate a display for a wearable headset based on the determined color value for the particular sampling point.

15. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

access a pre-computed distortion mesh defined in a 3D space, the pre-computed distortion mesh comprising a plurality of mesh coordinates that are respectively associated with a plurality of predetermined points in a screen representation, wherein each mesh coordinate in the pre-computed distortion mesh specifies a known sampling trajectory for a ray cast from the associated predetermined point into the 3D space;

determine a particular sampling point with unknown sampling trajectory for ray casting within the screen representation;

select a set of mesh coordinates from the plurality of mesh coordinates in the pre-computed distortion mesh based on proximities between the particular sampling point and the predetermined points associated with the set of mesh coordinates;

compute a sampling trajectory for the particular sampling point with the unknown sampling trajectory based on the known sampling trajectories specified by the selected set of mesh coordinates in the pre-computed distortion mesh;

cast a ray into the 3D space using the sampling trajectory;

compute an intersection location between the cast ray and an object in the 3D space; and

determine a color value for the particular sampling point based on the intersection location.

16. The system of claim 15 , wherein to compute the sampling trajectory for the particular sampling point, the processors are further operable to:

estimate a mesh coordinate through which to cast the ray into the 3D space based on interpolation of the selected set of mesh coordinates using a particular interpolation technique.

17. The system of claim 16 , wherein the particular interpolation technique is a bilinear interpolation or a bicubic interpolation.

18. The system of claim 15 , wherein to determine the color value for the particular sampling point, the processors are further operable to:

transform the intersecting location of the cast ray from the 3D space into a texture grid, wherein the texture grid comprises a plurality of texels each reflecting color information; and

calculate, using a particular interpolation technique, the color value based on interpolation of neighboring texels surrounding the intersection location.

19. The system of claim 18 , wherein the particular interpolation technique is a bilinear interpolation or a bicubic interpolation.

20. The system of claim 15 , wherein the processors are further operable to: generate a display for a wearable headset based on the determined color value for the particular sampling point.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2019
From: SEILER, LARRY
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 050910/0592 →