Fast Mesh Interpolation and Mesh Expansion with Applications
Abstract A fast iterative method for constructing a
smooth subdivision surface that interpolates the vertices
of an arbitrary mesh is presented. The construction
is done by iteratively adjusting vertices of the
given mesh locally until control mesh of the required
interpolating surface is reached. The new interpolation
method has not only the simplicity of a local
method, but also the capability of a global method in
faithfully resembling the shape of a given mesh. The
new method does not require solving a linear system,
hence it can handle meshes with large number of vertices.
Furthermore, the new method is fast and does
not require a fairing step in the construction process
because the iterative process converges to a unique solution
at an exponential rate. Another important result
of this work is, with the new iterative process, each
mesh (surface) can be expanded as an infinite series of
meshes (surfaces) which carry high and low frequency
information of the given model. This mesh expansion
scheme provides us with new approaches to some classic
applications in computer graphics such as texture
mapping, de-noising/smoothing/sharpening, and morphing.
These new approaches are demonstrated in this
paper and test results are included.
1 Introduction
Constructing a smooth surface from a set of sampled or
scanned data points is an important problem in many
areas such as computer graphics, reverse engineering,
geometric modeling, computer vision and animation.
Interpolation is the most widely used technique in this
smooth surface construction process. However, powerful
interpolation techniques that have the advantages
of both a global method and a local method and, consequently,
can handle meshes of any size and any topology
while capable of faithfully reproducing the shape
of any given mesh are not available yet. In this paper,
we try to fill the gap with an iterative interpolation
method. The new method has the advantages mentioned
above. Besides, it is very fast and very easy
to implement. Subdivision surfaces are the representation
scheme used in this interpolation technique.
Paper ID: 0350
Category: Research Paper
Paper ID: 0350 Page: 1
Subdivision surfaces [1, 11, 14] have become popular
recently because of their capability in modeling/representing
any complex shape with only one surface
[2]. Subdivision surfaces cover both parametric
forms [12, 13] and discrete forms. Parametric forms
are good for design and representation and discrete
forms are good for machining and tessellation (including
FE mesh generation). Therefore we have a representation
scheme that is good for almost all applications.
Powerful interpolation techniques using subdivision
surfaces as a representation scheme certainly
are needed for subdivision surface based applications.
Traditional interpolation techniques [3, 4, 5, 6, 8,
9, 10, 15] are mainly aimed at one purpose: shape
reconstruction. The iterative interpolation technique
proposed in this paper also provides us with a means
to look at several classic applications from a different
angle and, consequently, allows us to solve these applications
with different approaches. This is because
with the new technique each mesh (surface) can be
expanded as an infinite series of meshes (surfaces).
By manipulating this expansion we can control lowfrequency
and high-frequency information of the given
mesh (surface) and, consequently, the overall shape or
local details of the mesh (surface).
Overall, the main contributions of this paper can
be summarized as follows:
• presenting an iterative interpolation technique
that can deal with meshes of any size and topology;
the iterative process converges at an exponential
rate; the interpolation process does not
require a fairing step nor linear system solving.
• showing that each mesh (or surface) can be expanded
as an infinite series of meshes (surfaces)
which provides alternative approaches to several
classic applications in computer graphics.
The remaining part of the paper is arranged as follows.
A brief review of previous techniques in subdivision
surface based interpolation is given in Section
2. The basic idea and mathematical derivation of the
iterative interpolation and an expansion technique for
meshes (surfaces) are presented in Section 3. The fast
iterative interpolation technique is discussed in Section
4. Alternative approaches provided by the expansion
of a mesh (surface) to applications in texture mapping,
denoising, and morphing are presented in the
subsequent three sections. Test results and concluding
remarks are presented in the last two sections.
2 Previous Work
There are two major methods for interpolating a
given mesh with a subdivision surface: local method
[3, 5, 6, 9, 10, 15] or global method [4, 8]. In a local
method, new vertices are defined as affine combinations
of nearby vertices. Interpolating subdivision is
the most well-known local interpolation method. In
this case, a subdivision scheme such as the Butterfly
scheme[3], Zorin et al’s improved version [15] or
Kobbelt’s scheme [6], is used to generate the interpolating
surface. This approach is simple and easy to
implement. It can handle meshes with large number of
vertices. However, since no vertex is ever moved once
it is computed, any distortion in the early stage of the
subdivision will persist. This makes interpolating subdivision
very sensitive to the irregularity in the given
mesh. When the mesh vertices are dense enough, the
undesired artifacts would not be so clear to see. But
when the mesh vertices are not so dense, the effect
of undesired artifacts becomes obvious on the resulting
interpolating surfaces (see Figure 1 for an example
where the Butterfly scheme [3], the improved Butterfly
scheme [15] and the technique proposed in this paper
are compared on a given mesh with five vertices).
The global method, usually needs to build a global
linear system with some constraints [4]. The solution
to the global linear system is a control mesh whose
limit surface interpolates the vertices of the given
mesh. This approach usually requires some fairness
constraints [4] in the interpolation process to avoid
undesired undulations. Although this approach seems
more complicated, it results in a traditional subdivision
surface which resembles the shape of the given
mesh more faithfully. The problem with this approach
is that it is difficult to handle meshes with large number
of vertices.
There are also techniques that produce subdivision
surfaces to interpolate given curves or surfaces that
near- (or quasi-)interpolate given meshes [7]. But
those techniques are either of different natures or of
different concerns, hence will not be discussed here.
As far as we know there does not have a subdivision
surface based interpolation technique that has
both the advantages of a local method and a global
method. Hence we do not have a subdivision surface
Paper ID: 0350 Page: 2
(a) Given Mesh (b) Butterfly (c) New Butterfly (d) Our Method
Figure 1: Comparing our method (d) with Butterfly
(b) and modified Butterfly (c) interpolation method.
based interpolation approach that can handle meshes
of any size and any topology while capable of faithfully
reproducing the shape of any given mesh. Besides,
none of the previous techniques were designed
for other applications but mesh interpolation.
3 Mathematical Setup
Given a mesh M and a subdivision scheme, our task is
to find a smooth subdivision surface to interpolate M.
We use the following notations in the paper: A refers
to the matrix that calculates all the limit points of M
with respect to the given subdivision scheme; S(M)
refers to the limit surface of M; I(M) refers to the
subdivision surface that interpolates M and satisfies
the property that limit points of its control mesh equal
M, i.e., if P is the control mesh of I(M) then we must
have M = A ∗ P . We also assume the subdivision
scheme considered here is the Catmull-Clark scheme.
Hence, I(M) and S(M) are Catmull-Clark subdivision
surfaces. However, the techniques presented here work
for other subdivision schemes as well.
Let M = M0 be the given mesh. Then the task is
to find I(M0). If we can find a smooth offset surface
L that moves S(M0) to I(M0) everywhere, i.e.,
L + S(M0) = I(M0) (1)
then the interpolation problem is solved. The question
is: how should L be constructed?
Note that the above definitions and the fact that
A is invertible (see Appendix B) imply that S(M0) =
I(A ∗ M0), and I(·) is a linear operator. Hence L can
be regarded as an interpolating surface I(M1) where
M1 = M0 − A ∗ M0,
is the difference between M0 and its limit points A ∗
M0. M1 has the same topology as M0. Hence I(M1)
and I(M0) can be constructed exactly the same way.
By iteratively repeating the above process we get a
sequence of meshes Mi such that
⎧
⎨ Mi+1 = Mi − A ∗ Mi
(0 ≤ i ≤ ∞) (2)
⎩
I(Mi+1) + S(Mi) = I(Mi)
From the above equation we have
I(M) =
n�
S(Mi) + I(Mn+1). (3)
i=0
Also we can easily get Mi as follows
Mi = (E − A) i M, (4)
where E is an identity matrix. It can be proven (see
Appendix C) that limi→∞ Mi = 0. As a result, I(Mi)
approaches 0 when i tends to ∞. In addition, because
subdivision is a linear process, we have � S(Mi) =
S( � Mi). Therefore, if we let P be the control mesh
of the interpolating surface I(M), i.e., I(M) = S(P ),
then
∞�
P = (E − A) i M. (5)
i=0
On the other hand, because A is invertible (see Ap-
pendix B), it is easy to see that A −1 = � ∞
i=0 (E − A)i .
Hence P is indeed the only mesh (having the same
topology as M) whose limit surface interpolates the
given M. Consequently a fairing process is not needed
in the construction of the interpolation surface because
there exists only one such surface that interpolates the
given mesh. Traditionally, people tried to directly find
A −1 M by solving a linear system [4, 8]. It is difficult
to deal with meshes with large number of vertices
that way. With the new technique, P can be constructed
not by solving a linear system, but by iteratively
applying eq. (7) until some given error tolerance
is reached (see Section 4). Hence there is no problem
to deal with meshes with large number of vertices.
More importantly, just like Fourier transform, any
mesh (or surface) now can be expanded as an infinite
series of meshes (or subdivision surfaces). For example,
a given subdivision surface S(M) can be represented
as an infinite series of subdivision surfaces as
S(M) = I(A ∗ M) =
∞�
S((E − A) i ∗ A ∗ M)
i=0
and for a given mesh M, we have
M =
∞�
(E − A) i ∗ A ∗ M. (6)
i=0
Paper ID: 0350 Page: 3
In the above infinite series, each term (E − A) iAM contains part of the information on M. Terms with
smaller indices contain more information on the overall
shape of M while terms with bigger indices contain
more subtle details on the shape of M. They can be
regarded as low and high frequency information on
mesh M. Hence the above two equations transform a
space domain model into a frequency domain representation.
Because each term itself is a mesh (or surface),
it can be furthermore expanded using the above two
equations to obtain more subtle details of the original
model. Like Fourier transformation, this representation
can be used for applications in other areas
of graphics and modeling, such as fairing, smoothing,
sharpening, lowpass or high pass filtering etc. For example,
for any n < ∞, �n i=0 (E − A)iAM gives us a
smoother model than M, and the smaller of n, the
smoother
�
of the resulting model. On the other hand,
n
i=0 (E − A)iM sharpens model M, and the bigger of
n, the sharper of the resulting model. In the following
sections, several direct and straightforward applications
of the above representation will be discussed.
4 Fast Iterative Interpolation
Eq. (5) should not be used to construct the interpolating
surface directly, because it requires costly matrix
multiplications. Actually there is no need to compute
the matrix A in the construction of the interpolating
surface. Note that if we define Pn = �n i=0 (E − A)iM, 0 ≤ n ≤ ∞, then through simple algebra we have
Pn+1 = Pn + M − A ∗ Pn. (7)
One can use eq. (7) to find the control mesh P = P∞
of the interpolating surface iteratively; A ∗ Pn can be
calculated locally according to the selected subdivision
scheme (see Appendix A). Hence matrix A is not
needed in the iterative process. In addition, as we
mentioned above, P is the only mesh that has the same
topology as M and whose limit surface interpolates
M. Therefore there is no need for a fairing process either.
Traditional interpolation techniques [4, 8] need
a fairing process because extra vertices are added in
the interpolation process. These extra vertices, with
possibly improperly assigned positions, lead to undulations
in the interpolating surface because they need
to be interpolated as well.
Obviously, the computation from Pn to Pn+1 using
eq. (7) is a local affine combination process. Hence it
is a local method. However, Pn converges to A −1 M,
which means every vertex in M contributes, more or
less, to all vertices in P∞. Hence it is a global method
(a) Given Mesh (b) Interpolation Surface (c) Given Mesh (d) Interpolation Surface
as well. Consequently, our method has not only the
simplicity of local methods, but also the capability of
global methods in faithfully resembling the shape of a
given mesh.
As is proven in the Appendix C, eq. (7) converges at
an exponential rate. Hence good interpolation results
can be obtained in just a few iterations. Nevertheless,
error can be explicitly calculated as ||M − A ∗ Pn|| and
the iteration stop criterion can be determined based on
some given error tolerance. Because it converges very
fast, the new interpolation technique is even suitable
for interactive shape design. Figure 2 shows some test
results. We can see from these examples that smooth
and visually pleasant interpolation shapes can be obtained
for complicated meshes with dense or not-sodense
vertices. All the test cases are done in less than
one second.
5 Procedural Texture Mapping
3D Procedural texture mapping, instead of looking up
an image for mapping, generates texture for a model
by assigning different colors to vertices of the model.
The color of each vertex is determined only by the vertex’s
location in 3D space. Procedural texture mapping
usually uses the Perlin noise [21] function to make
rendered models interesting by adding irregularity to
a procedural texture. A key component [21] in the
construction of Perlin noise is the interpolation function
which makes it possible to smoothly add discrete
noises of different amplitudes and frequencies together.
Traditionally, in 3D case, Perlin noise is constructed
at each integer lattice point in a 3D array, such as
the case of solid texturing [23] or hypertexture [22].
As far as we know procedural texture mapping has
never been applied to smooth subdivision surfaces by
Figure 2: Examples of mesh interpolation.
Paper ID: 0350 Page: 4
directly assigning colors to points of the surfaces to
generate natural-looking models. We believe the main
reason of this is because a powerful technique that can
smoothly interpolate all the noises of an irregular mesh
is not available yet. With the fast iterative interpolation
technique presented in the above section, this is
no longer the case. We can now do procedural texture
mapping on a given 3D model by mapping the model’s
3D locations directly into colors. Hence a 3D array for
storing noises is not needed any more.
For any given 3D mesh G0, perform n times of subdivision
to get n + 1 meshes Gi, (0 ≤ i ≤ n). For
each Gi, a Perlin noise value 1
2 i f(2 i x, 2 i y, 2 i z) is generated
for each vertex with position (x, y, z), where f
is a random noise function. Note that Gi+1 has many
more vertices than Gi, hence the distribution of noises
on Gi+1 is denser than Gi. All the noises of mesh Gi
form a mesh Ni. Ni has the same topology as Gi, and
the x component of each Ni’s vertex is set to the noise
value at the corresponding vertex of Gi. Ni’s y and
z components are not needed, hence these values do
not have to be defined. By applying our fast iterative
interpolation technique to Ni, we get I(Ni). Because
all I(Ni) are smooth subdivision surfaces, they can be
added together (through subdivision or parametriza-
tion [12]) to form a new surface. Let N = � n
i=0 I(Ni).
After normalization, Nx, which is the x component of
N, contains noises for the subdivision surface S(G0)
everywhere. For a given list of colors, three B-splines
B(t) = (Br(t), Bg(t), Bb(t)) are constructed to interpolate
all the colors of the given list. Now one can
render S(G0) by assigning colors (procedural texture)
to all points of the surface. The color of each point
P of S(G0) is obtained by finding the spline values
B(tp), where tp is the noise value Nx at point P. Also
one can render mesh Gi directly with generated colors
being only assigned to vertices of Gi.
(a) (b) (c) (d)
Different from methods that only generate Perlin
noises at given vertices, our new method can generate
more noises of different amplitudes and different frequencies
for irregular models at more positions, and
can blend them smoothly by interpolation. As a result,
it creates procedural texture with better visual
effect. More importantly, a huge array is not needed
in the procedural texture mapping process. Figure 3
shows several examples of procedural texture mapping
generated using our method. All of them are generated
with only basic Perlin noise functions.
6 De-noising
With the proliferation of 3D scanning devices, fairing,
smoothing and denoising of noisy meshes have
become more and more important. Several important
works have been done in this area [19, 17, 16, 18].
In this section, we present a new denoising technique
which is a straightforward application of our interpolation
formula. Our purpose here is simply to show the
versatility of our interpolation method, hence we did
not compare our results with other denoising methods.
Nevertheless, our method is easy to understand, easy
to implement, and can achieve relatively good denoising
results.
Consider a finite portion of the series defined in eq.
(6). Define T0 = M and Tk recursively as follows:
Tk+1 =
Figure 3: Examples of procedural texture mapping.
m�
(E − A) i ∗ A ∗ Tk, k ≥ 0 (8)
i=0
When m < ∞, Tk+1 is a smoother version of Tk because
some high frequency information is not included.
Through simple computation, we have Tk+1 = D ∗ A ∗
Tk (hence Tk = D k ∗A∗T0), where D = E−(E−A) m+1 .
When m = 0 in eq. (8), Tk = A k ∗ A ∗ T0. Because
all the eigenvalues of A are between 0 and 1
(see Appendix B), A k ∗ A ∗ M converges to a point
when k tends to infinity. Hence using matrix A k for
smoothing would make the mesh shrink. Mesh shrinking
leads to model details losing, hence A k should not
be used for de-noising directly. However, by compensating
A k with some details in each step, it would
shrink much slower, consequently keep more details,
and meanwhile smooth out undesired noises. For example,
when m = 1, Tk = (A k + (A k − A 2k )) ∗ AT0
which compensates A k by a small mount of details
A k − A 2k .
For any m, the biggest eigenvalue of D is always 1
with corresponding eigenvector [1, 1, 1, ..., 1] T and all
other eigenvalues are between 0 and 1. Hence D k can
be used to smooth meshes. Note that even though
eventually D k AM shrinks to a single point when k
approaches infinity, it shrinks at a speed much slower
than A k AM. This is because if the second biggest
eigenvalue of A is λ, then the second biggest eigenvalue
of D is 1 − (1 − λ) m+1 , which is much bigger that λ
and becomes even bigger when m gets bigger. Because
Tk shrinks slower, it maintains more details in the denoising
process while smoothing out undesired noises.
m can be used as a parameter to control how much
details should be kept in the de-noising process. The
smaller of m, the smoother the resulting model and
the less details are kept. When m gets bigger, more
details, and possibly more noises are kept. In our test
cases, setting m to 2 or 3 is good enough for fast
and good de-noising (smoothing) while maintaining
enough details of the input model.
Similar to interpolation, which sharpens a mesh
with dramatic changes, eq. (8) can be modified to
sharpen a mesh T0 gently as follows.
Tk+1 = Tk +
Paper ID: 0350 Page: 5
n�
(E − A) i i ∗ Tk, k ≥ 0
i=m
where T0 = M and n ≥ m > 0. From the above
(a) Noise added (b) 1 iteration (c) 2 iterations (d) 3 iterations (e) 4 iterations (f) Original model
equation, we can see that Tk+1 is a sharper version of
Tk because it adds extra high frequent information of
Tk to Tk.
Figure 4 demonstrates the capability of eq. (8) in
mesh smoothing. From Figure 4 we can see that with
only 3 or 4 times of iteration, pretty good denoising
results can already be obtained, even for complicated
models. Comparing the original model shown in Figure
4(f) with the figure shown in Figure 4(e), we can
see that many subtle details are kept meanwhile noises
are smoothed out.
7 Morphing
For two given meshes M and Q, the task here is to
find a smooth transition from Q to M. We assume
M and Q have the same topology. If this is not the
case, simply resample them using one of the resampling
techniques such as [20].
According to eq. (6), we have
Q = M +
∞�
(E − A) i A(Q − M).
i=0
(Q − M) can be regarded as the difference of the two
models, hence our goal is to transform this difference
smoothly so that it approaches zero eventually. By
taking different finite terms in the above summation,
we get a transition from M to Q. However, this approach
would not give us a smooth morphing from M
to Q because, as we mentioned above, (E−A) i shrinks
at an exponential rate.
Figure 4: Examples of mesh denoising.
Paper ID: 0350 Page: 6
Let Q0 = Q and for a given m > 0, define Qk
recursively as follows:
Qk+1 = M + ρ
m�
(E − A) i A(Qk − M), (9)
i=0
where 0 < ρ ≤ 1 is used to control the morphing speed.
The smaller of ρ, the faster the morphing from Q to
M. When m < ∞, (Qk+1 − M) is a smoother version
of (Qk − M). Similar to the discussision in the above
section, we know (Qk − M) approaches zero when k
tends to infinity. As a result, eq. (9) provides us with a
sequence of meshes Qk, k ≥ 0, transforming Q to M.
For a properly selected m and ρ in the above equation
for each k, the sequence of meshes Qk provides a
smooth morphing from Q to M.
In the morphing process, Qk+1 gets its information
from both M and Qk. The bigger of k, the more information
from M. Therefore, eq. (9) can be regarded
as a linear operation on meshes M and Qk.
Traditionally, given two meshes M and Q with the
same topology, morphing is done simply by performing
a linear operation on M and Q: u∗Q+(1−u)∗M. This
single-vertex-based linear combination method sometimes
does not produce meaningful and desired morphing
results if features of the meshes are not aligned
properly. For example, if M and Q are symmetric
about the x-axis, then the morphing process will produce
a flat shape when u = 0.5 that certainly is not
desired. Eq. (9) provides an alternative approach for
morphing, which can be regarded as a multiple-vertexbased
linear combination process. The bigger of k, the
more vertices of Q0 are involved in determining vertex
positions of Qk. Therefore, the morphing process
(a) Given model (b) Morphing (early) (c) Morphing (middle) (d) Morphing (late) (e) Morphing (end)
is not so heavily affected by features of the meshes.
Consequently, eq. (9) produces better morphing results
than simple linear morphing methods, especially
when mesh features are not very well aligned.
Again, eq. (9) should not be used to do the morphing
directly because of costly matrix multiplications.
A formula similar to eq. (7) should be derived for
local and iterative computation of the morphing. Figure
5 shows a morphing example of a bunny to a 3D
sphere using the technique presented above. As can be
seen from this example, the morphing process is very
smooth, un-natural looking artifacts usually found in
a simple-vertex-based morphing process are nowhere
around.
8 Summary and Future Work
An iterative mesh interpolation method and an accompanying
mesh expansion technique with its applications
in several classic areas of computer graphics are
presented. The iterative mesh interpolation method
generates a subdivision surface to interpolate a given
mesh by iteratively modifying vertices of the given
mesh locally until control mesh of the required interpolating
surface is reached. The new interpolation
method not only has the simplicity of a local method,
but also has the capability of a global method in faithfully
resembling the shape of a given mesh. Besides,
the new method is fast and does not require a fairing
step in the construction process of the interpolating
surface. Hence, an iterative method seems to be the
ultimate solution for mesh interpolation because it has
all the advantages one would like to see for a mesh interpolation
process.
The mesh expansion technique expands a given
mesh (surface) into an infinite series of meshes (surfaces)
which can be regarded as high or low frequency
information of the given mesh. Hence we can use items
Figure 5: Examples of mesh morphing.
of the expansion to control high-frequency and lowfrequency
information of the mesh (surface) and, consequently,
overall shape or local details of the mesh
(surface). Manipulating or balancing such pieces of
information is a core work in many classic areas of
computer graphics. Hence, a mesh expansion provides
a new solution or an alternative solution to some of the
classic areas of computer graphics. As far as we know
this is the first ever attempt to use a mesh expansion
to solve problems in texture mapping, denoising and
morphing.
One of our future research subjects is to investigate
other possible applications of the mesh expansion. Areas
that will be considered include mesh compression,
feature identification and mesh simplification etc. Another
subject of our future research is to compare the
performance of the approaches provided by a mesh expansion
with other methods in the literature to study
their effectiveness and possible improvements. In addition,
the matrix A in eq. (6), instead of being a
subdivision matrix, could be set to other matrices, as
long as their eigen values are in (0, 1]. Hence it is possible
to design an A and use eq. (6) to solve problems
in computer graphics with specified requirements.
Appendix
Paper ID: 0350 Page: 7
A Construction of Matrix A
The matrix A is not needed in the implementation.
We show it here only for proof purpose. The matrix
shown here is for the generalized Catmull-Clark subdivision
scheme. The matrix for other schemes can be
constructed similarly.
For generalized Catmull-Clark subdivision scheme,
new face points and edge points are calculated the
same way as the standard Catmull-Clark subdivision
scheme, but the new vertex points are calculated dif-
Figure 6: Vertex V and its neighboring vertices.
ferently, using the following formula
V ′ =
n − 2
1
V +
n n2 n�
(αV + (1 − α)Ej) + 1
n2 j=1
n�
j=1
where 0 ≤ α ≤ 1 and fj are new face points after
one subdivision. When α = 0, we get the standard
Catmull-Clark subdivision scheme. The limit point
[4] of a vertex Vi of degree ni can be calculated as:
V ∞ i =
where
1
ni(ni + 5) (biiVi + �
bijEj + �
bii = (ni − 1)ni + niα + � 4
dij
bij = (2 − α + 4
dij
j
j
bijFj)
+ 4
dji ), if (Vi, Vj) is an edge
bij = 4/dij, if (Vi, Vj) is a diagonal line of a face
bij = 0, if Vi and Vj do not belong to the same face
Note that in the above formula the surrounding faces
could be not-four-sided (see figure 6). dij is the number
of sides of the face of which (Vi, Vj) is an edge or a
diagonal line. Note that dij and dji could have different
values because faces adjacent to the edge (Vi, Vj)
could have different number of sides. But if (Vi, Vj)
is a diagonal line of a face, then dij = dji. According
to the above definition, we have
Aij =
1
ni(ni + 5) bij.
B A’s eigen values λi ∈ (0, 1]
It is easy to verify that each entry of A is non-negative
and the sum of each row equals one. Hence all eigen
values λi of A are all ≤ 1. Therefore, to prove λi ∈
(0, 1], we only need to show that all A’s eigen values are
positive. A common coefficient 1/ni/(ni + 5) can be
factored out for each row of A. If we define matrix B as
Bij = bij, then it is easy to verify that B is symmetric,
and A = diag(1/ni/(ni + 5)) ∗ B. Hence we just need
fj
to prove all the eigen values of B are positive, which
is equivalent to prove that B is positive definite.
We need to show X T BX > 0 for any non-zero vector
X. X T BX can be expanded as follows.
X T BX = �
2bijxixj + �
2bijxixj + �
= �
all E
+ �
i
≥ �
all E
all E
(bij− 4
dij
(bii− �
Paper ID: 0350 Page: 8
all D
− 4
)(xi+xj)
dji
2 + �
all F
4
dij
(bij−
(Vi,Vj) ∈E
4
−
dij
4
)−
dji
�
(Vi,Vj)∈E
(2 − α)(xi + xj) 2 + �
i
i
biix 2 i
(xi+xj+· · ·+xp) 2
4
)x
dij
2 i
(n 2 i − 3 ∗ ni + 2niα)x 2 i
where E denotes all edges, D denotes all diagonal lines
of all faces and F denotes all faces of the given mesh.
Let σi = n2 i − 3 ∗ ni + 2niα. Because when ni ≥ 3,
σi ≥ 0 and 2 − α > 0, to prove XT BX > 0, we just
need to show σi > 0. Obviously, when ni ≥ 4, we
have σi > 0. Hence B is positive definite. Also we can
claim that B is positive definite if there exists at least
one vertex Vk in the given mesh such that nk ≥ 4.
This can be proven by contradiction. Suppose this is
not the case, then there exists an X �= 0 such that
XT BX = 0. It is easy to see that xk = 0 for otherwise
we would have XT BX ≥ σkx2 k > 0. In addition, all
xj where (Vk, Vj) is an edge must be 0 as well be-
cause otherwise we have XT BX ≥ (2 − α)(xk + xj) 2 =
(2 − α)x2 j > 0. Similarly, all vertices directly or in-
directly connected to Vk are all equal to 0. Because
M is a connected mesh, all xi are 0, which contradicts
the assumption X �= 0. Hence if there exists at least
one vertex whose valance is bigger than 3, then B is
positive definite as well.
When all ni are 3 in a mesh and α = 0, B might not
be positive definite. However, we can change the value
of α to convert the standard Catmull-Clark subdivision
scheme into a general Catmull-Clark subdivision
scheme, such that B is positive definite. It is easy to
verify that when α > 0 and ni ≥ 3, we have σi > 0.
Therefore let α ∈ (0, 1], say α = 0.5, then B becomes
positive definite.
Because B is positive definite, all the eigenvalues of
A are positive. Therefore A is invertible and all its
eigenvalues are in (0, 1].
C Proof of Convergence
Because all eigenvalues of A are ∈ (0, 1], all the eigenvalues
of (E−A) are ∈ [0, 1). Hence (E−A) i converges
to 0 when i tends to infinity. As a result, �n i=0 (E−A)i
converges to A −1 when n tends to infinity.
It can also be proven that eq. (7) or eq. (5) converges
at an exponential rate. To prove this it is sufficient
to show that ||P∞ − Pn|| converges to 0 at an
exponential rate.
||P∞ − Pn||
= || � ∞
i=n+1 (E − A)i M||
= ||(E − A) n+1 ∗ A −1 ∗ M||
= ||XΛ n+1 X −1 ∗ A −1 ∗ M||
≤ ||Λ n+1 || ∗ ||X|| ∗ ||X −1 || ∗ ||A −1 || ∗ ||M||
= ||Λ n+1 || ∗ c
where c is a constant and Λ is the diagonalized matrix
of (E − A). Suppose the biggest eigenvalue of matrix
(E − A) is λ, then ||Λ n+1 || ≤ λ n+1 . As we know,
0 ≤ λ < 1. Hence we have
||P∞ − Pn|| ≤ c ∗ λ n+1 ,
which means Pn converges to P∞ at an exponential
rate.
References
[1] Catmull E, Clark J, Recursively generated Bspline
surfaces on arbitrary topological meshes,
Computer-Aided Design, 1978, 10(6):350-355.
[2] DeRose T, Kass M, Truong T, Subdivision Surfaces
in Character Animation, Proceedings of
SIGGRAPH, 1998: 85-94.
[3] Dyn N, Levin D, and Gregory J A, A butterfly
subdivision scheme for surface interpolation with
tension control, ACM Transactions on Graphics,
1990, 9(2):160-169.
[4] Halstead M, Kass M, DeRose T, Efficient, fair
interpolation using Catmull-Clark surfaces, ACM
SIGGRAPH, 1993:35-44.
[5] Levin A, Interpolating nets of curves by smooth
subdivision surfaces, ACM SIGGRAPH, 1999,
57-64.
[6] Kobbelt L, Interpolatory subdivision on open
quadrilateral nets with arbitrary topology, Computer
Graphics Forum, Eurographics, V.15, 1996.
[7] Litke N, Levin A, Schröder P, Fitting subdivision
surfaces, Proceedings of the conference on Visualization
2001:319-324.
[8] Nasri A H, Surface interpolation on irregular networks
with normal conditions, Computer Aided
Geometric Design, 1991, 8:89-96.
Paper ID: 0350 Page: 9
[9] Schaefer S, Warren J, A Factored Interpolatory
Subdivision Scheme for Quadrilateral Surfaces,
Curves and Surface Fitting, 2002, 373-382.
[10] Peters J, C1-surface splines. SIAM Journal on
Numerical Analysis 1995, 32(2):645-666.
[11] Sederberg T W, Zheng J, Sewell D, Sabin M, Nonuniform
recursive subdivision surfaces, Proceedings
of SIGGRAPH, 1998:19-24.
[12] Stam J, Exact Evaluation of Catmull-Clark Subdivision
Surfaces at Arbitrary Parameter Values,
Proceedings of SIGGRAPH 1998:395-404.
[13] Reif, U. A unified approach to subdivision algorithms
near extraordinary points. Computer
Aided Geometric Design 12, 2, 153C174, 1995.
[14] Adi Levin, Modified Subdivision Surfaces with
Continuous Curvature, Proceedings of SIG-
GRAPH, 1035-1040, 2006.
[15] D. Zorin, P. Schröder, W. Sweldens, Interpolating
Subdivision for meshes with arbitrary topology,
ACM SIGGRAPH, 1996:189-192.
[16] Shachar Fleishman, Iddo Drori Tel and Daniel
Cohen-Or, Bilateral mesh denoising, SIGGRAPH
2003, p.950-953.
[17] Mathieu Desbrun , Mark Meyer , Peter Schröder
, Alan Barr, Implicit fairing of irregular meshes
using diffusion and curvature flow, SIGGRAPH
1999, p.317-324.
[18] T. Jones , F. Durand , M. Desbrun, Non-iterative,
feature-preserving mesh smoothing, ACM Transactions
on Graphics (TOG), v.22 n.3, 2003.
[19] Leif Kobbelt, Discrete Fairing, In Proc. of the 7th
IMA Conf. on the Mathematics of Surfaces, 1997.
[20] E. Praun, H. Hoppe. Spherical parametrization
and remeshing, SIGGRAPH 2003, P.340-349.
[21] Ken Perlin, Improving Noise, SIGGRAPH 2002.
[22] Ken Perlin, Hypertexture, SIGGRAPH 1989.
[23] Darwyn Peachey, Solid texturing of complex surfaces,
SIGGRAPH 1985, p.279-286.
