IP Library Granted Patent US 11,138,782
Granted Patent B2
US 11,138,782 · App. 16/594,695 · Granted Oct 5, 2021

Systems and methods for rendering optical distortion effects

Inventors: Warren Andrew Hunt (Woodinville, WA); Anton S. Kaplanyan (Redmond, WA); Michael Mara (Redmond, WA); Alexander Nankervis (Seattle, WA)
Assignee: Facebook Technologies, LLC
G06T15/005G02B3/14G02B27/017G06T15/20G06T19/006G06T2207/10148
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,138,782
App. No.
16/594,695
Granted
Oct 5, 2021
Kind
B2
Abstract

In one embodiment, a computing system may determine an orientation in a three-dimensional (3D) space and generate a plurality of coordinates in the 3D space based on the determined orientation. The system may access pre-determined ray trajectory definitions associated with the plurality of coordinates. The system may determine visibility information of one or more objects defined within the 3D space by projecting rays through the plurality of coordinates, wherein trajectories of the rays from the plurality of coordinates are determined based on the pre-determined ray trajectory definitions. The system may then generate an image of the one or more objects based on the determined visibility information of the one or more objects.

Claims (42)

1. A method for image rendering, comprising, by a computing system:

determining an orientation for a virtual camera in a three-dimensional (3D) space from which to render an image of one or more objects defined within the 3D space;

generating a plurality of pixel coordinates in the 3D space based on the determined orientation, the plurality of pixel coordinates representing locations of a plurality of pixels of the image that is to be rendered from the orientation of the virtual camera;

accessing a non-uniform sampling grid that specifies pre-determined ray trajectory definitions associated with the plurality of pixel coordinates, wherein each of the plurality of pixel coordinates is associated with one of the pre-determined ray trajectory definitions;

determining visibility information of the one or more objects defined within the 3D space by projecting rays through the plurality of pixel coordinates, wherein trajectories of the rays from the plurality of pixel coordinates are determined based on the pre-determined ray trajectory definitions; and

rendering the image of the one or more objects as viewed from the determined orientation of the virtual camera based on the determined visibility information of the one or more objects.

2. The method of claim 1 , further comprising:

generating a plurality of second pixel coordinates in the 3D space using the determined orientation and the pre-determined ray trajectory definitions;

wherein the trajectories of the rays from the plurality of pixel coordinates are determined based on the plurality of second pixel coordinates.

3. The method of claim 2 , wherein the trajectory of each of the rays projected through one of the plurality of pixel coordinates travels through an associated one of the plurality of second pixel coordinates.

4. The method of claim 2 , wherein the plurality of second pixel coordinates fit on a curved surface in the 3D space.

5. The method of claim 2 , wherein the plurality of second pixel coordinates are spaced non-uniformly.

6. The method of claim 1 , wherein the pre-determined ray trajectory definitions form a focal surface map defined by a Catmull-Rom surface.

7. The method of claim 1 , wherein the pre-determined ray trajectory definitions specify an algorithm for a first coordinate of the plurality of pixel coordinates, wherein the trajectory of one of the rays projected through the first coordinate is determined by processing the first coordinate in accordance with the algorithm.

8. The method of claim 1 , wherein the pre-determined ray trajectory definitions are defined for a first primary color, wherein the rendering of the image is further based on a plurality of second pre-determined ray trajectory definitions defined for a second primary color.

9. The method of claim 1 , wherein an angle between two of the rays projected through two of the plurality of pixel coordinates is greater than 90°.

10. The method of claim 9 , further comprising:

displaying the rendered image on a display with a field of view greater than 90°.

11. The method of claim 1 , wherein the rendered image includes a defocus or depth-of-field blurring effect.

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

determine an orientation for a virtual camera in a three-dimensional (3D) space from which to render an image of one or more objects defined within the 3D space;

generate a plurality of pixel coordinates in the 3D space based on the determined orientation, the plurality of pixel coordinates representing locations of a plurality of pixels of the image that is to be rendered from the orientation of the virtual camera;

access a non-uniform sampling grid that specifies pre-determined ray trajectory definitions associated with the plurality of pixel coordinates, wherein each of the plurality of pixel coordinates is associated with one of the pre-determined ray trajectory definitions;

determine visibility information of the one or more objects defined within the 3D space by projecting rays through the plurality of pixel coordinates, wherein trajectories of the rays from the plurality of pixel coordinates are determined based on the pre-determined ray trajectory definitions; and

rendering the image of the one or more objects as viewed from the determined orientation of the virtual camera based on the determined visibility information of the one or more objects.

13. The media of claim 12 , wherein the software is further operable when executed to:

generate a plurality of second pixel coordinates in the 3D space using the determined orientation and the pre-determined ray trajectory definitions;

wherein the trajectories of the rays from the plurality of pixel coordinates are determined based on the plurality of second pixel coordinates.

14. The media of claim 13 , wherein the trajectory of each of the rays projected through one of the plurality of pixel coordinates travels through an associated one of the plurality of second pixel coordinates.

15. The media of claim 12 , wherein the pre-determined ray trajectory definitions specify an algorithm for a first coordinate of the plurality of pixel coordinates, wherein the trajectory of one of the rays projected through the first coordinate is determined by processing the first coordinate in accordance with the algorithm.

16. The media of claim 12 , wherein the pre-determined ray trajectory definitions are defined for a first primary color, wherein the rendering of the image is further based on a plurality of second pre-determined ray trajectory definitions defined for a second primary color.

17. 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:

determine an orientation for a virtual camera in a three-dimensional (3D) space from which to render an image of one or more objects defined within the 3D space;

generate a plurality of pixel coordinates in the 3D space based on the determined orientation, the plurality of pixel coordinates representing locations of a plurality of pixels of the image that is to be rendered from the orientation of the virtual camera;

access a non-uniform sampling grid that specifies pre-determined ray trajectory definitions associated with the plurality of pixel coordinates, wherein each of the plurality of pixel coordinates is associated with one of the pre-determined ray trajectory definitions;

determine visibility information of the one or more objects defined within the 3D space by projecting rays through the plurality of pixel coordinates, wherein trajectories of the rays from the plurality of pixel coordinates are determined based on the pre-determined ray trajectory definitions; and

rendering the image of the one or more objects as viewed from the determined orientation of the virtual camera based on the determined visibility information of the one or more objects.

18. The system of claim 17 , wherein the processors are further operable when executing the instructions to:

generate a plurality of second pixel coordinates in the 3D space using the determined orientation and the pre-determined ray trajectory definitions;

wherein the trajectories of the rays from the plurality of pixel coordinates are determined based on the plurality of second pixel coordinates.

19. The system of claim 18 , wherein the trajectory of each of the rays projected through one of the plurality of pixel coordinates travels through an associated one of the plurality of second pixel coordinates.

20. The system of claim 17 , wherein the pre-determined ray trajectory definitions specify an algorithm for a first coordinate of the plurality of pixel coordinates, wherein the trajectory of one of the rays projected through the first coordinate is determined by processing the first coordinate in accordance with the algorithm.

Assignments (1)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
Continuity (2)
Continuation 15954506 · Apr 16, 2018
Related Publication 20200043219A1 · Feb 6, 2020