Reconstructing Sharp Features of Triangular Meshes Eli Packer
Joseph S.B. Mitchell
Dept. of Applied Mathematics and Statistics Stony Brook University Stony Brook, NY
Visualization Systems IBM T. J. Watson Research Center Yorktown, NY
[email protected]
[email protected]
ABSTRACT
2. ALGORITHM
This video presents a novel technique for reconstructing sharp features in surface models. The algorithm is designed to fit sharp features of low algebraic and combinatorial complexity in the gaps between smooth surface patches. Categories and Subject Descriptors: F.2.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical Algorithms and Problems—Geometrical problems and computations ; I.3.5 [Computer Graphics]: Computational Geometry and Object Modeling—Curve, surface, solid, and object representations General Terms: Algorithms Keywords: Surface Reconstruction, Sharp Features, Triangulations, Algebraic Curves
The video illustrates each step of the algorithm and shows the results obtained with several models that contain sharp features. The input is a triangular mesh M = (V, T ) with vertex set V and triangles T . The output is a reconstructed triangular mesh M with simplified sharp features. 1. Partition V . We partition V into corner vertices, edge vertices, and smooth vertices. Specifically, for a userspecified parameter γ, we classify edges of M as smooth (dihedral angle more than π − γ) or sharp (dihedral angle less than π − γ). (Alternatively, we can use any algorithm, e.g. [2], to identify the sharp edges of the mesh.) For each v ∈ V , let v d be the number of sharp edges incident to v. Then v is classified as a corner vertex (red) if v d ≥ 3, an edge vertex (green) if 1 ≤ v d ≤ 2 or as a smooth vertex (blue) otherwise. 2. Segment the smooth patches. We say that a triangle t ∈ T is smooth if and only if all edges of t are smooth; otherwise, we say that t is sharp. Removing all sharp triangles from T , the remaining triangles comprise m connected components of triangles, each of which corresponds to a smooth patch (shown in different colors in the video). We denote the smooth patches by T1 , . . . , Tm . Each vertex v of a smooth patch is associated with its patch index, iv . 3. Generating corridors. We traverse the boundary of each patch (shown as red edges). For each vertex v on the boundary, we locally find the closest smooth vertex v across sharp triangles. The closest vertex will either be in another patch (distinct from that of v) or in the same patch, in the vicinity of a dead-end sharp feature corner (a sharp edge feature that ends in a sharp corner of degree one). We set the corridor partner of v, v c = v , only if iv ≤ iv . Using this information, we identify the neighbor patches and their corresponding corridors as we explain next. In what follows, each vertex v on a boundary of a patch will be referred to as vi where i is its place along the boundary. Let [vk . . . vl ] be a maximal sequence of boundary vertices such that ∀k≤a,b≤l (ivac = ivbc ). We define a corridor c as follows: c = [vk , vkc , . . . , vl , vlc ]. We denote by cfi,j , with i < j, the f ’th corridor that contains vertices from patches i and j (note that a pair of patches may have multiple corridors). 4. Estimating feature points. For each corridor cfi,j , we determine a sequence of “feature points” (solid white dots in the video) that (approximately) lie along the sharp edge corresponding to the corridor. Let cfi,j (i) be the vertices of cfi,j that have patch index i, in order along cfi,j . We traverse cfi,j (i) and construct a sequence of estimated feature points
1.
INTRODUCTION
Modern scanning technology has given rise to easy acquisition of 3D scans of all kinds of objects. Scanned data is transformed into 3D geometric models using a variety of sophisticated surface reconstruction techniques. Existing methods are generally quite effective at reconstructing smooth surface models; many give provably correct reconstructions under appropriate sampling conditions. Most man-made objects are not smooth everywhere and are designed with sharp features (edges and corners). Such non-smooth models present special challenges both in the scanning and in the reconstruction phase of model acquisition. We present a method for reconstruction of sharp features using interpolation between smooth surface patches. Our method can be applied as a post-processing step in model acquisition. The objective is to extract the “simplest” and “most natural” sharp features that are consistent (within certain error tolerances) to the input data. More precisely, the goal is to have a small number of sharp features (edges, corners) whose feature edges have low algebraic degree. For example, in reconstructing a cube, our goal is that the sharp edges of the output mesh lie exactly along a line (curve of degree one) and that a single corner vertex be the point in common to the three incident sharp edges. Related work has addressed reconstruction of sharp features using moving least-squares fitting [1] and different techniques for smoothing sharp features locally [2, 3, 4].
Copyright is held by the author/owner(s). SCG’09, June 8–10, 2009, Aarhus, Denmark. ACM 978-1-60558-501-7/09/06.
102
00 11 11 00 00 11 00 11 00 11
000 111 111 000 000 111 000 111
(a)
(b)
(c)
00 11 11 00 00 11 00 11 00 11
000 111 111 000 000 111 000 111
(d)
Figure 1: Example showing several steps of our algorithm on a surface portion with five corridors and two corners. (a) Estimating feature points (step 4). Close pairs are connected by dashed segments and the estimated feature points are depicted by hollow circles. (b) Fitting algebraic curves (step 5). (c) Refitting curves (step 7). The center points (computed in step 6) are depicted by large hollow circles. (d) Retriangulating one side of a corridor (step 8). Note that the estimated feature points are projected onto the curves prior retriangulating. a plane P to p and project p onto P to obtain p . (If p is not planar, we split p and fit two planes and so on. Then we handle each polygon we obtain separately and merge the results.) Then we triangulate p where we minimize the area of the corresponding triangles in p. Finally, we lift p up to p. See Figure 1(d) for an illustration. We denote the collection of triangles we construct in this step by Tcorridors. 9. Complete the triangulation for corner points. Based on our reconstruction, it is possible that some triangles will still be missing near corner points. We retriangulate these areas. We denote the collection of the triangles we obtain in this step by Tcorners . At this S stage, our S algorithmSis complete and we return M = ( 1≤i≤m Ti ) Tcorridors tcorners .
efi,j in the following way. For each v ∈ cfi,j (i), we locally fit a plane Pv using the “close” neighbors of v in patch i. We do the same for v c , obtaining T Pvc . We then find an estimated feature point qv,vc on Pv Pvc whose maximum distance to v and v c is minimum. efi,j then consists of all points qv,vc : v ∈ cfi,j (i) in their order along cfi,j (i). See Figure 1(a) for an illustration. We denote the collection of the estimated feature point sequences by E. 5. Fitting a sequence of algebraic curves. Let e = [p1 . . . pk ] be the sequence of estimating feature points of some corridor. We attempt to fit e with a set of algebraic curves, proceeding in increasing order of algebraic degree, starting with degree 1, then degree 2, etc, until we “succeed”. Success is defined in terms of a user-specified (model dependent) error tolerance parameter, δ: We say that a curve a successfully fits a sequence e if max(distance(a, e)) < δ. If we cannot fit curves of degree 6 or less (6 is a parameter of the algorithm which we arbitrarily chose), we partition e into two subsequences, e1 = [p1 , . . . , p|e|/2+1 ] and e2 = [p|e|/2+1 , . . . , p|e| ], and recurse. As a result, we obtain sequences of curves Ae = a1 . . . aeg : eg ≥ 1, each of which fits a subsequence of e. See Figure 1(b) for an illustration. 6. Interpolating center points. For each intersection I at the junction of two or more corridors, we find a corner point whose maximum distance to the algebraic curves that ends/begins in I is minimum. See Figure 1(c) for an illustration. 7. Refit curves. For each e ∈ E, we refit a set of algebraic curves as we do in step 5, but we constrain the curves to pass through the corner points of e. See Figure 1(c) for an illustration. f We then generate the sequence ei,j of the points of ei,j f projected onto the refitted curves, together with the corner points—each point of ei,j f is projected onto its corresponding curve that we fit. We denote the collection of all estimated projected feature point sequences by E . 8. Retriangulation. Recall that each corridor c consists of two subsequences, each of which contains vertices on the boundary of one patch. Let c1 and c2 be the corresponding subsequences of c. Let e ∈ E be the projected estimated sequence of c. We triangulate the polygons [c1 , reverse(e)] (the concatenation of c1 with the reverse of e ) and [c2 , reverse(e )]. We do so using a dynamic programming algorithm that minimizes the area of the triangulation, as follows. Let p be a polygon as we define above. We fit
3. IMPLEMENTATION AND VIDEO Our algorithm is implemented in MS Visual C++.NET/ OpenGL on a PC (Intel Pentium 4 CPU 3.20GHz, 2.00 GB RAM). In experiments with reconstructed models with sharp features, we found a drastic improvement in the quality near the features; several examples are illustrated in the video (produced with Windows Movie Maker).
Acknowledgements This research has been partially supported by the National Science Foundation (CCF-0528209, CCF-0729019). We thank Joel Daniels, Tamal Dey, Alon Efrat, Gershon Elber, Piyush Kumar and Claudio Silva for their helpful input.
4. REFERENCES [1] S. Fleishman, D. Cohen-Or and C. T. Silva. Robust Moving Least-Squares Fitting with Sharp Features. ACM Trans. Graphics 24(3):544–552, 2005. [2] J. D. Daniels, L. K. Ha, T. Ochotta, and C. T. Silva. Robust Smooth Feature Extraction from Point Clouds. In Proc. Internat. Conf. on Shape Modeling and Applications, pages 123-136, 2007. [3] M. Attene, B. Falcidieno, J. Rossignac and M. Spagnuolo. Sharpen and Bend: Recovering Curved Sharp Edges in Triangle Meshes Produced by Feature-Insensitive Sampling. IEEE Transactions on Visualization and Computer Graphics 11(2):181–192, 2005. [4] K. Hildebrandt, K. Polthier and M. Wardetzky. Smooth Feature Lines on Surface Meshes. Proc. 3rd Eurographics Symposium on Geometry Processing, pages 85–90, 2005.
103