IP Library Granted Patent US 9,652,880
Granted Patent B2
US 9,652,880 · App. 14/622,595 · Granted May 16, 2017

2D animation from a 3D mesh

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 9,652,880
App. No.
14/622,595
Granted
May 16, 2017
Kind
B2
Abstract

Two-dimensional (2D) animation may be generated from a three-dimensional (3D) mesh by a machine or device that flattens, textures, and modifies the 3D mesh, which results in distorting the texture of the 3D mesh. The machine or device is configured to access and flatten a 3D mesh of 3D vertices. At least some of the 3D vertices of the flattened 3D mesh are texture mapped with a 2D image. The machine or device generates a first 2D frame of animation by rendering the 3D mesh (e.g., with graphics acceleration hardware), modifies the 3D mesh by repositioning one or more of the 3D vertices, and generates a second 2D frame of animation by rendering the modified 3D mesh (e.g., with graphics acceleration hardware). Accordingly, 2D animation may be generated by distorting the 2D image that is mapped onto at least part of the 3D mesh.

Claims (58)

1. A method comprising:

by operation of an access module that includes a processor of a machine, accessing a three-dimensional (3D) portion of a 3D model defined by 3D vertices that are each defined in three dimensions among which is a depth dimension ortho oval to two non-depth dimensions, the 3D portion being defined by a subset of the 3D vertices of the 3D model;

by operation of a flattener module that includes a processor of the machine, flattening the 3D portion of the 3D model by constraining the subset of the 3D vertices of the 3D model to one value of the depth dimension, the value of the depth dimension being an identifier of the flattened 3D portion and distinguishing the flattened 3D portion from other flattened 3D portions of the 3D model;

by operation of a render module that includes a processor of the machine, rendering a first animation frame based on a two-dimensional (2D) image that is mapped to the flattened 3D portion identified by the value of the depth dimension;

by operation of a motion module that includes a processor of the machine, modifying a 3D vertex in the subset of the 3D vertices based on a 3D movement vector of which a depth component in the depth dimension is ignored to constrain the 3D vertex to the value of the depth dimension; and

by operation of the render module, rendering a second animation frame based on the modified 3D vertex in the subset of the 3D vertices that defines the flattened 3D portion of the 3D model.

2. The method of claim 1 , wherein:

the value of the depth dimension is a first value that identifies a first 3D portion of the 3D model and distinguishes the first 3D portion of the 3D model from a second 3D portion of the 3D model, the second 3D portion being identified by a second value of the depth dimension.

3. The method of claim 1 , wherein:

the 3D model represents a 3D object;

the 2D image depicts a portion of the 3D object; and

the flattened 3D portion of the 3D model represents the portion of the 3D object depicted by the 2D image.

4. The method of claim 1 , wherein:

the modifying of the 3D vertex distorts the flattened 3D portion of the 3D model; and

the rendering of the second animation frame is based on the distorted flattened 3D portion of the 3D model.

5. The method of claim 1 further comprising:

texture mapping the 2D image onto the flattened 3D portion of the 3D model; and

the rendering of the first animation frame renders the texture mapped 2D image that is mapped to the flattened 3D portion of the 3D model.

6. The method of claim 5 , wherein:

the modifying of the 3D vertex distorts the flattened 3D portion of the 3D model and distorts the 2D image texture mapped onto the flattened 3D portion of the 3D model.

7. The method of claim 6 , wherein:

the rendering of the second animation frame renders the distorted texture mapped 2D image that is mapped to the flattened 3D portion of the 3D model.

8. The method of claim 1 , wherein:

the constraining of the subset of the 3D vertices of the 3D model to the value of the depth dimension includes assigning the value of the depth dimension to each 3D vertex in the subset of 3D vertices.

9. The method of claim 8 , wherein:

the modifying of the 3D vertex includes repositioning the 3D vertex while maintaining the value of the depth dimension assigned to each 3D vertex in the subset of 3D vertices.

10. The method of claim 1 , further comprising:

generating an animation that includes the first animation frame and the second animation frame in order as sequential frames in the animation.

11. The method of claim 1 , further comprising:

causing presentation of an animation that includes the first animation frame and the second animation frame in order as sequential frames in the animation.

12. The method of claim 1 , wherein:

the modifying of the 3D vertex includes moving the 3D vertex in a direction orthogonal to the depth dimension while constraining the 3D vertex to the value of the depth dimension.

13. The method of claim 1 , wherein:

the rendering of the first animation frame is performed by graphics acceleration hardware included in the render module.

14. The method of claim 13 , wherein:

