IP Library Granted Patent US 10,769,752
Granted Patent B2
US 10,769,752 · App. 15/924,011 · Granted Sep 8, 2020

Mixed reality system with virtual content warping and method of generating virtual content using same

Inventors: Reza Nourai (Danville, CA); Robert Blake Taylor (Porter Ranch, CA)
Assignee: Magic Leap, Inc.
G06T3/0093G06T15/205G06T15/40G06T17/10G06T19/006G06T2210/44
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,769,752
App. No.
15/924,011
Granted
Sep 8, 2020
Kind
B2
Abstract

A computer implemented method for warping virtual content includes generating warped virtual content by transforming source virtual content. The method also includes determining whether a memory location corresponding to an X, Y location of the warped virtual content in an output frame of reference is occupied by pre-existing virtual content. The method further includes storing the warped virtual content in the memory location if the memory location is not occupied. Moreover, the method includes comparing respective Z locations of the warped virtual content and the pre-existing virtual content to identify virtual content with a Z location closer to a viewing location if the memory location is occupied. The method also includes storing the warped virtual content in the memory location corresponding to the X, Y location if a Z location of warped virtual content is closer to the viewing location than a pre-existing Z location of pre-existing virtual content.

Claims (48)

1. A computer implemented method for warping virtual content:

generating warped virtual content by transforming source virtual content;

determining whether a memory location corresponding to an X, Y location of the warped virtual content in an output frame of reference is occupied by pre-existing virtual content;

storing the warped virtual content in the memory location if the memory location is not occupied by the pre-existing virtual content;

comparing respective Z locations of the warped virtual content and the pre-existing virtual content to identify virtual content with a Z location closer to a viewing location in the output frame of reference if the memory location is occupied by the pre-existing virtual content; and

storing the warped virtual content in the memory location corresponding to the X, Y location if a Z location of the warped virtual content is closer to the viewing location than a pre-existing Z location of the pre-existing virtual content in the output frame of reference,

wherein generating the warped virtual content, determining whether the memory location is occupied, comparing the respective Z locations of the warped virtual content and the pre-existing virtual content if the memory location is occupied, and storing the warped virtual content in the memory location all occur in a single pass.

2. The method of claim 1 , further comprising discarding the warped virtual content if the pre-existing Z location of the pre-existing virtual content is closer to the viewing location than the Z location of the warped virtual content in the output frame of reference.

3. The method of claim 1 , wherein transforming the source virtual content comprises:

generate a pixel map by mapping pixels of an image;

dividing the pixel map into a plurality of primitives, and

performing a transformation on one of the plurality of primitives into the output frame of reference,

wherein the source virtual content is the one of the plurality of primitives.

4. The method of claim 3 , wherein each of the plurality of primitives is a quadrilateral.

5. The method of claim 3 , wherein each of the plurality of primitives is a triangle.

6. The method of claim 3 , wherein each of the plurality of primitives is a pixel.

7. The method of claim 3 , wherein the transformation is a Fourier transformation.

8. The method of claim 1 , further comprising generating the source virtual content using a source frame of reference different from the output frame of reference.

9. The method of claim 8 , wherein the source virtual content is transformed from the source frame of reference to the output frame of reference.

10. The method of claim 9 , wherein the respective Z locations of the warped virtual content and the pre-existing virtual content in the output frame of reference are different from corresponding Z locations of the warped virtual content and the pre-existing virtual content in the source frame of reference.

11. The method of claim 1 , wherein the source virtual content comprises image information and a source X, Y location in a source frame of reference.

12. The method of claim 11 , wherein the image information comprises a brightness.

13. The method of claim 11 , wherein the image information comprises a color.

14. The method of claim 11 , wherein the image information comprises a Z location in the source frame of reference.

15. The system of claim 11 , wherein the warped virtual content comprises an output X, Y location in the output frame of reference.

16. A system for warping virtual content, comprising:

an input memory to store source virtual content;

a command processor to divide the source virtual content into a plurality of scheduling units;

a scheduler to determine a processing sequence;

a graphics processing unit (GPU) core, the GPU core having a plurality of shader cores to process one of the plurality of scheduling units to generate warped virtual content;

a first in, first out (FIFO) memory to store output from the GPU core;

a raster operations processor (ROP) to rasterize the warped virtual content for display; and

a buffer memory to temporarily store the warped virtual content,

wherein when pre-existing virtual content temporarily stored in the buffer memory conflicts with the warped virtual content, the ROP compares respective Z locations of the pre-existing virtual content and the warped virtual content and writes the warped virtual content in the buffer memory when a Z location of the warped virtual content is closer to a viewing location than a pre-existing Z location of the pre-existing virtual content, and

wherein the following occur in a single pass:

the GPU generates the warped virtual content,

the ROP determines whether the pre-existing virtual content conflicts with the warped virtual content,

the ROP compares the respective Z locations of the pre-existing virtual content and the warped virtual content if the pre-existing virtual content conflicts with the warped virtual content, and

the ROP writes the warped virtual content in the buffer memory when the Z location of the warped virtual content is closer to the viewing location than the pre-existing Z location of the pre-existing virtual content.

17. The system of claim 16 , wherein the source virtual content comprises a source X, Y value in a source frame of reference.

18. The system of claim 17 , wherein the warped virtual content comprises an output X, Y value in an output frame of reference.

19. A computer program product embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a method for warping virtual content, the method comprising:

generating warped virtual content by transforming source virtual content;

determining whether a memory location corresponding to an X, Y location of the warped virtual content in an output frame of reference is occupied by pre-existing virtual content;

storing the warped virtual content in the memory location if the memory location is not occupied by the pre-existing virtual content;

comparing respective Z locations of the warped virtual content and the pre-existing virtual content to identify virtual content with a Z location closer to a viewing location in the output frame of reference if the memory location is occupied by the pre-existing virtual content; and

storing the warped virtual content in the memory location corresponding to the X, Y location if a Z location of the warped virtual content is closer to the viewing location than a pre-existing Z location of the pre-existing virtual content in the output frame of reference,

wherein generating the warped virtual content, determining whether the memory location is occupied, comparing the respective Z locations of the warped virtual content and the pre-existing virtual content if the memory location is occupied, and storing the warped virtual content in the memory location all occur in a single pass.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2018
From: NOURAI, REZA; TAYLOR, RIBERT BLAKE
To: MAGIC LEAP, INC.
Reel/Frame 045650/0238 →
Continuity (2)
Provisional Application 62472985 · Mar 17, 2017
Related Publication 20180268518A1 · Sep 20, 2018