IP Library Granted Patent US 11,620,793
Granted Patent B2
US 11,620,793 · App. 17/212,963 · Granted Apr 4, 2023

Producing a refined control mesh for generating a smooth surface of an object

Inventors: Kevin James Marshall (Portland, OR); Nicholas Stewart North (Vineyard, UT); Adam Michael Helps (Provo, UT)
Assignee: Autodesk, Inc.
G06T17/205G06F30/12G06T17/30
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 11,620,793
App. No.
17/212,963
Granted
Apr 4, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including medium-encoded computer program products, for computer aided design of structures include, in one aspect, a method for producing, the method including: obtaining a polygonal control mesh for a smooth surface representing an object; subdividing the polygonal control mesh in one or more subdivisions to produce a refined control mesh, wherein the subdividing comprises: using data defining an eigen polyhedron around an extraordinary point in the polygonal control mesh to generate adjustment rules to determine positions of the extraordinary point, and face points and edge points for faces adjacent to the extraordinary point, and determining, according to the adjustment rules, the positions for the extraordinary point, the face points, and the edge points for the faces adjacent to the extraordinary point; and generating, by the computer graphics application, the smooth surface for output from the refined control mesh.

Claims (52)

1. A computer-implemented method comprising:

obtaining, by a computer graphics application, a polygonal control mesh for a smooth surface representing an object;

subdividing, by the computer graphics application, the polygonal control mesh in one or more subdivisions to produce a refined control mesh, wherein the subdividing comprises

using data defining an eigen polyhedron around an extraordinary point in the polygonal control mesh to generate adjustment rules to determine positions of the extraordinary point, and face points and edge points for faces adjacent to the extraordinary point during each of the one or more subdivisions, wherein the data defining the eigen polyhedron is defined at a parameterized two-dimensional space as a plane mesh including the extraordinary point as an initial vertex in a plane, and

determining, according to the adjustment rules, the positions for the extraordinary point, the face points, and the edge points for the faces adjacent to the extraordinary point, wherein the adjustment rules are based on results of

calculating differences between lengths of first knot intervals (d i ) and second knot intervals (e 1 ), wherein the first knot intervals are for first edges, the second knot intervals are for second edges, the first edges are directly connected with the extraordinary point and are inside a region corresponding to the eigen polyhedron at the parameterized two-dimensional space, the second edges are directly connected with the first edges and are outside the region corresponding to the eigen polyhedron at the parameterized two-dimensional space, and the determining works both when the lengths of the first and second knot intervals are equal and when the lengths of the first and second knot intervals are not equal; and

generating, by the computer graphics application, the smooth surface for output from the refined control mesh.

2. The computer-implemented method of claim 1 , wherein the extraordinary point is one of many control vertices in the obtained polygonal control mesh, and wherein the extraordinary point is a non-uniform point in the polygonal control mesh.

3. The computer-implemented method of claim 1 , wherein the extraordinary point is a first extraordinary point, the data defining the eigen polyhedron is first data defining a first eigen polyhedron defined for the first extraordinary point, the obtained polygonal control mesh includes a second extraordinary point having associated second data defining a second eigen polyhedron defined for the second extraordinary point, wherein the first and the second extraordinary points are connected by either a single face or an edge,

wherein the using comprises using the first data defining the first eigen polyhedron defined for the first extraordinary point and the second data defining the second eigen polyhedron defined for the second extraordinary point;

wherein the determining comprises adjusting a face point value for a first face point of an adjacent face to both of the first and the second extraordinary points from the first data defining the first eigen polyhedron, wherein a first adjusted face point value for the first face point is determined based on the first data defining the first eigen polyhedron and according to the adjustment rules to determine positions of the face points at a space of the adjacent face, wherein the first adjusted face point value is defined as a first linear combination of control points of the polygonal control mesh in the first data defining the first eigen polyhedron,

