Mesh smoothing in MeshLab

Written by Paul Bourke
April 2021


The following describes one possible option for smoothing meshes in MeshLab, the example used here is shown below.

Ensure you are always viewing the model with flat shading, easy to be mislead by smooth shading with normals.

Too be safe, remove duplicate vertices. This seems to happen automatically in MeshLab when importing models in some formats (like stl) but it doesn't occur for other 3D formats (like OBJ). Ensuring shared vertices is important, one may like to remove duplicate faces if the mesh is originating from a poor exporter.

Effective smoothing involves managing the triangles density. If there are too few triangles then there is no way for the smoothing to be implemented. This is because smoothing requires vertices to exist at a density greater than the features to be smoothed. On the other hand, if the mesh density is too high, the smoothing will fail to smooth out the larger scale creases. The approach then is to apply a triangle splitting followed by smoothing and perhaps repeat, splitting ever finer and then smoothing. One possible triangle splitting is as shown below.

This results in a second layer, so remember to deselect the original model layer before continuing. And ensure the desired layer is highlighted when exporting the smoothed mesh.

A common smoothing function is HC Laplacian smoothing, menu illustrated below.

The following shows the result after 2 iterations of the above procedure.