IP Library › Granted Patent US 12,437,479
Granted Patent B2
US 12,437,479 · App. 18/608,640 · Granted Oct 7, 2025

Method and system for generating polygon meshes approximating surfaces using iteration for mesh vertex positions

Inventors: Alen Ladavac (Zagreb, HR); Morgan Samuel McGuire (Vancouver, CA)
Assignee: Roblox Corporation
G06T17/20G06T7/13
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 12,437,479
App. No.
18/608,640
Granted
Oct 7, 2025
Kind
B2
Abstract

Generating polygon meshes that approximate surfaces using iteration for mesh vertex positions. In some implementations, a method includes receiving input data that represents a surface distinguishing a volume, where a voxel grid includes the surface. Particular voxels of the voxel grid are identified, which the surface intersects. A surface-approximating mesh is generated including polygons defined by vertices in the particular voxels. Generating the mesh includes determining approximate positions of a subset of the vertices in a subset of the particular voxels, based on interpolation of locations in the voxel subset where the surface intersects the voxel subset. Errors between approximate voxel values (based on the approximate positions) and assigned voxel values of the particular voxels (based on the input data) are determined, and the approximate position of at least one vertex of the subset of the vertices is adjusted using a successive over-relaxation technique to reduce the errors.

Claims (46)

1. A computer-implemented method comprising:

receiving, by one or more processors, input data that represents a surface that distinguishes an inside and an outside of an object volume;

determining, by the one or more processors, a voxel grid that includes the surface, wherein the voxel grid includes a plurality of voxels;

identifying, by the one or more processors, particular voxels of the plurality of voxels which the surface intersects; and

generating, by the one or more processors, a mesh that approximates the surface, the mesh including a plurality of polygons that are defined by vertices of the mesh in the particular voxels, wherein generating the mesh includes:

determining approximate positions of a subset of the vertices of the polygons of the mesh in a subset of the particular voxels;

determining an approximate volume value for each voxel of the subset of the particular voxels, the approximate volume value representing an approximate volume of the mesh occupying the voxel based on the approximate positions of the subset of the vertices;

determining errors between the approximate volume values and corresponding voxel values of the particular voxels, wherein corresponding voxel values are determined from the input data; and

adjusting the approximate position of at least one vertex of the subset of the vertices using an iterative technique to reduce the errors.

2. The computer-implemented method of claim 1 , wherein adjusting the approximate position of the at least one vertex includes iterating, using the one or more processors, the determining the errors and the adjusting until the errors meet predetermined criteria.

3. The computer-implemented method of claim 2 , wherein the errors meet predetermined criteria in response to a predetermined number of iterations being performed or in response to the errors meeting one or more predetermined thresholds.

4. The computer-implemented method of claim 1 , wherein the approximate positions of the subset of the vertices of the polygons are determined based on interpolation of locations on edges of the subset of the particular voxels where the surface intersects the edges.

5. The computer-implemented method of claim 1 , further comprising, mapping, by the one or more processors, each voxel of the plurality of voxels to a respective intersection case from a set of stored intersection cases based on the input data, wherein each mapped intersection case indicates an intersection path of the surface through the voxel, wherein identifying the particular voxels includes identifying edges or other line segments of the particular voxels which the surface intersects based on the mapped intersection cases.

6. The computer-implemented method of claim 1 , wherein determining the approximate positions of the subset of the vertices of the polygons of the mesh includes determining initial approximate positions of the vertices using a marching cubes technique or a surface nets technique.

7. The computer-implemented method of claim 1 , wherein adjusting the approximate position of the at least one vertex of the subset of the vertices includes determining a plurality of approximate positions of the subset of vertices of the polygons, and wherein the subset of the particular voxels includes a plurality of adjacent voxels of the mesh.

8. The computer-implemented method of claim 1 , wherein the subset of the particular voxels includes a plurality of adjacent voxels of the voxel grid, and further comprising determining approximate positions of a second subset of vertices of the polygons of the mesh in a second subset of adjacent voxels of the particular voxels.

9. The computer-implemented method of claim 1 , wherein determining the approximate volume value representing the approximate volume of the mesh occupying each voxel of the subset of the particular voxels includes determining a 3-dimensional integral of the mesh within the voxel.

10. The computer-implemented method of claim 1 , further comprising generating a feature surface based on the mesh, the feature surface displayable by a display device.

11. The computer-implemented method of claim 1 , wherein the input data includes scalar values that indicate a density or an occupancy of voxels by the object volume.

12. A system comprising:

at least one processor; and

a memory coupled to the at least one processor, with instructions stored thereon that, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

receiving input data that represents a surface that distinguishes an inside and an outside of an object volume;

determining a voxel grid that includes the surface, wherein the voxel grid includes a plurality of voxels;

