Abstract
In this chapter, we cover how meshes are smoothed. This is an important topic in geometry processing since acquired meshes are always subject to noise. The basic principles of signal processing are discussed. Then we present the principles behind Laplacian smoothing and Taubin smoothing, which is based on Laplacian smoothing but suffers less from shrinkage. However, Taubin smoothing causes distortion if the mesh is not highly regular in its structure. Mean curvature flow is much better in this regard.
Using spectral smoothing, it is possible to create filters that more accurately manipulate features of a certain scale. Spectral smoothing works by observing that the Laplace–Beltrami operator, which is central to many smoothing schemes, can be written as a linear operator whose eigenvectors form a function space upon which the vertex positions can be projected—very much like the Fourier basis on a regular grid.
Smoothing generally smooths sharp edges and corners. Fortunately, there are several schemes which remove noise while preserving features such as corners and edges.
Finally, we can see smoothing as an energy minimization and the chapter concludes with a discussion of variational subdivision which is based on repeated refinement and smoothing of meshes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Pronounced “Lambda-Mu”, although generally referred to as Taubin smoothing.
References
Desbrun, M., Meyer, M., Schröder, P., Barr, A.H.: Implicit fairing of irregular meshes using diffusion and curvature flow. In: SIGGRAPH’99: Proceedings of the 26th Annual Conference on Computer Graphics and Interactive Techniques, pp. 317–324. ACM Press, New York (1999). doi:10.1145/311535.311576
Taubin, G.: A signal processing approach to fair surface design. In: ACM SIGGRAPH’95 Proceedings (1995)
Pinkall, U., Polthier, K.: Computing discrete minimal surfaces and their conjugates. Exp. Math. 2(1), 15–36 (1993)
Vallet, B., Lévy, B.: Spectral geometry processing with manifold harmonics. Comput. Graph. Forum 27(2), 251–260 (2008)
Meyer, M., Desbrun, M., Schröder, P., Barr, A.H.: Discrete differential-geometry operators for triangulated 2-manifolds. In: Hege, H.-C., Polthier, K. (eds.) Visualization and Mathematics III, pp. 35–57. Springer, Heidelberg (2003)
Levy, B., Zhang, R.H.: Spectral geometry processing. In: ACM SIGGRAPH Course Notes (2010)
Shen, Y., Barner, K.E.: Fuzzy vector median-based surface smoothing. IEEE Trans. Vis. Comput. Graph. 10(3), 252–265 (2004). doi:10.1109/TVCG.2004.1272725
Zheng, Y., Fu, H., Au, O.K.-C., Tai, C.-L.: Bilateral normal filtering for mesh denoising. IEEE Trans. Vis. Comput. Graph. 17(10), 1521–1530 (2011). doi:10.1109/TVCG.2010.264
Kobbelt, L.P.: Discrete fairing and variational subdivision for freeform surface design. Vis. Comput. 16, 142–158 (2000)
Gelfand, I.M., Fomin, S.V.: Calculus of Variations. Dover, New York (2000)
Golub, G.H., van Loan, C.F.: Matrix Computations, 3rd edn. John Hopkins, Baltimore (1996)
Kobbelt, L., Campagna, S., Vorsatz, J., Seidel, H.-P.: Interactive multi-resolution modeling on arbitrary meshes. In: ACM SIGGRAPH’98 Proceedings, pp. 105–114 (1998)
Author information
Authors and Affiliations
Corresponding author
Appendix: A Laplace Operator for a Triangle Mesh
Appendix: A Laplace Operator for a Triangle Mesh
There are a number of techniques for finding a Δ operator on a triangle mesh. In many cases, we prefer a discrete Laplace–Beltrami operator, but the umbrella operator [2] has also been used extensively in this chapter and will be derived in the following.
To start with, we consider how to find the value of Δ locally at a single vertex. Notice that in the following, we will move from a scalar function f:ℝ2→ℝ to a vector function f:ℝ2→ℝ3. This simply means that we minimize three functions f x, f y, and f z independently, where \(\mathbf {f}(u,v) = [f^{x}(u,v) \: f^{y}(u,v) \: f^{z}(u,v) ]^{T}\).
In the above, we assumed a parametric surface representation. However, this parametric representation need not be global. All we need is a local function f which approximates the surface in the neighborhood of that vertex. Given such a function f, we can simply compute its
and consider that to be the Laplacian of the mesh at the vertex in question. Typically, we find a local surface approximation by least squares fitting a second order polynomial surface to the 1-ring neighborhood of a vertex
Note that the coefficient f corresponds precisely to the surface point f(0,0) and the other coefficients correspond to the first and second derivatives of the surface at (u,v)=(0,0).
In order to find a suitable function, f, at a given mesh vertex we must assign a pair of parameter coordinates (u,v) to each vertex. Let the centre vertex have parameter coordinates (0,0) and let the other (u,v) coordinates be numbered from 1 to n where n is the valency (number of neighbors) of the vertex. This is illustrated in Fig. 9.8.
Let j be the index of a vertex in the 1-ring. We reserve the index 0 for the centre vertex, and the neighbors are numbered from 1 to n. Let p j be the 3D space position of vertex j. Since (u,v)=(0,0) has been assigned to the centre vertex,
We now subtract the equation above from (9.21) for all the neighboring vertices. We can then write the resulting system of equations (n equations, one for each neighboring vertex) in matrix form UF=P where U is the matrix of parameter values, F is the vector of coefficients for the polynomial surface, and P is the vector of geometric positions:
Note that each entry in F and P is really a 3D vector. This is not important for the analysis, since we can consider each component separately.
Clearly, the matrix above has a solution only in the case where n=5 since the matrix U is not square otherwise. We will assume that we have at least five neighbors. In this case, we can solve (9.22) in the least squares sense
To sum up, F is the vector of coefficients to our polynomial surface, and the third and fifth entry of F correspond to the second order derivatives of f(u,v). We can compute the Laplacian simply by
Till now, we have ignored the fact that we do not really have a parametrization. Now we need to find a parametrization since the U and, hence, D requires it. We now parametrize in a way that is completely independent of geometry. A very simple method is to just distribute the parameter coordinates evenly on the unit circle as shown in Fig. 9.9.
With this distribution, we can precompute parameter coordinates for a particular valence as follows:
If we plug the above values into the U matrix and compute (9.24), we obtain an unexpectedly simple result. It turns out that
(apparently) for all valencies greater than 5. For n<5 the system is singular. This result leads to the following very simple formula:
In other words, the Laplacian is simply the average of the vectors from the centre vertex to its neighbors times 4. This factor is of no importance since we want to solve Δf=0.
Let \(\mathcal {N}_{i}\) be the set of indices of neighbors to the vertex of index i and let \(n=|\mathcal {N}_{i}|\) be the valency of vertex i. Dropping the 4 factor, we can now write a discrete triangle mesh Laplacian, \(\mathcal {L}\), operating on a vertex p i
This operator is usually referred to as the umbrella operator, and we can express it as a matrix (applying the Laplacian to all vertices at once).
where P is the vector of vertex positions, I is the identity, K=I−W, W ij is \(1/|\mathcal {N}_{i}|\) if vertex i and j are connected. This Laplacian is also used for vertices of valence less than 5, but note that these are rare—unless the mesh is very irregular.
Rights and permissions
Copyright information
© 2012 Springer-Verlag London
About this chapter
Cite this chapter
Bærentzen, J.A., Gravesen, J., Anton, F., Aanæs, H. (2012). Mesh Smoothing and Variational Subdivision. In: Guide to Computational Geometry Processing. Springer, London. https://doi.org/10.1007/978-1-4471-4075-7_9
Download citation
DOI: https://doi.org/10.1007/978-1-4471-4075-7_9
Publisher Name: Springer, London
Print ISBN: 978-1-4471-4074-0
Online ISBN: 978-1-4471-4075-7
eBook Packages: Computer ScienceComputer Science (R0)