You are here: 3D Modeling > Working with Meshes > Decimating Meshes

Decimating Meshes

For cases in which you need to reduce the number of vertices, edges, and triangles in a mesh, Dragonfly provides a Mesh Decimator. Surface simplification is one way to enable real-time, interactive visualization of large, complex meshes. The example below illustrates a progressive mesh decimation.

Decimated meshes

Original mesh

Mesh decimated by 50%

Mesh decimated by 75%

Original mesh

Mesh decimated by 50%

Mesh decimated by 75%

In the Mesh Decimator panel, shown below, you can choose a decimation method and a reduction target. The overall shape, volume, and boundaries of the original mesh will be preserved as much as possible during the simplification process. Right-click the required mesh in the Data Properties and Settings and then choose Mesh Decimator in the pop-up menu to open the Mesh Decimator panel, shown below.

Mesh Decimator panel

Mesh Decimator panel

Parameters available for simplifying meshes
  Description

Mesh

Indicates the currently selected mesh, to which the decimation will be applied. If required, you can select another mesh in the drop-down menu.

Method

Two methods are available in Dragonfly to reduce the number of vertices, edges, and triangles in a mesh — Pro decimation and Quadric decimation. These methods work by the iterative elimination of components identified through local geometric optimality criteria. You should note that both methods will attempt to preserve the overall shape, volume, and boundaries of the original mesh as much as possible.

Pro decimation… With this simplification method, each vertex in the mesh is classified and inserted into a priority queue. The priority is based on the error to delete the vertex and re-triangulate the hole. Vertices that cannot be deleted or triangulated (at this point in the algorithm) are skipped. Then, each vertex in the priority queue is processed (i.e., deleted followed by hole triangulation using edge collapse). This continues until the priority queue is empty. Next, all remaining vertices are processed, and the mesh is split into separate pieces along sharp edges or at non-manifold attachment points and reinserted into the priority queue. Again, the priority queue is processed until empty. If the desired reduction is still not achieved, the remaining vertices are split as necessary (in a recursive fashion) so that it is possible to eliminate every triangle as necessary.

Reference: https://www.vtk.org/doc/nightly/html/classvtkDecimatePro.html#details.

Quadric decimation… Is based on repeated edge collapses until the requested mesh reduction is achieved. Edges are placed in a priority queue based on the “cost” to delete the edge. The cost is an approximate measure of error (distance to the original surface) — described by the so-called quadric error measure. The quadric error measure is associated with each vertex of the mesh and represents a matrix of planes incident on that vertex. The distance of the planes to the vertex is the error in the position of the vertex (originally the vertex error is zero). As edges are deleted, the quadric error measure associated with the two end points of the edge are summed (this combines the plane equations) and an optimal collapse point can be computed. Edges connected to the collapse point are then reinserted into the queue after computing the new cost to delete them. The process continues until the desired reduction level is reached or topological constraints prevent further reduction. Note that this basic algorithm can be extended to higher dimensions by taking into account variation in attributes (i.e., scalars, vectors, and so on).

Reference: https://www.vtk.org/doc/nightly/html/classvtkQuadricDecimation.html#details.

Target decimator

Lets you set the target reduction as a percentage ([0,1]) of vertices, edges, and triangles to be removed. For example, if the mesh contains 100 triangles and a Target Reduction of 0.90 is set, there will be approximately 10 triangles, a 90% reduction, after the decimation.

NOTE If the cost of removing a component is too high, then it will not be removed and the selected target reduction may not be reached. This should avoid the creation of a mesh with non real-world geometry.

Create new mesh

Lets you choose an output target — at the input so that the original mesh is transformed, or at the output so that a new mesh is created and the original remains unmodified.

Whenever possible, you should try to retain the original mesh so that you can compare the original and reduced versions.

 

Dragonfly Help Live Version