identifying particular voxels of the plurality of voxels which the surface intersects; and

generating a mesh that approximates the surface, the mesh including a plurality of polygons that are defined by vertices of the mesh in the particular voxels, wherein generating the mesh includes:

determining approximate positions of a subset of the vertices of the polygons of the mesh in a subset of the particular voxels;

determining an approximate volume value for each voxel of the subset of the particular voxels, the approximate volume value representing an approximate volume of the mesh occupying the voxel based on the approximate positions of the subset of the vertices;

determining errors between the approximate volume values and corresponding voxel values of the particular voxels, wherein the corresponding voxel values are determined from the input data; and

adjusting the approximate position of at least one vertex of the subset of the vertices using an iterative technique to reduce the errors.

13. The system of claim 12 , wherein the operation of adjusting the approximate position of the at least one vertex includes iterating the determining the errors and the adjusting until the errors meet predetermined criteria.

14. The system of claim 12 , wherein the approximate positions of the subset of the vertices of the polygons are determined based on interpolation of locations on edges of the subset of the particular voxels where the surface intersects the edges.

15. The system of claim 12 , wherein the subset of the particular voxels includes a plurality of adjacent voxels of the voxel grid, and the at least one processor performs further operations comprising determining approximate positions of a second subset of vertices of the polygons of the mesh in a second subset of adjacent voxels of the particular voxels.

16. The system of claim 12 , wherein the operation of determining the approximate volume value representing the approximate volume of the mesh occupying each voxel of the subset of the particular voxels includes determining a 3-dimensional integral of the mesh within the voxel.

17. The system of claim 12 , wherein the at least one processor performs further operations comprising generating a feature surface based on the mesh, the feature surface displayable by a display device.

18. The system of claim 12 , wherein the input data includes scalar values that indicate a density or an occupancy of voxels by the object volume.

19. A non-transitory computer readable medium has stored thereon software instructions that, when executed by a processor of a device, cause the processor to perform operations comprising:

receiving input data that represents a surface that distinguishes an inside and an outside of an object volume;

determining a voxel grid that includes the surface, wherein the voxel grid includes a plurality of voxels;

identifying particular voxels of the plurality of voxels which the surface intersects; and

generating a mesh that approximates the surface, the mesh including a plurality of polygons that are defined by vertices of the mesh in the particular voxels, wherein generating the mesh includes:

determining approximate positions of a subset of the vertices of the polygons of the mesh in a subset of the particular voxels, based on interpolation of locations in the subset of the particular voxels where the surface intersects the subset of the particular voxels;

determining an approximate volume value for each voxel of the subset of the particular voxels, the approximate volume value representing an approximate volume of the mesh occupying the voxel based on the approximate positions of the subset of the vertices;

determining errors between the approximate volume values and corresponding voxel values of the particular voxels, wherein the corresponding voxel values are determined from the input data; and

adjusting the approximate position of at least one vertex of the subset of the vertices using a successive over-relaxation technique to reduce the errors.

