Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[2.1] 3D Imaging, Analysis and Applications-Springer-Verlag London (2012).pdf
Скачиваний:
12
Добавлен:
11.12.2021
Размер:
12.61 Mб
Скачать

162

W.A.P. Smith

4.4 Subdivision Surfaces

Subdivision surfaces are based on an iterative refinement of a base mesh according to a refinement scheme. Each iteration of the subdivision results in a mesh which is smoother than the previous. Refinement schemes are divided into two classes: approximating and interpolating. Interpolating schemes retain the positions of the original base mesh as part of the subdivided surfaces. In contrast, approximating schemes are free to adjust the positions of these vertices. Approximating schemes generally lead to smoother surfaces but allow less precise control for designers who wish to specify the exact position of control vertices.

Subdivision surfaces exhibit a number of desirable features. The base mesh provides an easily editable representation. Often a coarse base mesh is built by combining basic shapes to obtain a desired topology. Alternatively, an object may be scanned or created using NURBS surfaces. A designer may adjust vertex positions at any level of subdivision, using a visualization of the limit surface to guide vertex placement. This allows gross or fine-scale refinements to be made to the surface, which are then reflected at lower levels of subdivision. Another important feature, for both aesthetic and engineering reasons, is the guarantees that subdivision surfaces can provide about surface continuity. Finally, they can be efficiently displayed, even allowing interactive editing.

In the context of 3D imaging, subdivision surfaces provide an ideal representation for storing and interacting with 3D data, due to their space efficiency and ease of editing. However, a prerequisite step is to fit a subdivision surface to 3D data. This is a difficult problem on which much research has focussed. Popular approaches include that of Litke et al. [38], which is based on quasi-interpolation and that of Takeuchi et al. [67], which uses surface simplification to construct a control mesh. Subdivision surfaces can also be used to upsample low resolution sensed data by using measured vertices as control points and a subdivision scheme to interpolate a smooth surface.

One of the key developments in subdivision surfaces was to show that the limit surface could be efficiently evaluated directly without having to apply the iterative subdivision process. Stam [64] showed that a subdivision surface and all its derivatives can be evaluated in terms of a set of eigenbasis functions, which depend only on the subdivision scheme.

We describe the two most popular approximating schemes due to Doo and Sabin [13] and Catmull and Clark [12], which can operate on quadrilateral meshes. We also describe the approximating scheme proposed by Loop [39], which operates on triangular meshes. Popular interpolating schemes include butterfly scheme, refined by Zorin et al. [80], and the method of Kobbelt [31].

4.4.1 Doo-Sabin Scheme

Commencing with a mesh of N vertices, M N = (KN , S), an iteration of the DooSabin subdivision scheme proceeds as follows:

4 Representing, Storing and Visualizing 3D Data

163

Fig. 4.12 Creation of (a) F-face, (b) E-face and (c) V-face in the Doo-Sabin subdivision scheme

1.Every vertex vi , where {i} KN , yields a new vertex, vi,f , for every face f = {i, j, k, . . . } KN that has vi as a vertex. This is known as the image of vi in f .

2.The position of vi,f can be computed using a number of different rules. A simple scheme sets vi,f to the midpoint of the centroid of f and the vertex position vi , i.e.

v

i,f

=

 

cf + vi

,

(4.9)

 

 

 

 

 

2

 

 

where

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

cf =

 

f

j f vj .

(4.10)

3.Image vertices are connected to form three kinds of new face, the first of which is an F-face. An F-face is a smaller version of an original face, f =

{i, j, k, . . . } KN , formed by connecting the image vertices of the vertices of f , i.e. vi,f , vj,f , vk,f , . . . . If f is an n-sided face then so is the resulting F-face. This process is shown in Fig. 4.12(a).

4.The second type of new face is an E-face. For every edge {i, j } KN shared by two vertices f1 and f2, a new rectangular face is formed from the four image