the rendering of the second animation frame is performed by the graphics acceleration hardware included in the render module.

15. A non-transitory machine-readable storage medium comprising instructions that, when executed by processors of a machine, cause the machine to perform operations comprising:

by operation of an access module that includes one or more of the processors of the machine, accessing a three-dimensional (3D) portion of a 3D model defined by 3D vertices that are each defined in three dimensions among which is a depth dimension orthogonal to two non-depth dimensions, the 3D portion being defined by a subset of the 3D vertices of the 3D model;

by operation of a flattener module that includes one or more processors of the machine, flattening the 3D portion of the 3D model by constraining the subset of the 3D vertices of the 3D model to one value of the depth dimension, the value of the depth dimension being an identifier of the flattened 3D portion and distinguishing the flattened 3D portion from other flattened 3D portions of the 3D model;

by operation of a render module that includes one or more processors of the machine, rendering a first animation frame based on a two-dimensional (2D) image that is mapped to the flattened 3D portion identified by the value of the depth dimension;

by operation of a motion module that includes one or more processors of the machine, modifying a 3D vertex in the subset of the 3D vertices based on a 3D movement vector of which a depth component in the depth dimension is ignored to constrain the 3D vertex to the value of the depth dimension; and

by operation of the render module that includes one or more processors of the machine, rendering a second animation frame based on the modified 3D vertex in the subset of the 3D vertices that defines the flattened 3D portion of the 3D model.

16. The non-transitory machine-readable storage medium of claim 15 , wherein:

the value of the depth dimension is a first value that identifies a first 3D portion of the 3D model and distinguishes the first 3D portion of the 3D model from a second 3D portion of the 3D model, the second 3D portion being identified by a second value of the depth dimension.

17. The non-transitory machine-readable storage medium of claim 15 , wherein:

the constraining of the subset of the 3D vertices of the 3D model to the value of the depth dimension includes assigning the value of the depth dimension to each 3D vertex in the subset of 3D vertices; and

the modifying of the 3D vertex includes repositioning the 3D vertex while maintaining the value of the depth dimension assigned to each 3D vertex in the subset of 3D vertices.

18. A system comprising:

an access module including a processor of a machine and configured to access a three-dimensional (3D) portion of a 3D model defined by 3D vertices that are each defined in three dimensions among which is a depth dimension orthogonal to two non-depth dimensions, the 3D portion being defined by a subset of the 3D vertices of the 3D model;

a flattener module including a processor of the machine and configured to flatten the 3D portion of the 3D model by constraining the subset of the 3D vertices of the 3D model to one value of the depth dimension, the value of the depth dimension being an identifier of the flattened 3D portion and distinguishing the flattened 3D portion from other flattened 3D portions of the 3D model;

a render module including a processor of the machine and configured to render a first animation frame based on a two-dimensional (2D) image that is mapped to the flattened 3D portion identified by the value of the depth dimension; and

a motion module including a processor of the machine and configured to modify a 3D vertex in the subset of the 3D vertices based on a 3D movement vector of which a depth component in the depth dimension is ignored to constrain the 3D vertex to the value of the depth dimension;

the render module being configured to render a second animation frame based on the modified 3D vertex in the subset of the 3D vertices that defines the flattened 3D portion of the 3D model.

19. The system of claim 18 , wherein:

the value of the depth dimension is a first value that identifies a first 3D portion of the 3D model and distinguishes the first 3D portion of the 3D model from a second 3D portion of the 3D model, the second 3D portion being identified by a second value of the depth dimension.

20. The system of claim 18 , wherein:

the flattener module is configured to constrain the subset of the 3D vertices of the 3D model to the value of the depth dimension by assigning the value of the depth dimension to each 3D vertex in the subset of 3D vertices; and

the motion module is configured to modify the 3D vertex by repositioning the 3D vertex while maintaining the value of the depth dimension assigned to each 3D vertex in the subset of 3D vertices.

Assignments (5)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded May 23, 2022
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ZYNGA INC.
Reel/Frame 060163/0437 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 14, 2020
From: ZYNGA INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054719/0490 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 11, 2020
From: BANK OF AMERICA, N.A., AS LENDER
To: ZYNGA INC.
Reel/Frame 054701/0393 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Dec 21, 2018
From: ZYNGA INC.
To: BANK OF AMERICA, N.A., AS LENDER
Reel/Frame 049147/0546 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2015
From: HOBBS, BRET STEVEN; KELLY, SEAN UBEROI
To: ZYNGA INC.
Reel/Frame 034963/0428 →