IP Library Granted Patent US 10,296,664
Granted Patent B2
US 10,296,664 · App. 14/973,360 · Granted May 21, 2019

Scalable and precise fitting of NURBS surfaces to large-size mesh representations

Inventors: Xuejun Sheng (Ypsilanti, MI); Jingyang John Chen (Novi, MI); Wayne Catalfano (Novi, MI)
Assignee: AUTODESK, INC.
G06F17/50G06F17/175G06F17/5086
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,296,664
App. No.
14/973,360
Granted
May 21, 2019
Kind
B2
Abstract

One embodiment of the invention disclosed herein provides techniques for fitting a mesh representation that includes a plurality of mesh points with a NURBS surface. A subdividing engine subdivides the mesh representation into a plurality of patches in a parametric domain. A vertex solving engine computes one or more vertex boundary continuity constraints for each vertex included in a plurality of vertices associated with the plurality of patches. An edge solving engine computes one or more edge boundary continuity constraints for each edge included in a plurality of edges associated with the plurality of patches. A patch solving engine fits a first patch included in the plurality of patches with at least one partial NURBS surface based on the vertex boundary continuity constraints and the edge boundary continuity constraints.

Claims (46)

1. A method for fitting a mesh representation that includes a plurality of mesh points with a NURBS surface, comprising:

subdividing the mesh representation into a plurality of patches in a parametric domain;

computing one or more vertex boundary continuity constraints for each vertex included in a plurality of vertices associated with the plurality of patches;

computing one or more edge boundary continuity constraints for each edge included in a plurality of edges associated with the plurality of patches; and

fitting a first patch included in the plurality of patches with at least one partial NURBS surface based on the vertex boundary continuity constraints and the edge boundary continuity constraints.

2. The method of claim 1 , further comprising:

determining that the at least one partial NURBS surface meets or exceeds a fitting tolerance limit with respect to the first patch; and

merging the at least one partial NURBS surface with at least one other partial NURBS surface to generate a final NURBS surface.

3. The method of claim 1 , further comprising:

determining that the at least one partial NURBS surface does not meet or exceed a fitting tolerance limit with respect to the first patch;

subdividing the first patch into a second plurality of patches;

modifying the plurality of patches by replacing the first patch with the second plurality of patches; and

repeating the steps of computing one or more vertex boundary continuity constraints, computing one or more edge boundary continuity constraints, and fitting a first patch included in the plurality of patches.

4. The method of claim 1 , wherein at least one of computing one or more vertex boundary continuity constraints and computing one or more edge boundary continuity constraints is performed as a parallel, multithreaded process.

5. The method of claim 1 , wherein the one or more vertex boundary continuity constraints for each vertex are based on a specified number of mesh points included in the plurality of mesh points that are within a threshold distance from the vertex.

6. The method of claim 1 , wherein the one or more edge boundary continuity constraints for each edge are based on a specified number of mesh points included in the plurality of mesh points that are within a threshold distance from the edge.

7. The method of claim 6 , wherein the one or more edge boundary continuity constraints for each edge are further based on vertices of the at least one partial NURBS surface and vertices of at least one other partial NURBS surface that is adjacent to the at least one partial NURBS surface.

8. The method of claim 1 , wherein fitting the first patch included in the plurality of patches with at least one partial NURBS surface is further based on mesh points that are within the boundaries of the first patch.

9. A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to fit a mesh representation that includes a plurality of mesh points with a NURBS surface by performing the steps of:

subdividing the mesh representation into a plurality of patches in a parametric domain;

computing one or more vertex boundary continuity constraints for each vertex included in a plurality of vertices associated with the plurality of patches;

computing one or more edge boundary continuity constraints for each edge included in a plurality of edges associated with the plurality of patches; and

fitting a first patch included in the plurality of patches with at least one partial NURBS surface based on the vertex boundary continuity constraints and the edge boundary continuity constraints.

10. The non-transitory computer-readable storage medium of claim 9 , further comprising:

determining that the at least one partial NURBS surface meets or exceeds a fitting tolerance limit with respect to the first patch; and

merging the at least one partial NURBS surface with at least one other partial NURBS surface to generate a final NURBS surface.

11. The non-transitory computer-readable storage medium of claim 9 , further comprising:

determining that the at least one partial NURBS surface does not meet or exceed a fitting tolerance limit with respect to the first patch;

subdividing the first patch into a second plurality of patches;

modifying the plurality of patches by replacing the first patch with the second plurality of patches; and

repeating the steps of computing one or more vertex boundary continuity constraints, computing one or more edge boundary continuity constraints, and fitting a first patch included in the plurality of patches.

12. The non-transitory computer-readable storage medium of claim 9 , wherein each patch in the plurality of patches is substantially equal in size.

13. The non-transitory computer-readable storage medium of claim 9 , wherein the at least one partial NURBS surface exhibits C 0 , C 1 , and C 2 continuity with respect to at least one other partial NURBS surface that is adjacent to the at least one partial NURBS surface.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the at least one partial NURBS surface further exhibits C 3 continuity with respect to at least one other partial NURBS surface that is adjacent to the at least one partial NURBS surface.

15. The non-transitory computer-readable storage medium of claim 9 , wherein the one or more vertex boundary continuity constraints for each vertex are based on a specified number of mesh points included in the plurality of mesh points that are within a threshold distance from the vertex.

16. The non-transitory computer-readable storage medium of claim 9 , wherein the one or more edge boundary continuity constraints for each edge are based on a specified number of mesh points included in the plurality of mesh points that are within a threshold distance from the edge.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the one or more edge boundary continuity constraints for each edge are further based on vertices of the at least one partial NURBS surface and vertices of at least one other partial NURBS surface that is adjacent to the at least one partial NURBS surface.

18. The non-transitory computer-readable storage medium of claim 9 , wherein fitting the first patch included in the plurality of patches with at least one partial NURBS surface is further based on mesh points that are within the boundaries of the first patch.

19. The non-transitory computer-readable storage medium of claim 9 , further comprising converting the one or more vertex boundary continuity constraints and the one or more edge boundary continuity constraints into control points associated with the at least one partial NURBS surface.

20. A system, comprising:

a processor; and

a memory coupled to the processor and including a subdividing engine, a vertex solving engine, an edge solving engine, and a patch solving engine;

wherein, when executed by the processor, the subdividing engine is configured to subdivide the mesh representation into a plurality of patches in a parametric domain;

wherein, when executed by the processor, the vertex solving engine is configured to compute one or more vertex boundary continuity constraints for each vertex included in a plurality of vertices associated with the plurality of patches;

wherein, when executed by the processor, the edge solving engine is configured to compute one or more edge boundary continuity constraints for each edge included in a plurality of edges associated with the plurality of patches; and

wherein, when executed by the processor, the patch solving engine is configured to fit a first patch included in the plurality of patches with at least one partial NURBS surface based on the vertex boundary continuity constraints and the edge boundary continuity constraints.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2016
From: SHENG, XUEJUN; CHEN, JINGYANG JOHN; CATALFANO, WAYNE
To: AUTODESK, INC.
Reel/Frame 037910/0730 →
Continuity (1)
Related Publication 20170177745A1 · Jun 22, 2017
Cited By (1)
US 12,190,023