Surface Smoothing based on Discrete Orthogonal Polynomial

In one sentenceA denoising method for noisy 3D-scanned meshes: it gathers similar surface patches around each face, smooths their normals by orthogonal polynomial fitting, then moves the vertices, removing noise while keeping sharp edges.
The problem
Triangle meshes are a versatile way to represent 3D objects in reverse design, rapid prototyping, 3D printing and virtual simulation. Meshes obtained by 3D measurement, however, carry noise introduced during scanning and digitisation, and it has to be removed in pre-processing. The difficulty is to remove the noise while preserving geometric features such as sharp edges as much as possible.
Early smoothing methods are isotropic and cannot preserve such features: a simple, fast Laplacian smoothing, for example, also contracts the surface. Anisotropic methods do better. Many of them smooth the face normals first and then update the vertices; methods that classify features during denoising often look only at local neighbourhoods and are susceptible to noise, and sparse formulations such as L0-minimisation preserve features but lead to a non-convex, slow minimisation.
How it works
The method also smooths normals first and then moves the vertices, with two changes. A face’s normal is estimated not from a single face or its immediate neighbours but from non-local similar structures: groups of faces in a wider neighbourhood that share its orientation. These normals are then filtered by fitting them with orthogonal polynomials, whose different orders do not interfere with one another.

- Normal tensor of a local structure. A single noisy face normal may not be accurate enough. For each face, the faces within r rings of neighbours around it (its r-ring) vote into a normal tensor, weighted by their distance and by the angle between the normals; the eigenvector of the largest eigenvalue is the representative direction of that local structure.
- Co-aligned local structure. Faces whose normal deviates from this direction by more than a threshold angle θth are removed, which eliminates faces with large errors from the structure. The threshold is set larger for noisier models.
- Non-local similar structures. The search is widened to an R-ring (R > r). Every co-aligned structure in it whose angle to the current one is within θth (40° for high noise, 20° for low noise) is added to the face’s set of non-local similar structures.
- Orthogonal polynomial filtering. The face normals of these structures are stacked as rows of a matrix, which is reshaped to be close to square (an n × 3 matrix has rank at most 3, so the reshape makes the low-rank fit meaningful). Discrete Legendre polynomial bases are built in the X and Y directions on [−1, 1], and the matrix is fitted with them. Where structures overlap, each face’s estimates are accumulated and divided by how often the face was used, giving its updated normal.
- Vertex update. Each vertex is moved according to the updated normals of the faces around it, and the mesh is updated over several iterations.

Results
The method is compared with seven others: L0-minimisation, the Bilateral, Unilateral and Guided Normal Filters (BNF, UNF, GNF), the L1-median filter, the Half-kernel Laplacian Operator (HLO) and Segmentation-Driven Feature-Preserving filtering (SNF). Synthetic test meshes are made by adding zero-mean Gaussian noise whose standard deviation σn is proportional to the mean edge length lₑ. Two errors are measured against the ground truth: Ev, a vertex-based positional error, and MSAE, the mean square angular error of the face normals. The new method has the lowest value on both measures for Cube and on one of the two for Fandisk and Cad; L0-minimisation has the lowest MSAE on Fandisk and SNF the lowest Ev on Cad. On Octaflower, SNF has the lowest Ev and MSAE (L1 ties it on Ev), and the paper’s close-up views show the method preserving local features.
On a raw scan of the Angel model, the method lags slightly behind SNF but denoises and preserves features better than the other methods. On the same scanned Bunny with noise at three levels, it performs well at 0.1 and 0.3 but has certain limitations at 0.5. The authors note that, like other methods, it has limited robustness against excessive noise and irregular triangulation; as future work they suggest partitioning the mesh and fitting the orthogonal polynomials separately on feature parts (corners and edges) and non-feature parts.



Cite
@article{lei2025surface,
title={Surface Smoothing based on Discrete Orthogonal Polynomial},
author={Lei, Lu and Ning, Li and Wei, Pan and Wenming, Tang},
journal={Computer-Aided Design and Applications},
volume={22},
number={6},
pages={1027--1039},
year={2025},
doi={10.14733/cadaps.2025.1027-1039}
}