IP Library Granted Patent US 10,453,247
Granted Patent B1
US 10,453,247 · App. 15/945,959 · Granted Oct 22, 2019

Vertex shift for rendering 360 stereoscopic content

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,453,247
App. No.
15/945,959
Granted
Oct 22, 2019
Kind
B1
Abstract

A 360 video system can render 360 stereoscopic content based on a virtual environment using a standard GPU rendering pipeline. In some embodiments, in order to improve efficiency in generating 360 stereoscopic content, a vertex shift technique can be used to approximate multiple viewpoints in a single 360 stereoscopic eye view. When rendering the virtual environment, each triangle of the virtual environment can be shifted to represent the view from a viewpoint corresponding to that triangle. Using vertex shift techniques, a virtual environment can be rendered into a 360 stereoscopic eye view in one pass of a GPU rendering pipeline, according to some embodiments.

Claims (38)

1. A method comprising:

receiving a render request to render a 360 stereoscopic eye view based on a virtual environment, the render request comprising information identifying the virtual environment and a render camera position from which to render the virtual environment;

for each triangle of a plurality of triangles in the virtual environment:

determining a corresponding viewpoint for viewing the triangle based on the render camera position and the position of the triangle within the virtual environment;

determining a shift vector for the triangle based on the corresponding viewpoint; and

shifting the triangle within the virtual environment based on the shift vector; and

rendering the virtual environment from the render camera position based on the shifted triangles.

2. The method of claim 1 , wherein the corresponding viewpoint is the eye position from which a user's eye would look directly at the triangle.

3. The method of claim 1 , wherein determining the shift vector comprises determining a vector that approximates, from the render camera position, the view of the triangle from the corresponding viewpoint.

4. The method of claim 1 , wherein for each triangle, the steps of determining a corresponding viewpoint, determining a shift vector, and shifting the triangle are performed by a vertex shader.

5. The method of claim 1 , wherein determining the corresponding viewpoint comprises determining an interpupillary distance for viewing the triangle.

6. The method of claim 5 , wherein determining an interpupillary distance for viewing the triangle comprises determining the interpupillary distance based on the angle of elevation of the triangle.

7. The method of claim 1 , wherein rendering the virtual environment comprises rasterizing the virtual environment based on the shifted triangles of the plurality of triangles and the render camera position.

8. The method of claim 1 , wherein rendering the virtual environment further comprises generating a 360 stereoscopic eye view based on the virtual environment.

9. The system of claim 1 , wherein the vertex shader is configured to determine the corresponding viewpoint for a triangle by determining an interpupillary distance for viewing the triangle.

10. A non-transitory computer readable medium comprising instructions which, when executed by a processor, cause the processor to perform the steps of:

receiving a render request to render a 360 stereoscopic eye view based on a virtual environment, the render request comprising information identifying the virtual environment and a render camera position from which to render the virtual environment;

for each triangle of a plurality of triangles in the virtual environment:

determining a corresponding viewpoint for viewing the triangle based on the render camera position and the position of the triangle within the virtual environment;

determining a shift vector for the triangle based on the corresponding viewpoint; and

shifting the triangle within the virtual environment based on the shift vector; and

rendering the virtual environment from the render camera position based on the shifted triangles.

11. The non-transitory computer readable medium of claim 10 , wherein the corresponding viewpoint is the eye position from which a user's eye would look directly at the triangle.

12. The non-transitory computer readable medium of claim 10 , wherein determining the shift vector comprises determining a vector that approximates, from the render camera position, the view of the triangle from the corresponding viewpoint.

13. The non-transitory computer readable medium of claim 10 , wherein for each triangle, the steps of determining a corresponding viewpoint, determining a shift vector, and shifting the triangle are performed by a vertex shader.

14. The non-transitory computer readable medium of claim 10 , wherein determining the corresponding viewpoint comprises determining an interpupillary distance for viewing the triangle.

15. The non-transitory computer readable medium of claim 14 , wherein determining an interpupillary distance for viewing the triangle comprises determining the interpupillary distance based on the angle of elevation of the triangle.

16. The non-transitory computer readable medium of claim 10 , wherein rendering the virtual environment comprises rasterizing the virtual environment based on the shifted triangles of the plurality of triangles and the render camera position.

17. The non-transitory computer readable medium of claim 10 , wherein rendering the virtual environment further comprises generating a 360 stereoscopic eye view based on the virtual environment.

18. A system comprising:

an interface module configured to receive a render request to render a 360 stereoscopic eye view based on a virtual environment, the render request comprising information identifying the virtual environment and a render camera position from which to render the virtual environment;

a vertex shader, the vertex shader configured to, for each triangle of a plurality of triangles in the virtual environment:

determine a corresponding viewpoint for viewing the triangle based on the render camera position and the position of the triangle within the virtual environment;

determine a shift vector for the triangle based on the corresponding viewpoint; and

shift the triangle within the virtual environment based on the shift vector; and

a rasterizer configured to rasterize the virtual environment from the render camera position based on the shifted triangles.

19. The system of claim 18 , wherein the corresponding viewpoint is the eye position from which a user's eye would look directly at the triangle.

20. The system of claim 18 , wherein the vertex shader is configured to determine the shift vector for a triangle by determining a vector that approximates, from the render camera position, the view of the triangle from the corresponding viewpoint.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2018
From: TOKSVIG, MICHAEL JOHN
To: FACEBOOK, INC.
Reel/Frame 045509/0639 →