The aim of this work is to provide a fast and efficient mesh coarsening/resampling facility for triangular meshes. It can be applied to very complex meshes (several millions of vertices). This approach is based on the clustering of the input mesh elements (vertices or triangles) within a variational framework .
Figure 1: The input mesh a) is partitioned by means of variational clustering b). Each cluster results in the creation of a new vertex in the coarsened version. The triangulation is deduced from the clusters adjacency c) and has very good quality when considering the triangles aspect ratio.
The proposed clustering approach generates partitions which are similar to centroidal Voronoi regions, where each region has the same size. As a consequence, the sampling is very uniform on the surface, and the resulting triangulation has elements with good aspect ratios.
Figure 2: A curvature indicator map is built for the bunny mesh (left) and is inserted in the clustering scheme, to obtain a curvature-adapted isotropic mesh.
Curvature adaptivity is possible by introducing curvature measures within the clustering scheme (see figure 2). Note that this approach is also useful for remeshing applications (when the user wants the output mesh to have an arbitrary number of vertices VALE-05. This approach was extended for anisotropic meshing , and to provide approximation-effective meshes .
The following anmation shows the clustering evolution during minimization, on the Stanford Bunny. Initial seeds have been concentrated on one side on purpose, and the result shows that our approach is robust to initialization.
This program uses the Visualization ToolKit (VTK). You do not need to download the library, it is already included in the executables)
The source code is also available via a git repository here
This code is distributed under the CECILL-B license (BSD-compatible)
(copyright CNRS, INSA-Lyon, UCBL, INSERM.)
This work is made in collaboration with Jean-Marc Chassery from the Gipsa-lab ( http://www.gipsa-lab.inpg.fr/ )