IP Library Granted Patent US 8,629,871
Granted Patent B2
US 8,629,871 · App. 12/330,300 · Granted Jan 14, 2014

Systems and methods for rendering three-dimensional objects

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 8,629,871
App. No.
12/330,300
Granted
Jan 14, 2014
Kind
B2
Abstract

In one embodiment, a three-dimensional object is rendered on a two-dimensional display screen by associating a three-dimensional mesh with an image of the object, generating a vector-based texture map that defines a surface area of the object, and rendering the vector-based texture map on the display screen.

Claims (65)

1. A method comprising:

associating a three-dimensional mesh with a two-dimensional image that depicts at least a portion of a three-dimensional object;

generating a vector-based texture map that lists endpoints of a color boundary within the two-dimensional image that depicts at least the portion of the three-dimensional object,

the generating of the vector-based texture map being performed by a processor;

applying the vector-based texture map that lists the endpoints of the color boundary to the three-dimensional mesh associated with the two-dimensional image that depicts at least the portion of the three-dimensional object; and

rendering the vector-based texture map applied to the three-dimensional mesh associated with the two-dimensional image that depicts at least the portion of the three-dimensional object,

the rendering of the vector-based texture map being on a two-dimensional display screen to represent the three-dimensional object.

2. A system comprising:

an association module stored in a memory and configured to associate a three-dimensional mesh with a two-dimensional image that depicts at least a portion of a three-dimensional object;

a processor configured by a mapping module to generate a vector-based texture map that lists endpoints of a color boundary within the two-dimensional image that depicts at least the portion of the three-dimensional object; and

a renderer stored in the memory and configured to

apply the vector-based texture map that lists the endpoints of the color boundary to the three-dimensional mesh associated with the two-dimensional image that depicts at least the portion of the three-dimensional object, and to

render the vector-based texture map applied to the three-dimensional mesh associated with the two-dimensional image that depicts at least the portion of the three-dimensional object,

the rendering of the vector-based texture map being on a two-dimensional display screen to represent the three-dimensional object.

3. The method of claim 1 , wherein:

the vector-based texture map includes a pair of vertices that define locations of a starting point of a curve that defines the color boundary and an ending point of the curve that defines the color boundary; and

the rendering of the vector-based texture map on the two-dimensional display screen renders the pair of vertices that define the locations of the starting and ending points of the curve that defines the color boundary.

4. The method of claim 1 , wherein:

the vector-based texture map lists a plurality of vertices that define further endpoints of a plurality of curves that include a curve that defines the color boundary.

5. The method of claim 1 , wherein:

the vector-based texture map lists a plurality of curves that join vertices and define further color boundaries.

6. The method of claim 1 , wherein:

the vector-based texture map lists a plurality of curves that include a line segment between two vertices.

7. The method of claim 1 , wherein:

the vector-based texture map lists a plurality of curves that include a quadratic bezier that starts at a first vertex, ends at a second vertex, and uses a third vertex as a control point.

8. The method of claim 1 , wherein:

the vector-based texture map lists a plurality of curves as including a cubic bezier.

9. The method of claim 1 , wherein:

the vector-based texture map lists a fill color defined for at least one of a right side of a curve that defines the color boundary or a left side of the curve that defines the color boundary.

10. The method of claim 1 , wherein:

the vector-based texture map lists multiple curves defining a single fill color of a particular area of the vector-based texture map.

11. The method of claim 1 , wherein:

the rendering of the vector-based texture map includes:

cutting the vector-based texture map into multiple triangular pieces having three vertices each; and

projecting the three vertices of each of the multiple triangular pieces into a screen space.

12. The method of claim 11 , wherein:

a triangular piece among the multiple triangular pieces includes a curve that defines the color boundary completely contained within the triangular piece.

13. The method of claim 11 , wherein:

a triangular piece among the multiple triangular pieces includes a portion of the color boundary from the vector-based texture map; and

the cutting of the vector-based texture map includes determining the portion of the color boundary by splitting the color boundary at an intersection point defined by an edge of the triangular piece.

14. The method of claim 11 , wherein:

the cutting of the vector-based texture map includes creating three new curves that represent three edges of a triangular piece among the multiple triangular pieces.

15. The system of claim 2 , wherein:

the vector-based texture map includes a pair of vertices that define locations of a starting point of a curve that defines the color boundary and an ending point of the curve that defines the color boundary; and

the renderer is configured to render the pair of vertices that define the locations of the starting and ending points of the curve that defines the color boundary.

16. The system of claim 2 , wherein:

the renderer is configured to:

cut the vector-based texture map into multiple triangular pieces having three vertices each; and

project the three vertices of each of the multiple triangular pieces into a screen space.

17. The system of claim 16 , wherein:

a triangular piece among the multiple triangular pieces includes a portion of the color boundary from the vector-based texture map; and

the render is configured to determine the portion of the color boundary by splitting the color boundary at an intersection point defined by an edge of the triangular piece.

18. The system of claim 2 , wherein:

the render is configured to add a vector control point to a curve that defines the color boundary, the vector control point being added at a location where the curve intersects with at least one of a face of the three-dimensional mesh or a border of the three-dimensional mesh.

19. A non-transitory computer-readable article of manufacture comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

associating a three-dimensional mesh with two-dimensional image that depicts at least a portion of a three-dimensional object;

generating a vector-based texture map that lists endpoints of a color boundary within the two-dimensional image that depicts at least the portion of the three-dimensional object,

the generating of the vector-based texture map being performed by the one or more processors of the machine;

applying the vector-based texture map that lists the endpoints of the color boundary to the three-dimensional mesh associated with the two-dimensional image that depicts at least the portion of the three-dimensional object; and

rendering the vector-based texture map applied to the three-dimensional mesh associated with the two-dimensional image that depicts at least the portion of the three-dimensional object,

the rendering of the vector-based texture map being on a two-dimensional display screen to represent the three-dimensional object.

20. The non-transitory computer-readable article of manufacture of claim 19 , wherein:

the rendering of the vector-based texture map includes:

computing barycentric coordinates of a vertex in a triangular piece of the vector-based texture map; and

determining screen coordinates of the vertex based on the barycentric coordinates of the vertex.

Assignments (7)
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 Sep 8, 2011
From: O'BRIEN, DANIEL; OGLES, WILLIAM DAN; HYATT, NABEEL
To: CONDUIT LABS, INC.
Reel/Frame 026877/0025 →
MERGER Recorded Sep 8, 2011
From: CONDUIT LABS, INC.
To: ZYNGA INC.
Reel/Frame 026876/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2011
From: ZYNGA GAME NETWORK INC.
To: ZYNGA INC.
Reel/Frame 026296/0525 →