vertices created from the endpoints of the edge, i.e. vi,f1 , vi,f2 , vj,f1 and vj,f2 . This process is shown in Fig. 4.12(b).

5.The final type of new face is a V-face. For every vertex {i} KN , a new face is created by connecting the image vertices of vi in all faces to which vi is adjacent. If vi has degree n then the new V-face is n-sided. This process is shown in Fig. 4.12(c).

To summarize, the subdivided mesh will comprise a quadrilateral for each edge in the original mesh, an n-sided polygon for each n-sided polygon in the original mesh and an n-sided polygon for each degree-n vertex in the original mesh. An example of applying the Doo-Sabin scheme to a quadrilateral mesh is shown in Fig. 4.13. After one round of subdivision, all vertices have degree four. Hence subsequent divisions

164

W.A.P. Smith

Fig. 4.13 Two iterations of the Doo-Sabin subdivision scheme applied to a T-shaped quadrilateral base mesh. Extraordinary points are shown in blue (reprinted public domain figure)

will create quadrilateral V-faces. Non-quadrilateral faces after one subdivision become extraordinary points in the limit surface. The limit surface is C1 continuous, except at extraordinary points.

4.4.2 Catmull-Clark Scheme

Commencing with a mesh of N vertices, M N = (KN , S), an iteration of the Catmull-Clark subdivision scheme proceeds as follows:

1.For each face f = {i, j, . . . } KN , add a new vertex to the mesh (known as a face point) with a position given by the centroid of the vertices of the face:

vf =

1

vi .

(4.11)

f i f

2. For each edge e = {i, j } KN with adjacent faces f1 and f2, add a new vertex to the mesh (known as an edge point) with a position given by the average of the

edge end points and adjacent face points:

 

 

 

ve =

1

(vi + vj

+ vf1

+ vf2 ).

(4.12)

4

The original edge is replaced by two new edges connected to the edge point.

3.Add edges from every edge point ve to their adjacent face points, vf1 and vf2 .

4.For each original point vi , where {i} KN , compute a new position:

vnew

=

 

vˆ f + 2vˆ e + (F 3)vi

,

(4.13)

 

i

 

F

 

where vˆ f is the average of the F face points adjacent to the original point and vˆ e is the average of the edge points adjacent to the original point.

4 Representing, Storing and Visualizing 3D Data

165

Fig. 4.14 Two iterations of the Catmull-Clark subdivision scheme applied to a cube base mesh. Figure adapted from [74]

The subdivided mesh is composed of quadrilaterals (see Fig. 4.14). In general these will not be planar surfaces. The number of vertices with a degree other than four remains constant over iterations of the subdivision process. These are known as extraordinary points. The limit surface can be shown to be C2 continuous everywhere except at extraordinary vertices, where it is C1 continuous.

4.4.3 Loop Scheme

Unlike the previous two subdivision schemes, Loop’s method operates only on triangular meshes. Commencing with a triangular mesh of N vertices, M N = (KN , S), an iteration of Loop’s scheme proceeds as follows:

1.For every edge e = {i, j } KN a new vertex ve is created as a linear combination of the four vertices comprising the two faces, f1 = {i, j, k1} and f2 = {i, j, k2}, which are adjacent to the edge as shown in Fig. 4.15(a). They are combined using

the following weights:

 

1

 

 

1

 

 

3

3

 

 

ve =

 

vk1

+

 

vk2

+

8 vi +

 

vj .

(4.14)

8

8

8

2.The position of each original point is adjusted according to its existing position

and those of its adjacent vertices, as shown in Fig. 4.15(b). For each original point vi , where {i} KN , the new position is given by:

vinew = α

vj + (1 di α)vi ,

(4.15)

 

j Adj(i)

 

where Adj(i) = {j |{i, j } KN } is the set of vertices adjacent to vi . The constant α is determined by the degree di = Adj(i) and there are many variations