[Impressionist] [Ray Tracing] [Subdivision Surface] [Surface Faring]



Surface Fairing


Yung-Yu Chuang, CSE557 HW#4, 1999 Spring Quarter


I extend my subdivision surface modeler to handle surfcae fairing. It is based on Taubin's SIGGRAPH95 paper. This paper adopts the signal processing view on surface fairing and introduces the generic Laplacian operator on discrete graph signals. The basic idea behind Laplacian operator is to move the vertices toward the average (filtered) version of their neighbors. It works like a low-pass filter and can smooth the surface. However, like Gaussian filter, Laplacian operator will produce shrinkage effect.

To address the shrinkage problem, Taubin introduces lamda-mu algorithm to approximate the ideal low-pass filter, identity transform for frequency less than pass-band frequency and null transform for the higher. Laplacian operator is first applied to smooth the surface (with shrinkage) by some positive lamda and followed by one anti-shrinkage operation (Laplacian operator with a negative mu with slightly larger magnitude than lamda). After applying the lamda-mu pair several times, we will approximate the ideal low-pass filter closely enough and then produce a smooth non-shrinking surface. .


Surface Fairing

The purpose of fairing surface is to have the surface smooth. We first apply fairing algorithm on the bumpy surface as shown in figure 1. We add some noise on the left-hand side of the sphere model to make it bumpy.

Shading Initial Mesh After 5 steps of Smoothing After 20 steps of smoothing After 50 steps of smoothing After 200 steps of smoothing
Flat




Smooth




Figure 1 The smoothing effect of fairing algorithm



What's Wrong with Subdivision Scheme

Though Loop's scheme can generate smooth surface, it suffers shinkage since it is non-interpolating. Figure 2(b) shows the shrinkage of Loop's scheme with respect to the input model in figure 2(a). Butterfly scheme won't suffer the problem but will have ringing and bumpiness effects. You should be able to see some bumpiness around the base of the cup in figure2(c). Fairing algorithm addresses these two problems and generates a non-shrinking smooth surface as shown in figure 2(d). However, the choice of pass-band frequency and lamda-mu pair is not arbitrary. As a rule of thumb, Kpb between 0.01 and 0.1 will produce good result. When the Kpb is too high, the portion of the model with high frequency (sharpness) will not be attenuated and we will finally have a bumpy and cornered surface as figure 2(e).


(a) Base Mesh

(b) Loop's Scheme

(c) Butterfly Scheme

(d) Fairing (Kpb=0.1)

(e) Fairing (Kpb=0.5)
Figure 2 Comparison of different subdivision schemes



Hierarchical Constraints

This constraint modifies the neighborhhood of the vertices. There are two sorts of constraints in this family, empty-neighborhood constraint and hierarchical constraint. The former means that the vertices are isolated and not affected by the nearby vertices. So, we can expect that the vertices with empty neighborhood constraint will be static during fairing. The later means that vertices are only affected by the neighbor vertices with the same label. If we pick up the vertices on a curve along the surface to be of the same label, then we can expect that

1. The vertices on the curve will be intepolated smoothly.
2. The surface on the both sides of the curve will be interpolated smoothly.
3. However, the surface may not be smooth across the curve.

Figures 3 and 4 show the effect of hierarchical constraint.

Input Mesh Resulted Mesh Smooth Shading
No Constraint


Empty-neighborhood Constraint

The red lines shows the constraint curve. The curve will be static during the fairing.



Hierarchical Constraint

The green lines shows the constraint curve. Note that the vertices along the curve will be interpolated as well but not interpolated with the vertices which are not on the curve.



Figure 3 Hierarchical constraints


Base Mesh Resulted Mesh Smooth Shading Texture Mapped
Two constrained vertex sets are set on the rim of cup's top, one in green and one in blue.



Five constrained vertex sets are set along the body of the cup.



Figure 4 Applying hierarchical constraint on the cup model



Smooth Interpolation Constraints and Deformations

We can also set some constraints to specify the desired final positions of some vertices. Tha algorithm will first produce the mesh as usual and then deform those constrained vertices to their specified positions smoothly. Figure 5 shows the resulted meshes with different constraints. The constraint vertices are dyed red and their desired positions are their original positions in the base mesh. That is, we want to have the constraint vertices static during fairing. Note that we use shrinkage operations here to exaggerate the effect.

Input base mesh with constraints dyed red



Resulted mesh after two levels of subdivisions and some smoothing operations (with shrinkage for better effect)



Smooth shading of the resulted mesh



Texture-mapping results



Figure 5 Effects of smooth deformation constraints



Reference Papers: