IP Library Granted Patent US 10,313,653
Granted Patent B1
US 10,313,653 · App. 15/814,314 · Granted Jun 4, 2019

Systems and methods for procedural rendering of cinematic virtual reality content

Inventor: John Cumming (Toronto, CA)
Assignee: Secret Location Inc.
H04N13/117G06T3/0037G06T19/003H04N13/133H04N2013/0081
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,313,653
App. No.
15/814,314
Granted
Jun 4, 2019
Kind
B1
Abstract

Interactive content is obtained, the interactive content including a stereoscopic equirectangular video frame. A UV coordinate screen space is generated. A first location of the UV coordinate screen space is computed. A second location of the UV coordinate screen space is computed. A point of the UV coordinate screen space to procedurally render is selected. Virtual spherical coordinates are computed using the point of the UV coordinate screen space to procedurally render. The virtual spherical coordinates are rotated using a rotation matrix. An equirectangular coordinate value within the video frame is determined using the rotated virtual spherical coordinates. The pixel values of the stereoscopic equirectangular video frame are identified using the equirectangular coordinate value. The pixel values are returned for the UV coordinate screen space, thereby causing a corresponding presentation on a physical screen of an interactive content player device.

Claims (58)

1. A system for procedural rendering of interactive content, the system comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the system to perform:

obtaining interactive content, the interactive content including a stereoscopic equirectangular video frame;

generating a UV coordinate screen space, the UV coordinate screen space corresponding to a physical screen of an interactive content player device;

computing a first location of the UV coordinate screen space, the first location of the UV coordinate screen space comprising a first center of a first portion of the UV coordinate screen space;

computing a second location of the UV coordinate screen space, the second location of the UV coordinate screen space comprising a second center of a second portion of the UV coordinate screen space;

selecting a point of the UV coordinate screen space to procedurally render, the point to procedurally render being within the first portion of the UV coordinate screen space or the second portion of the UV coordinate screen space;

computing virtual spherical coordinates using the point of the UV coordinate screen space to procedurally render, the computing the virtual spherical coordinates comprising projecting a line from an origin of a virtual sphere through a plane at the point of the UV coordinate screen space to procedurally render, the plane lying at a radius of the virtual sphere, and subsequently deriving an azimuth value and an altitude value based on the projected line;

obtaining a rotation matrix;

rotating the virtual spherical coordinates using the rotation matrix;

determining equirectangular UV coordinate values within the stereoscopic equirectangular video frame using the rotated virtual spherical coordinates, the equirectangular UV coordinate values being based on a rotation of the azimuth and altitude values;

identifying pixel values of the stereoscopic equirectangular video frame using the equirectangular UV coordinate values; and

returning the pixel values of the stereoscopic equirectangular video frame for the UV coordinate screen space, thereby causing a corresponding presentation on the physical screen of the interactive content player device.

2. The system of claim 1 , wherein the interactive content comprises un-rendered cinematic virtual reality content.

3. The system of claim 1 , wherein the interactive content player device comprises a virtual reality player device.

4. The system of claim 1 , wherein the first portion of the UV coordinate screen space corresponds to a left-eye portion of the UV coordinate screen space, and the second portion of the UV coordinate screen space corresponds to a right-eye portion of the UV coordinate screen space.

5. The system of claim 1 , wherein the instructions further cause the system to determine whether the point of the UV coordinate screen space to procedurally render is within the first portion of the UV coordinate screen space or the second portion of the UV coordinate screen space.

6. The system of claim 5 , wherein if the point to procedurally render is within the second portion of the UV coordinate screen space, the instructions cause the system to perform:

normalizing the point of the UV coordinate screen space to procedurally render to a corresponding point in the first portion of the UV coordinate screen space; and

recording the point of the UV coordinate screen space to procedurally render for the second portion of the UV coordinate screen space.

7. The system of claim 1 , wherein the rotation matrix is obtained from the interactive content player device, and the rotation matrix indicates a position of a user's head.

8. The system of claim 1 , wherein the rotating the virtual spherical coordinates using the rotation matrix comprises multiplying the virtual spherical coordinates by the rotation matrix, and subsequently normalizing a resultant vector to a predetermined length.

9. The system of claim 1 , wherein if the point of the UV coordinate screen space to procedurally render is within the second portion of the UV coordinate screen space, the determining the equirectangular UV coordinate values within the stereoscopic equirectangular video frame using the rotated virtual spherical coordinates further comprises subsequently adding a predetermined value to at least one of the equirectangular UV coordinate values.

10. A method being implemented by a computing system including one or more physical processors and storage media storing machine-readable instructions, the method comprising:

obtaining interactive content, the interactive content including a stereoscopic equirectangular video frame;

generating a UV coordinate screen space, the UV coordinate screen space corresponding to a physical screen of an interactive content player device;