20. The non-transitory computer readable medium of claim 19 , wherein the input data includes scalar values that indicate a density or an occupancy of voxels by the object volume, and wherein the operation of determining the approximate volume value representing the approximate volume of the mesh occupying each voxel of the subset of the particular voxels includes determining a 3-dimensional integral of the mesh within the voxel.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2024
From: LADAVAC, ALEN; MCGUIRE, MORGAN SAMUEL
To: ROBLOX CORPORATION
Reel/Frame 066839/0071 →
Continuity (2)
Continuation 17831321 · Jun 2, 2022
Related Publication 20240221317A1 · Jul 4, 2024
References Cited (37)
US 4710876A · Cline et al. · 1987 [cited by applicant]
US 4719585A · Cline et al. · 1988 [cited by applicant]
US 4729098A · Cline et al. · 1988 [cited by applicant]
US 4751643A · Lorensen et al. · 1988 [cited by applicant]
US 11217016B1 · Mason · 2022 [cited by applicant]
US 11954802B2 · Ladavac · 2024 [cited by examiner]
US 20050134586A1 · Koo et al. · 2005 [cited by applicant]
US 20050219245A1 · Tao · 2005 [cited by applicant]
US 20060290695A1 · Salomie · 2006 [cited by applicant]
US 20070165025A1 · Shen et al. · 2007 [cited by applicant]
US 20210097703A1 · Chang et al. · 2021 [cited by applicant]
US 20210295597A1 · Higashikata et al. · 2021 [cited by applicant]
Akleman, et al., “Generalized Distance Functions”, 1999 Shape Modeling International, Mar. 1, 1999, p. 72-79. [cited by applicant]
Blinn, et al., “A Generalization of Algebraic Surface Drawing”, ACM Transactions on Graphics 1:3, ACM, New York, NY, USA, Jul. 1982, p. 235-256. [cited by applicant]
Bronshtein, et al., “Handbook of Mathematics—Chapter 19—Numerical Analysis”, Handbook of Mathematics, 5th Edition, Jan. 1, 2007, pp. 884-952. [cited by applicant]
Chica, et al., “Pressing: Smooth Isosurfaces with Flats from Binary Grids”, Computer Graphics Forum. vol. 27. No. 1. Oxford, UK: Blackwell Publishing Ltd, Mar. 2008, 12 pages. [cited by applicant]
EPO, Extended European Search Report for European Patent Application No. 23175625.5, Oct. 13, 2023, 17 pages. [cited by applicant]
Gibson, “Constrained Elastic SurfaceNets: Generating Smooth Models from Binary”, TR99 24; Mitsubishi Electric Research Laboratories, Dec. 1999, 13 pages. [cited by applicant]
Glanznig, et al., “Locally Adaptive Marching Cubes through Iso-Value Variation”, Proceedings of the International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision, Feb. 2009, 8 pages. [cited by applicant]
Hart, “Ray Tracing Implicit Surfaces”, SIGGRAPH'93 Course Notes: Design, Visualization and Animation of Implicit Surfaces, Aug. 1993, p. 1-16. [cited by applicant]
Hoffmann, et al., “Automatic Surface Generation in Computer Aided Design”, The Visual Computer, 1.2, Aug. 1985, p. 92-100. [cited by applicant]
Ju, et al., “Dual contouring of hermite data”, Proceedings of the 29th annual conference on Computer graphics and interactive techniques, ACM Transactions on Graphics, vol. 21, Issue 3, Jul. 2002, 8 pages. [cited by applicant]
Keinert, et al., “Enhanced Sphere Tracing”, Proceedings of Smart Tools & Apps for Graphics, Andrea Giachetti (ed.), EuroGraphics, Sep. 2014, pp. 1-8. [cited by applicant]
Kim, et al., “A new finite element approach for solving three-dimensional problems using trimmed hexahedral elements”, International Journal of Numerical Methods in Engineering, vol. 102, No. 9, Mar. 17, 2015, 27 pages. [cited by applicant]
Kobbelt, et al., “Feature Sensitive Mesh Processing”, Proceedings of the 18th Spring Conference on Computer Graphics, SCCG '03, Apr. 24, 2003, pp. 17-22. [cited by applicant]
Kretschmer, et al., “Reliable Adaptive Modelling of Vascular Structures with Non-Circular Cross-Sections”, Computer Graphics Forum: Journal of the European Association for Computer Graphics, vol. 31, Jun. 25, 2012, 10 p… [cited by applicant]
Labelle, et al., “Isosurface Stuffing: Fast Tetrahedral Meshes with Good Dihedral Angles”, ACM SIGGRAPH 2007 papers, ACM Transactions on Graphics, 26(3), Jul. 2007, 10 pages. [cited by applicant]
Lorensen, et al., “Marching cubes: A high resolution 3D surface construction algorithm”, ACM SIGGRAPH Computer Graphicsvol. 21; Issue 4; https://doi.org/10.1145/37402.37422, Jul. 1987, pp. 163-169. [cited by applicant]
Osher, et al., “Level Set Methods: An Overview and Some Recent Results”, Journal of Computational Physics, vol. 169, Issue 2, Sep. 5, 2000, pp. 463-502. [cited by applicant]
Press, et al., “Chapter 9: Root Finding and Nonlinear Sets of Equations”, Numerical Recipes in C: the Art of Scientific Computing, Feb. 1993, 48 pages. [cited by applicant]
Shu, et al., “Adaptive Marching Cubes”, The Visual Computer 11.4, 2003, 29 pages. [cited by applicant]
Shu, et al., “Adaptive marching cubes”, Visual Computer, vol. 11, No. 4, Jan. 1995, 16 pages. [cited by applicant]
USPTO, Notice of Allowance for U.S. Appl. No. 17/831,321, Dec. 6, 2023, 10 pages. [cited by applicant]
USPTO, Non-final Office Action for U.S. Appl. No. 17/831,310, Mar. 14, 2024, 18 pages. [cited by applicant]
USPTO, Notice of Allowance for U.S. Appl. No. 17/831,310, Jul. 10, 2024, 8 pages. [cited by applicant]
JPO, Notice of Allowance (with English translation) for Japanese Patent Application No. 2023-91784, Nov. 5, 2024, 5 pages. [cited by applicant]
First Office Action (with English translation) for Korean Patent Application No. 10-2023-0071838, Oct. 31, 2024, 9 pages. [cited by applicant]