IP Library Granted Patent US 9,269,174
Granted Patent B2
US 9,269,174 · App. 13/974,882 · Granted Feb 23, 2016

Methods and systems for generating a polygon 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,269,174
App. No.
13/974,882
Granted
Feb 23, 2016
Kind
B2
Abstract

The present application relates to methods and systems for generating polygon meshes. One example of a method for generating a polygon mesh includes scanning a plurality of lines of an image to determine one or more pixel run lengths of interest, building a collection of rectangles based on the one or more pixel run lengths from the plurality of lines, and simplifying the collection of rectangles by combining rectangles with similar widths and/or heights.

Claims (36)

1. A method of generating a polygon mesh, comprising:

scanning by a processing element a plurality of lines of an image to determine one or more pixel run lengths of interest;

building by the processing element a collection of polygonal mesh rectangles based on the one or more pixel run lengths from the plurality of lines;

simplifying by the processing element the collection of polygonal mesh rectangles by combining polygonal mesh rectangles having at least one of a similar width or a similar height; and

generating by the processing element a polygon mesh based on the simplified collection of polygonal mesh rectangles.

2. The method of claim 1 , further comprising:

comparing by the processing element two adjacent polygonal mesh rectangles in the collection of polygonal mesh rectangles to determine whether a first length of a shared edge between the two adjacent polygonal mesh rectangles is greater than a second length of one or both of the two adjacent polygonal mesh rectangles that is not shared between the two adjacent polygonal mesh rectangles; and

if the first length is greater than the second length, creating by the processing element a first new polygonal mesh rectangle corresponding to the shared edge and one or more additional new polygonal mesh rectangles corresponding to one or more non-shared edges of the two adjacent polygonal mesh rectangles.

3. The method of claim 2 , wherein each of the polygonal mesh rectangles in the collection of polygonal mesh rectangles is compared by the processing element with each of the other polygonal mesh rectangles in the collection of polygonal mesh rectangles to determine whether each of the polygonal mesh rectangles shares an edge with one or more of the other polygonal mesh rectangles, further wherein each of the polygonal mesh rectangles in the collection of polygonal mesh rectangles is compared by the processing element with each of the other polygonal mesh rectangles in the collection of polygonal mesh rectangles to determine whether each of the polygonal mesh rectangles has a similar width and/or height as one or more of the other polygonal mesh rectangles.

4. The method of claim 2 , wherein the shared edge is a horizontal shared edge.

5. The method of claim 2 , further comprising removing by the processing element the two adjacent polygonal mesh rectangles from the collection of polygonal mesh rectangles and adding the first new polygonal mesh rectangle and the one or more additional new polygonal mesh rectangles to the collection of polygonal mesh rectangles.

6. The method of claim 1 , wherein the one or more pixel run lengths of interest are determined by the processing element by inspecting alpha values for pixels in the plurality of lines.

7. The method of claim 6 , wherein the collection of polygonal mesh rectangles is built by the processing element by including translucent pixel run lengths.

8. The method of claim 7 , wherein the collection of polygonal mesh rectangles is built by the processing element by also including opaque pixel run lengths.

9. The method of claim 8 , wherein the collection of polygonal mesh rectangles together encompasses all visible pixels in the image but no transparent pixels in the image.

10. The method of claim 6 , wherein the collection of polygonal mesh rectangles is built by the processing element by including opaque pixel run lengths.

11. The method of claim 1 , further comprising rendering a sprite on a display using the generated polygon mesh.

12. A method of generating a polygon mesh, comprising:

generating by a processing element a collection of scan line run lengths based on alpha values of an image;

generating by the processing element a collection of polygonal mesh rectangles by associating each respective scan line run length with a respective polygonal mesh rectangle;

modifying by the processing element the collection of polygonal mesh rectangles by

dividing one or more polygonal mesh rectangles in the collection of polygonal mesh rectangles into a plurality of polygonal mesh rectangles; and

combining two or more adjacent polygonal mesh rectangles in the collection of polygonal mesh rectangles that have at least one of a similar width or a similar height to generate a simplified collection of polygonal mesh rectangles; and

generating by the processing element a polygon mesh based on the simplified collection of polygonal mesh rectangles.

13. The method of claim 12 , wherein the one or more polygonal mesh rectangles in the collection of polygonal mesh rectangles is divided by the processing element into a plurality of polygonal mesh rectangles so that one of the plurality of polygonal mesh rectangles can be combined with an adjacent polygonal mesh rectangle.

14. The method of claim 12 , wherein two polygonal mesh rectangles in the collection of polygonal mesh rectangles are each divided by the processing element into a respective plurality of polygonal mesh rectangles, and one of the plurality of polygonal mesh rectangles from a first of the two polygonal mesh rectangles is combined by the processing element with one of the plurality of polygonal mesh rectangles from a second of the two polygonal mesh rectangles.

15. The method of claim 12 , wherein said steps of dividing and combining are done by the processing element iteratively.

16. The method of claim 15 , wherein said iterative steps of dividing and combining continue until the collection of polygonal mesh rectangles ceases to decrease in number.

17. The method of claim 15 , further comprising generating by the processing element a collection of triangles by bisecting each of the polygonal mesh rectangles in the modified collection of polygonal mesh rectangles.

18. The method of claim 12 , wherein the image is a texture map.

19. The method of claim 12 , wherein the collection of scan line run lengths is generated by the processing element by scanning each row of pixels from left to right.

20. A system, comprising:

a processor configured to

scan a plurality of lines of an image to determine one or more pixel run lengths of interest, build a collection of polygonal mesh rectangles based on the one or more pixel run lengths from the plurality of lines, simplify the collection of polygonal mesh rectangles by combining polygonal mesh rectangles at least one of a similar width or a similar height;

generate a polygon mesh based on the simplified collection of polygonal mesh rectangles; and

a display coupled to the processing unit and configured to render the image using the polygon mesh generated by the processing unit.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2026
From: DISNEY ENTERPRISES, INC.
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075574/0602 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2013
From: FRATTAROLA, GARY; SMITHERS, ANDI T.
To: DISNEY ENTERPRISES, INC.
Reel/Frame 031079/0918 →