wherein the method further comprises adjusting a face point value for the first face point from the second data defining the second eigen polyhedron, wherein a second adjusted face point value for the first face point is determined based on the second data defining the second eigen polyhedron and according to the adjustment rules to determine positions of the face points at a space of the adjacent face, wherein the second adjusted face point value is defined as a second linear combination of control points of the polygonal control mesh in the second data defining the second eigen polyhedron, wherein the first adjusted face point value is conflicting with the second adjusted face point value, and

wherein the subdividing includes determining a final adjusted face point value for the first face point as a mean of the conflicting values of the first adjusted face point value and the second adjusted face point value, wherein the final adjusted face point value is used for subdividing the polygonal control mesh.

4. The computer-implemented method of claim 1 , wherein the extraordinary point is a first extraordinary point, the data defining the eigen polyhedron is first data defining a first eigen polyhedron defined for the first extraordinary point, the obtained polygonal control mesh includes a second extraordinary point having associated second data defining a second eigen polyhedron defined for the second extraordinary point, wherein the first and the second extraordinary points are connected by either a single face or an edge,

wherein the using comprises using the first data defining the first eigen polyhedron defined for the first extraordinary point and the second data defining the second eigen polyhedron defined for the second extraordinary point;

wherein the determining comprises adjusting an edge point value for a first edge point of an adjacent face to both of the first and the second extraordinary points from the first data of the first eigen polyhedron, wherein a first adjusted edge point value for the first edge point is determined based on the first data defining the first eigen polyhedron and according to the adjustment rules to determine positions of the edge points at a space of the adjacent face, wherein the first adjusted edge point value is defined as a first linear combination of control points of the polygonal control mesh in the first data defining the first eigen polyhedron;

wherein the method further comprises adjusting an edge point value for the first edge point from the second data of the second eigen polyhedron, wherein a second adjusted edge point value for the first edge point is determined based on the second data defining the second eigen polyhedron and according to the adjustment rules to determine positions of the edge points at a space of the adjacent face, wherein the second adjusted edge point value is defined as a second linear combination of control points of the polygonal control mesh in the second data defining the second eigen polyhedron, wherein the first adjusted edge point value is conflicting with the second adjusted edge point value; and

wherein the subdividing comprises determining a final adjusted edge point value for the first edge point as a mean of the conflicting values of the first adjusted edge point value and the second adjusted edge point value, wherein the final adjusted edge point value is used for subdividing the polygonal control mesh.

5. The computer-implemented method of claim 1 , wherein the obtained polygonal control mesh includes an N-gon, the one or more subdivisions are two or more subdivisions, and wherein the subdividing comprises an initial subdivision as a first subdivision of the two or more subdivisions, and the extraordinary point is created inside the N-gon by the initial subdivision.

6. The computer-implemented method of claim 5 , wherein the initial subdivision comprises locating the extraordinary point in a face of the N-gon and an initial set of edge points defining the eigen polyhedron, wherein the extraordinary point in the face of the N-gon and the initial set of edge points is determined in accordance with a Non-Uniform Rational Catmull-Clark Subdivision (NURCCS) rule.

7. The computer-implemented method of claim 1 , wherein the subdividing is compatible with Non-Uniform Rational Catmull-Clark Subdivision (NURCCS) and Non-Uniform Rational Basis Spline (NURBS) surfaces.

8. The computer-implemented method of claim 1 , wherein the one or more subdivisions comprises at least one subdivision of control polygon faces in an extraordinary region of the polygonal control mesh but not in a region adjacent to the extraordinary region.

9. The computer-implemented method of claim 8 , wherein determining, according to the adjustment rules, the positions for the extraordinary point, the face points, and the edge points for the faces adjacent to the extraordinary point comprises:

calculating adjusted face points and edge points for the faces around the extraordinary point at the corresponding face and edge spaces according to the adjustment rules and the data defining the eigen polyhedron; and