computing a first location of the UV coordinate screen space, the first location of the UV coordinate screen space comprising a first center of a first portion of the UV coordinate screen space;

computing a second location of the UV coordinate screen space, the second location of the UV coordinate screen space comprising a second center of a second portion of the UV coordinate screen space;

selecting a point of the UV coordinate screen space to procedurally render, the point to procedurally render being within the first portion of the UV coordinate screen space or the second portion of the UV coordinate screen space;

computing virtual spherical coordinates using the point of the UV coordinate screen space to procedurally render, the computing the virtual spherical coordinates comprising projecting a line from an origin of a virtual sphere through a plane at the point of the UV coordinate screen space to procedurally render, the plane lying at a radius of the virtual sphere, and subsequently deriving an azimuth value and an altitude value based on the projected line;

obtaining a rotation matrix;

rotating the virtual spherical coordinates using the rotation matrix;

determining equirectangular UV coordinate values within the stereoscopic equirectangular video frame using the rotated virtual spherical coordinates, the equirectangular UV coordinate values being based on a rotation of the azimuth and altitude values;

identifying pixel values of the stereoscopic equirectangular video frame using the equirectangular UV coordinate values; and

returning the pixel values of the stereoscopic equirectangular video frame for the UV coordinate screen space, thereby causing a corresponding presentation on the physical screen of the interactive content player device.

11. The method of claim 10 , wherein the interactive content comprises un-rendered cinematic virtual reality content.

12. The method of claim 10 , wherein the interactive content player device comprises a virtual reality player device.

13. The method of claim 10 , wherein the first portion of the UV coordinate screen space corresponds to a left-eye portion of the UV coordinate screen space, and the second portion of the UV coordinate screen space corresponds to a right-eye portion of the UV coordinate screen space.

14. The method of claim 10 , further comprising determining whether the point of the UV coordinate screen space to procedurally render is within the first portion of the UV coordinate screen space or the second portion of the UV coordinate screen space.

15. The method of claim 14 , wherein if the point to procedurally render is within the second portion of the UV coordinate screen space, the method further comprises:

normalizing the point of the UV coordinate screen space to procedurally render to a corresponding point in the first portion of the UV coordinate screen space; and

recording the point of the UV coordinate screen space to procedurally render for the second portion of the UV coordinate screen space.

16. The method of claim 10 , wherein the rotation matrix is obtained from the interactive content player device, and the rotation matrix indicates a position of a user's head.

17. The method of claim 10 , wherein the rotating the virtual spherical coordinates using the rotation matrix comprises multiplying the virtual spherical coordinates by the rotation matrix, and subsequently normalizing a resultant vector to a predetermined length.

18. The method of claim 10 , wherein if the point of the UV coordinate screen space to procedurally render is within the second portion of the UV coordinate screen space, the determining the equirectangular UV coordinate values within the stereoscopic equirectangular video frame using the rotated virtual spherical coordinates further comprises subsequently adding a predetermined value to at least one of the equirectangular UV coordinate values.

19. A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

obtaining interactive content, the interactive content including a stereoscopic equirectangular video frame;

generating a UV coordinate screen space, the UV coordinate screen space corresponding to a physical screen of an interactive content player device;

computing a first location of the UV coordinate screen space, the first location of the UV coordinate screen space comprising a first center of a first portion of the UV coordinate screen space;

computing a second location of the UV coordinate screen space, the second location of the UV coordinate screen space comprising a second center of a second portion of the UV coordinate screen space;

selecting a point of the UV coordinate screen space to procedurally render, the point to procedurally render being within the first portion of the UV coordinate screen space or the second portion of the UV coordinate screen space;

computing virtual spherical coordinates using the point of the UV coordinate screen space to procedurally render, the computing the virtual spherical coordinates comprising projecting a line from an origin of a virtual sphere through a plane at the point of the UV coordinate screen space to procedurally render, the plane lying at a radius of the virtual sphere, and subsequently deriving an azimuth value and an altitude value based on the projected line;

obtaining a rotation matrix;

rotating the virtual spherical coordinates using the rotation matrix;

determining equirectangular UV coordinate values within the stereoscopic equirectangular video frame using the rotated virtual spherical coordinates, the equirectangular UV coordinate values being based on a rotation of the azimuth and altitude values;

identifying pixel values of the stereoscopic equirectangular video frame using the equirectangular UV coordinate values; and

returning the pixel values of the stereoscopic equirectangular video frame for the UV coordinate screen space, thereby causing a corresponding presentation on the physical screen of the interactive content player device.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2023
From: FIND YOUR FUN INC.
To: HASBRO, INC.
Reel/Frame 064493/0653 →
CHANGE OF NAME Recorded Aug 4, 2023
From: SECRET LOCATION INC.
To: FIND YOUR FUN INC.
Reel/Frame 064502/0501 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2017
From: CUMMING, JOHN
To: SECRET LOCATION INC.
Reel/Frame 044286/0524 →