Fast Loop mesh subdivision

Subdivide a surface mesh, using Loop subdivision. Boundary- and shape-maintaining
1,6K download
Aggiornato 16 ago 2017

Visualizza la licenza

Usage: [mfRefinedMesh, mnTriangulation] = LoopSubdivisionLimited( mfMeshPoints, mnTriangulation, fMinResolution, vbBoundaryEdges)

This function sub-divides surface meshes, using the Loop subdivision algorithm [1]. This algorithm is based on B-spline curve continuity, leading to good shape-maintaining smoothing of a surface. The algorithm attempts to leave the boundary of the surface essentially undistorted.
'mfMeshPoints' is an Nx3 matrix, each row of which ['x' 'y' 'z'] defines a point in three-dimensional space. 'mnTriangulation' is a Mx3 matrix, each row of which ['m' 'n' 'p'] defines a triangle existing on the surface, where 'm', 'n' and 'p' are indices into 'mfMeshPoints'.
'fMinResolution' defines the desired minimum length of an edge in the final subdivision. Edges shorter than 'fMinResolution' will not be divided further.

The optional argument 'vbBoundaryEdges' identifies which edges should be treated as boundary edges (and so should their locations should be attempted to be maintained by the algorithm). This argument will be calculated by the algortihm, if it is not supplied.

'mfRefinedMesh' will be a Px3 matrix, each row of which specifies a vertex in the subdivided mesh. 'mnTringulation' will be a Rx3 matrix, each row of which specifies a surface triangle in the subdivided mesh.

Algorithm from [1].

*ROOM FOR IMPROVEMENT*
If you work out how to maintain the vertex and edge adjacency matrices through a full subdivision run, then great! That would speed up subsequent runs a great deal, since a lot of the time is spent computing the edge adjacency matrix...

References
[1] Loop, C 1987. "Smooth subdivision surfaces based on triangles." M.S. Mathematics thesis, University of Utah. http://research.microsoft.com/en-us/um/people/cloop/thesis.pdf

Cita come

Dylan Muir (2024). Fast Loop mesh subdivision (https://www.mathworks.com/matlabcentral/fileexchange/32727-fast-loop-mesh-subdivision), MATLAB Central File Exchange. Recuperato .

Compatibilità della release di MATLAB
Creato con R2009a
Compatibile con qualsiasi release
Compatibilità della piattaforma
Windows macOS Linux
Categorie
Scopri di più su Surface and Mesh Plots in Help Center e MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Versione Pubblicato Note della release
1.5.0.0

Updated description
Updated description
Updated description
Updated description
Updated usage formatting
Updated description
Updated description

1.4.0.0

Updated summary

1.3.0.0

Updated function to include resolution limiting version.

1.2.0.0

Updated description

1.1.0.0

* Fixed a bug that occurred if some points did not appear in the triangulation.

* Updated help text and description to include 'fMinResolution' argument

* Updated image

1.0.0.0