converting the adjusted face points and edge points into refinement rules for determining the positions of the face and edge points on the polygonal control mesh to generate the refined control mesh.

10. The computer-implemented method of claim 1 , wherein subdividing the polygonal control mesh includes subdivision of the faces around the extraordinary point into four faces, and subdividing at least a set of faces that are first level neighbors to the faces around the extraordinary point into two faces each, wherein at least the set of faces is subdivided into two faces each according to a knot insertion rule so as not to change a shape of the smooth surface.

11. The computer-implemented method of claim 10 , wherein the generating of the smooth surface comprises generating patches for polygons of the refined control mesh that correspond to at least second level neighbor faces of faces around the extraordinary point after subdividing.

12. A system comprising:

a non-transitory storage medium having instructions of a computer aided design program stored thereon; and

one or more data processing apparatus able to run the instructions of the computer aided design program to perform operations specified by the instructions of the computer aided design program to cause the one or more data processing apparatus to

obtain, by a computer graphics application, a polygonal control mesh for a smooth surface representing an object;

subdivide, by the computer graphics application, the polygonal control mesh in one or more subdivisions to produce a refined control mesh, wherein the instructions configured to cause the data processing apparatus to subdivide comprise instructions configured to cause the data processing apparatus to

use data defining an eigen polyhedron around an extraordinary point in the polygonal control mesh to generate adjustment rules to determine positions of the extraordinary point, and face points and edge points for faces adjacent to the extraordinary point during each of the one or more subdivisions, wherein the data defining the eigen polyhedron is defined at a parameterized two-dimensional space as a plane mesh including the extraordinary point as an initial vertex in a plane, and

determine, according to the adjustment rules, the positions for the extraordinary point, the face points, and the edge points for the faces adjacent to the extraordinary point, wherein the adjustment rules are based on results of

calculating differences between lengths of first knot intervals (d i ) and second knot intervals (e i ), wherein the first knot intervals are for first edges, the second knot intervals are for second edges, the first edges are directly connected with the extraordinary point and are inside a region corresponding to the eigen polyhedron at the parameterized two-dimensional space, the second edges are directly connected with the first edges and are outside the region corresponding to the eigen polyhedron at the parameterized two-dimensional space, and the determination of the positions works both when the lengths of the first and second knot intervals are equal and when the lengths of the first and second knot intervals are not equal; and

generate, by the computer graphics application, the smooth surface for output from the refined control mesh.

13. The system of claim 12 , wherein the extraordinary point is one of many control vertices in the obtained polygonal control mesh, and wherein the extraordinary point is a non-uniform point in the polygonal control mesh.

14. The system of claim 12 , wherein the obtained polygonal control mesh includes an N-gon, the one or more subdivisions are two or more subdivisions, and wherein the instructions configured to cause the data processing apparatus to subdivide comprise instructions configured to cause the data processing apparatus to subdivide an initial subdivision as a first subdivision of the two or more subdivisions, the extraordinary point is created inside the N-gon by the initial subdivision, and wherein the initial subdivision comprises locating the extraordinary point in a face of the N-gon and an initial set of edge points defining the eigen polyhedron, wherein the extraordinary point in the face of the N-gon and the initial set of edge points are determined in accordance with a Non-Uniform Rational Catmull-Clark Subdivision (NURCCS) rule, and wherein the subdividing is compatible with Non-Uniform Rational Catmull-Clark Subdivision (NURCCS) and Non-Uniform Rational Basis Spline (NURBS) surfaces.

15. The system of claim 12 , wherein the one or more subdivisions comprises at least one subdivision of control polygon faces in an extraordinary region of the polygonal control mesh but not in a region adjacent to the extraordinary region, and wherein the instructions configured to cause the data processing apparatus to determine, according to the adjustment rules, the positions for the extraordinary point, the face points, and the edge points for the faces adjacent to the extraordinary point comprise instructions configured to cause the data processing apparatus to:

calculate adjusted face points and edge points for the faces around the extraordinary point at the corresponding face and edge spaces according to the adjustment rules and the data defining the eigen polyhedron; and

convert the adjusted face points and edge points into refinement rules for determining the positions of the face and edge points on the polygonal control mesh to generate the refined control mesh.

16. The system of claim 12 , wherein the instructions configured to cause the data processing apparatus to subdivide the polygonal control mesh include instructions to subdivide the faces around the extraordinary point into four faces, and subdivide at least a set of faces that are first level neighbors to the faces around the extraordinary point into two faces each, wherein at least the set of faces is subdivided into two faces each according to a knot insertion rule so as not to change a shape of the smooth surface, wherein the instructions configured to cause the data processing apparatus to generate the smooth surface comprise instructions configured to cause the data processing apparatus to generate patches for polygons of the refined control mesh that correspond to at least second level neighbor faces of faces around the extraordinary point after subdividing.

17. A non-transitory computer-readable medium encoding instructions operable to cause data processing apparatus to perform operations comprising:

obtaining, by a computer graphics application, a polygonal control mesh for a smooth surface representing an object;

subdividing, by the computer graphics application, the polygonal control mesh in one or more subdivisions to produce a refined control mesh, wherein the subdividing comprises

using data defining an eigen polyhedron around an extraordinary point in the polygonal control mesh to generate adjustment rules to determine positions of the extraordinary point, and face points and edge points for faces adjacent to the extraordinary point during each of the one or more subdivisions, wherein the data defining the eigen polyhedron is defined at a parameterized two-dimensional space as a plane mesh including the extraordinary point as an initial vertex in a plane, and

determining, according to the adjustment rules, the positions for the extraordinary point, the face points, and the edge points for the faces adjacent to the extraordinary point, wherein the adjustment rules are based on results of

calculating differences between lengths of first knot intervals (d i ) and second knot intervals (e i ), wherein the first knot intervals are for first edges, the second knot intervals are for second edges, first edges are directly connected with the extraordinary point and are inside a region corresponding to the eigen polyhedron at the parameterized two-dimensional space, the second edges are directly connected with the first edges and are outside the region corresponding to the eigen polyhedron at the parameterized two-dimensional space, and the determining works both when the lengths of the first and second knot intervals are equal and when the lengths of the first and second knot intervals are not equal; and

generating, by the computer graphics application, the smooth surface for output from the refined control mesh.

18. The computer-readable medium of claim 17 , wherein the extraordinary point is one of many control vertices in the obtained polygonal control mesh, and wherein the extraordinary point is a non-uniform point in the polygonal control mesh.

19. The computer-readable medium of claim 17 , wherein the obtained polygonal control mesh includes an N-gon, the one or more subdivisions are two or more subdivisions, and wherein the subdividing comprises an initial subdivision as a first subdivision of the two or more subdivisions, and the extraordinary point is created inside the N-gon by the initial subdivision.

20. The computer-readable medium of claim 17 , wherein the initial subdivision comprises locating the extraordinary point in a face of the N-gon and an initial set of edge points defining the eigen polyhedron, wherein the extraordinary point in the face of the N-gon and the initial set of edge points is determined in accordance with a Non-Uniform Rational Catmull-Clark Subdivision (NURCCS) rules, wherein the subdividing is compatible with Non-Uniform Rational Catmull-Clark Subdivision (NURCCS) and Non-Uniform Rational Basis Spline (NURBS) surfaces.

Assignments (2)
CHANGE OF ADDRESS FOR ASSIGNEE Recorded Aug 19, 2022
From: AUTODESK, INC.
To: AUTODESK, INC.
Reel/Frame 061572/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: MARSHALL, KEVIN JAMES; NORTH, NICHOLAS STEWART; HELPS, ADAM MICHAEL
To: AUTODESK, INC.
Reel/Frame 056104/0636 →
Continuity (1)
Related Publication 20220309749A1 · Sep 29, 2022