**Goal of mesh smoothing:** Remove noise from triangle meshes and improve vertex distribution.

Two different kinds of smoothing:

- In
*normal direction*, used to smooth a surface - In
*tangent direction*, used to improve vertex distribution and triangle shapes

# 2D Smoothing

## Simple smoothing operator

- Move to COG of neighbours
- $p_i \leftarrow \frac{1}{2}(p_{i-1} + p_{i+1})$
- As update vector
- $p_i \leftarrow p_i + \Delta p_i \qquad \Delta p_i = \frac{1}{2}(p_{i-1} - 2p_i + p_{i+1})$
- Add DoF
- $\Delta p_i = \alpha(p_{i-1} - p_i ) + \beta ( p_{i+1} - p_i )$

$\alpha = \frac{1}{(t_2-t_1)(t_3-t_1)}, \beta = \frac{1}{(t_3-t_1)(t_3-t_2)}, t_i$ in arc length param. $\Rightarrow$ normal smoothing only

$\alpha = 0.5, \beta = 0.5 \Rightarrow$ finite second-order central difference.

**Taylor:** $\Delta p_i \approx \frac{\delta^2 f}{\delta x^2} \Rightarrow$ reduces the curvature with each step.

## Analysis

Write above as vector-matrix produkt:

(1)- $0<\lambda<1$ is a damping factor to avoid oscillation
- U contains the finite second order central difference on its main diagonal
- Assume polygon to be infinite

Eigenanalysis and Fourier Transform reveals that the smoothing operator is a frequency filter.

Transfer function: $(1-\lambda \omega)$

## Filter design

- Low-pass filter
- $[q_i] := (I + \lambda U)[p_i]$
- High-pass filter
- $[h_i] := [p_i]-[q_i] := ( - \lambda U)[p_i]$
- Band-pass filter (mid frequencies)
- $[m_i] := ( I + \lambda U)[h_i] = (I+\lambda U)(-\lambda U)[p_i]$
- Improved filter
- $[q_i+m_i] = (I+\lambda U) (I-\lambda U)[p_i]$
- $\lambda-\mu$-Smoothing
- $(I+\mu U) (I+\lambda U)[p_i]$ ($\lambda>0, \mu < -\lambda$)

More DoF possible, but $\lambda-\mu$-Smoothing practically sufficient.

# Smoothing in 3D

- 1-ring neighbourhood
- $N_1(i)$
- Umbrella operator
- $p_i \leftarrow p_i + \frac{1}{|N_1(i)|} \sum_{j\in N_1(i)}(p_j-p_i)$
- Weighted and dampened umbrella
- $p_i \leftarrow p_i + \lambda \sum_{j\in N_1(i)}w_{ij}(p_j-p_i)$

Umbrella vector approximates the Laplace vector, operator **reduces curvature**

## Weights

- Linear precision
- Smoothing operator does not move vertex out of 1-ring

Uniform weights | $w_{ij} = \frac{1}{n}$ | Purely topology based, performs tangential and normal smoothing |

Cotangent | $w_{ij} = \cot(\alpha_{ij})+\cot(\beta_{ij})$ | Based on the area, reduce area to reduce curvature, normal smoothing, almost no tangential smoothing, linear precision, can be negative if alpha+beta>180 |

Shape preserving weights | $w_{ij} = \frac{1}{n}\sum_{k=0}^{n-1} \mu_{kj}$ | Summed up contributions of the barycentric coords., linear precision, positivity, normal smoothing |

$\mu_ij$ are the barycentric coordinates for the corresponding point.

Same smoothing operations as in the 2D case apply.

# Physical interpretation

Iteration of the simple smoothing operator converges to a membrane surface with a $C^0$ boundary minimizing its surface area, obeying the Laplacian equation $\Delta f = f_{uu} + f_{uv} = 0$ .

Iteration of the advanced smoothing operator converges to a thin plate with a $C^1$ boundary minimizing its curvature, obeying the squared Laplacian equation $\Delta^2 f = f_{uuuu} + f_{uuvv} + f_{vvvv}=0$.

# Error Control

## $\epsilon$-Balls

Back-project smoothed points outside the $\epsilon$-radius of the original point.

Bad: isotropic

## $\epsilon$-Slabs

Back-project smoothed points outside the $\epsilon$-ellipse of the original point

Good: anisotropic