IP Library Granted Patent US 10,489,966
Granted Patent B2
US 10,489,966 · App. 16/120,020 · Granted Nov 26, 2019

Generating a new frame using rendered content and non-rendered content from a previous perspective

Inventors: Reza Nourai (Dublin, CA); Robert Blake Taylor (Porter Ranch, CA); Michael Harold Liebenow (Loxahatchee, FL)
Assignee: MAGIC LEAP, INC.
G06T15/20G06F3/011G06F3/012G06T3/0093G06T15/205G06T15/40G06T1/60G06T2210/62
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 10,489,966
App. No.
16/120,020
Granted
Nov 26, 2019
Kind
B2
Abstract

Disclosed is an approach for constructing a new frame using rendered content and non-rendered content from a previous perspective. Points of visible surfaces of a first set of objects from a first perspective are rendered. Both rendered content and non-rendered content from the first perspective are stored. The new frame from the second perspective is generated using the rendered content and the non-rendered content from the first perspective.

Claims (107)

1. A method for constructing a new frame using rendered content and non-rendered content from a previous perspective, the method comprising:

rendering points of visible surfaces of a first set of objects from a first perspective;

storing both rendered content and non-rendered content from the first perspective, the rendered content corresponding to the points of the visible surfaces of the first set of objects from the first perspective, and the non-rendered content corresponding to non-visible portions of the first set of objects from the first perspective;

receiving a request to display a new frame from a second perspective;

generating the new frame from the second perspective using the rendered content and the non-rendered content from the first perspective; and

displaying the new frame from the second perspective.

2. The method of claim 1 , further comprising identifying the first perspective by capturing a first pose of a user.

3. The method of claim 1 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises storing both the rendered content and the non-rendered content in at least one of linked lists, array structures, true volumetric representations, voxels, surface definitions, N-dimensional data structures, and N-dimensional graph representations.

4. The method of claim 1 , further comprising determining different granularities for both rendered content and non-rendered content for the one or more objects from the first perspective.

5. The method of claim 1 , further comprising:

rendering points of visible surfaces of a second set of objects from the second perspective;

warping at least some of the stored rendered content from the first perspective to the second perspective;

wherein generating the second from the second perspective comprises combining new rendered content and warped rendered content, the new rendered content corresponding to the points of the visible surfaces of the second set of objects from the second perspective, and the warped rendered content corresponding to the stored rendered content warped from the first perspective to the second perspective.

6. The method of claim 5 , wherein rendering the points of the visible surfaces of the second set of objects from the second perspective comprises:

determining a third set of objects visible from the second perspective;

comparing the third set of objects from the second perspective to the stored rendered content from the first perspective to identify the second set of objects, wherein the second set of objects includes objects from the third set of objects that are not in the stored rendered content; and

rendering the points of the visible surfaces of the second set of objects.

7. The method of claim 5 , wherein warping the at least some of the stored content from the first perspective to the second perspective comprises:

determining a third set of objects visible from the second perspective;

comparing the third set of objects from the second perspective to the stored rendered content from the first perspective to identify objects that are in both the third set of objects and the stored rendered content;

warping the objects that are in both the third set of objects and the stored rendered content.

8. The method of claim 1 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises:

identifying the rendered content and the non-rendered content from the first perspective;

analyzing the rendered content and the non-rendered content to determine if content corresponds to one of a surface point and a non-surface point;

discarding the content corresponding to a non-surface point; and

storing the content corresponding to the surface point.

9. The method of claim 1 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises:

predicting a head movement of a user;

calculating bounds for the predicted head movement of the user based at least in part on one or more of a predicted direction, a current speed of movement of the user, and a predicted speed of movement for the user, the bounds corresponding to a maximum predicted head movement for the second perspective;

determine content within the calculated bounds for the predicted head movement; and

storing the content within the calculated bounds.

10. The method of claim 1 , wherein storing both rendered content and non-rendered content for the one or more objects from the first perspective further comprises:

determining opaque points of one or more opaque objects;

storing image data corresponding to the opaque points;

determining semi-transparent points of one or more semi-transparent objects; and

storing image data of the semi-transparent points, wherein the first set of objects comprises the one or more opaque objects and the one or more semi-transparent objects.

11. The system of claim 1 , wherein storing both rendered content and non-rendered content for the one or more objects from the first perspective further comprises:

determining opaque points of one or more opaque objects;

storing image data corresponding to the opaque points;

determining semi-transparent points of one or more semi-transparent objects; and

storing image data of the semi-transparent points, wherein the first set of objects comprises the one or more opaque objects and the one or more semi-transparent objects.

12. A system for constructing a new frame using rendered content and non-rendered content from a previous perspective, the system comprising:

a non-transitory computer-readable storage medium storing executable computer instructions that, when executed, perform steps comprising:

rendering points of visible surfaces of a first set of objects from a first perspective;

storing both rendered content and non-rendered content from the first perspective, the rendered content corresponding to the points of the visible surfaces of the first set of objects from the first perspective, and the non-rendered content corresponding to non-visible portions of the first set of objects from the first perspective;

receiving a request to display a new frame from a second perspective;

generating the new frame from the second perspective using the rendered content and the non-rendered content from the first perspective; and

displaying the new frame from the second perspective; and

a processor configured to execute the computer instructions.

13. The system of claim 12 , wherein the instructions, when executed, perform further steps comprising identifying the first perspective by capturing a first pose of a user.

14. The system of claim 12 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises storing both the rendered content and the non-rendered content in at least one of linked lists, array structures, true volumetric representations, voxels, surface definitions, N-dimensional data structures, and N-dimensional graph representations.

