Overview | All Modules | Tutorial | User's Guide | Programming Guide

COVISE Online Documentation

Module category: Filter


The module SmoothSurface smoothes polygonal surfaces which appear faceted or bumpy, i.e. isosurfaces resulting from a marching cubes algorithm.



Name Type Description
method Choice Smoothing Method:
Gaussian Smoothing
Taubin Smoothing
iterations Scalar Number of smoothing passes to be performed
scale_1 Scalar Scale factor between 0 and 1, expresses the "aggressivity" of the filtering process
scale_1 Scalar Additional scale factor for the second pass of the Taubin smoothing method. It has to be between -1 and -scale_1. It is recommended to chose scale_2 less than, but near to -scale_1.

Input Ports

Name Type Description
requiredmeshIn Polygons

Output Ports

Name Type Description
outputmeshOut Polygons Smoothed Mesh


Figure: covise/net/examples/SmoothSurface.net

The 2 Renderer outputs produced by the map SmoothSurface.net show

  1. The original example surface
  2. Taubin smoothing with scale_1=0.4, scale_2=-0.43,and iterations=30 (as specified in the Control Panel)
Figure: Original example surface (Renderer 2 output)

Figure: Surface with Taubin smoothing (Renderer 1 output)


The module constitutes the implementation of the standard Gaussian smoothing method and the enhanced smoothing method proposed by Gabriel Taubin in his paper "Curve and Surface smoothing without shrinkage", Technical Report RC-19536, IBM Research, 1994.

In Gaussian smoothing, we compute in each iteration the difference vector between each vertex and the average of the positions of his neighbors. This difference vector is then multiplied by the scale factor scale_1, which serves to tune the aggressivity of the smoothing, and added to the original position. Hence, we do not add or remove vertices, but merely modify their coordinates dependent on the position of the first order neighbor vertices.

Taubin performs two Gaussian smoothing steps per iteration, one with a positive scale factor scale_1, the second with a negative scale factor scale_2, which is recommended to chose less than, but near to -scale_1. As he explains in his paper, this leads to a linear low pass filter that removes high curvature variations, and does not produce shrinkage (in contrast to the Gaussian smoothing).

Module Usage

The module is recommended to apply, e.g.:

  1. After an Isosurface module, if the output surface appears faceted. It helps then to transform small, thin triangles into more equiangular triangles, and to level out the terraced look of some marching cubes outputs (if the volume resolution was very fine), which results in a smoother appearance of the surface.
  2. After a SimplifySurface module, if formerly smooth parts of the surface appear bumpy. Then it helps to level out rough places which are not inherent in the surface but were introduced artificially by the reduction algorithm.
Note that the module does not change the connectivity of the mesh, or the number of vertices. Hence, if normals or data values are attached to the mesh, these can be connected to the next module in the pipeline without problems.

Authors: Martin Aumüller, Ruth Lang, Daniela Rainer, Jürgen Schulze-Döbold, Andreas Werner, Peter Wolf, Uwe Wössner
Copyright © 1993-2016 HLRS, 2004-2014 RRZK, 2005-2014 Visenso
COVISE Version 2016.3