Skip to main content

surfaceLambdaMuSmooth

Overview

The surfaceLambdaMuSmooth utility smooths a given surface by moving point positions based on the procedure described by Taubin 76.

Usage

Synopsis

surfaceLambdaMuSmooth [OPTIONS] <input> <lambda> <mu> <iterations> <output>

Examples

surfaceLambdaMuSmooth surface.stl 0.5 0.5 1 output.stl

Input

Arguments

<input> The input surface file
<lambda> On the interval [0,1]
<mu> On the interval [0,1]
<iterations> The number of iterations to perform
<output> The output surface file

Options

-featureFile <Fix points from a file containing feature points and edges>
-doc Display documentation in browser
-help Display short help and exit
-help-full Display full help and exit

Files

No file input required.

Fields

No field input required.

Output

Logs

PropertyDescriptionType
FacesNumber of faces on the surfacelabel
VerticesNumber of vertices on the surfacelabel
Bounding BoxBounding box of the surfacemin/max vector

Files

PropertyDescriptionPathType
featureFileNew surface file<case>/input type

Fields

No field output.

Method

The discrete Laplacian is given by

Δxi=jiwij(xjxi)\Delta x_i = \sum_{j \in i^{*}} w_{ij}(x_j - x_i)

The weight wijw_{ij} is set to the inverse of the number of points surrounding the point ii, i.e.

wij=1iw_{ij} = \frac{1}{i^{*}}

Gaussian filtering is performed iteratively as

xi=xi+λΔxix_i^{'} = x_i + \lambda \Delta x_i xi=(1λ)xi+λΔxix_i^{'} = (1 - \lambda) x_i + \lambda \Delta x_i xi=xi+μΔxix_i^{'} = x_i + \mu \Delta x_i xi=(1+μ)xiμΔxix_i^{'} = (1 + \mu) x_i - \mu \Delta x_i

For Laplacian smoothing, the μ\mu coefficient should be set to zero.

The procedure will move all points by default, and therefore will degrade features points and lines. To preserve features, the set of points to fix can be supplied.

Provide an edgeMesh file containing points that are not to be moved during smoothing in order to preserve features.

Further information

Tutorial:

  • None

Source code:

History: Introduced in version 2.2.1