15. The system of claim 12 , wherein the instructions, when executed, perform further steps comprising determining different granularities for both rendered content and non-rendered content for the one or more objects from the first perspective.

16. The system of claim 12 , wherein the instructions, when executed, perform further steps comprising:

rendering points of visible surfaces of a second set of objects from the second perspective;

warping at least some of the stored rendered content from the first perspective to the second perspective;

wherein generating the second from the second perspective comprises combining new rendered content and warped rendered content, the new rendered content corresponding to the points of the visible surfaces of the second set of objects from the second perspective, and the warped rendered content corresponding to the stored rendered content warped from the first perspective to the second perspective.

17. The system of claim 16 , rendering the points of the visible surfaces of the second set of objects from the second perspective comprises:

determining a third set of objects visible from the second perspective;

comparing the third set of objects from the second perspective to the stored rendered content from the first perspective to identify the second set of objects, wherein the second set of objects includes objects from the third set of objects that are not in the stored rendered content; and

rendering the points of the visible surfaces of the second set of objects.

18. The system of claim 16 , wherein warping the at least some of the stored content from the first perspective to the second perspective comprises:

determining a third set of objects visible from the second perspective;

comparing the third set of objects from the second perspective to the stored rendered content from the first perspective to identify objects that are in both the third set of objects and the stored rendered content;

warping the objects that are in both the third set of objects and the stored rendered content.

19. The system of claim 12 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises:

identifying the rendered content and the non-rendered content from the first perspective;

analyzing the rendered content and the non-rendered content to determine if content corresponds to one of a surface point and a non-surface point;

discarding the content corresponding to a non-surface point; and

storing the content corresponding to the surface point.

20. The system of claim 12 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises:

predicting a head movement of a user;

calculating bounds for the predicted head movement of the user based at least in part on one or more of a predicted direction, a current speed of movement of the user, and a predicted speed of movement for the user, the bounds corresponding to a maximum predicted head movement for the second perspective;

determine content within the calculated bounds for the predicted head movement; and

storing the content within the calculated bounds.

21. A computer program product embodied in a non-transitory computer readable medium, the computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method for constructing a new frame using rendered content and non-rendered content from a previous perspective, the method comprising:

rendering points of visible surfaces of a first set of objects from a first perspective;

storing both rendered content and non-rendered content from the first perspective, the rendered content corresponding to the points of the visible surfaces of the first set of objects from the first perspective, and the non-rendered content corresponding to non-visible portions of the first set of objects from the first perspective;

receiving a request to display a new frame from a second perspective;

generating the new frame from the second perspective using the rendered content and the non-rendered content from the first perspective; and

displaying the new frame from the second perspective.

22. The computer program product of claim 21 , further comprising:

rendering points of visible surfaces of a second set of objects from the second perspective;

warping at least some of the stored rendered content from the first perspective to the second perspective;

wherein generating the second from the second perspective comprises combining new rendered content and warped rendered content, the new rendered content corresponding to the points of the visible surfaces of the second set of objects from the second perspective, and the warped rendered content corresponding to the stored rendered content warped from the first perspective to the second perspective.

23. The computer program product of claim 21 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises:

identifying the rendered content and the non-rendered content from the first perspective;

analyzing the rendered content and the non-rendered content to determine if content corresponds to one of a surface point and a non-surface point;

discarding the content corresponding to a non-surface point; and

storing the content corresponding to the surface point.

24. The computer program product of claim 21 , wherein storing both the rendered content and the non-rendered content from the first perspective comprises:

predicting a head movement of a user;

calculating bounds for the predicted head movement of the user based at least in part on one or more of a predicted direction, a current speed of movement of the user, and a predicted speed of movement for the user, the bounds corresponding to a maximum predicted head movement for the second perspective;

determine content within the calculated bounds for the predicted head movement; and

storing the content within the calculated bounds.

25. The computer program product of claim 21 , wherein storing both rendered content and non-rendered content for the one or more objects from the first perspective further comprises:

determining opaque points of one or more opaque objects;

storing image data corresponding to the opaque points;

determining semi-transparent points of one or more semi-transparent objects; and

storing image data of the semi-transparent points, wherein the first set of objects comprises the one or more opaque objects and the one or more semi-transparent objects.

26. A method for constructing a new frame using rendered content and non-rendered content from a previous perspective, the method comprising:

rendering one or more objects from a first perspective;

storing both rendered content and non-rendered content for the one or more objects from the first perspective, the non-rendered content corresponding to non-visible portions of the object from the first perspective;

receiving a request to display the one or more object from a second perspective;

warping at least some of the rendered content for the one or more objects to create warped content from the second perspective;

rendering at least some of the non-rendered content for the one or more objects to create second rendered content from the second perspective; and

constructing the one or more objects from the second perspective by combining both the warped content and the second rendered content from the second perspective; and

displaying the one or more objects from the second perspective.

Assignments (4)
SECURITY INTEREST Recorded Oct 15, 2025
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073109/0476 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: NOURAI, REZA; TAYLOR, ROBERT BLAKE; LIEBENOW, MICHAEL HAROLD
To: MAGIC LEAP, INC.
Reel/Frame 057357/0482 →
ASSIGNMENT OF SECURITY INTEREST IN PATENTS Recorded Nov 7, 2019
From: JPMORGAN CHASE BANK, N.A.
To: CITIBANK, N.A.
Reel/Frame 050967/0138 →
PATENT SECURITY AGREEMENT Recorded Aug 22, 2019
From: MAGIC LEAP, INC.; MOLECULAR IMPRINTS, INC.; MENTOR ACQUISITION ONE, LLC
To: JP MORGAN CHASE BANK, N.A.
Reel/Frame 050138/0287 →
Cited By (1)
US 12,260,493