Spectral watertight surface reconstruction

To reconstruct a surface from an unorganized point set S, we create a point set S+ that adds the vertices of a cubical bounding box, then compute the Delaunay triangulation T and Voronoi diagram Q of S+. We form a graph G whose nodes are vertices of Q, and use a spectral graph partitioning algorithm to cut this graph into two pieces, the inside and outside subgraphs. Because every Voronoi vertex in Q represents a tetrahedron in T , these labels are affixed to the tetrahedra too. If the points in S are sampled densely enough from a simple closed surface, then the surface is approximated reasonably well by the faces of T that separate the inside tetrahedra from the outside tetrahedra. Our algorithm first identifies the set V of Voronoi vertices called poles [Amenta et al. 2001], which are likely to lie near the medial axis of the surface being recovered. The algorithm then constructs a sparse pole graph G = (V,E). The set E of edges is defined as follows. For each sample point s with poles u and v, (u,v) is an edge in E. For each edge (s,s′), of the Delaunay tetrahedralization T , the edges (u,u′), (u,v′), (v,u′), and (v,v′) are all edges of E, where u and v are the poles of s, and u′ and v′ are the poles of s′. The edge weights are based on observations of Amenta et al. [2001]. If a sample s has a long, thin Voronoi cell, the likelihood is high that its poles u and v are on opposite sides of the surface. We assign a negative weight to edge (u,v). Let tu and tv be the tetrahedra in T whose duals are u and v. The circumscribing spheres of tu and tv intersect at an angle φ . We assign (u,v) a weight of wu,v = −e4+4cosφ . Next, let (u,v) be an edge of E that is not assigned a negative weight. We assign (u,v) a weight of wu,v = e4−4cosφ . If φ is close to 180◦, u and v are likely to lie on the same side of the surface, so we use a large, positive edge weight. We know a priori that tetrahedra with vertices on the bounding box must be labeled outside. So, we fix their labels prior to the partitioning step by collapsing the poles dual to such tetrahedra into a single supernode z, yielding a modified graph G′. From the modified pole graph G′, we construct a pole matrix L. (L is often called the Laplacian matrix.) L is sparse and symmetric and has one row and one column for each node of the graph G′. For each edge (u,v) of G′ with weight wu,v, the pole matrix L has the entries Li j = −wu,v and L ji = −wu,v. The diagonal entries of L are the row sums Lii = ∑ j 6=i |Li j|. We partition G′ by finding the eigenvector x associated with the smallest eigenvalue λ of the generalized eigensystem Lx = λDx, where D is a diagonal matrix whose diagonal is identical to that of L. Because L is a sparse matrix, we compute the eigenvector x using TRLAN, an implementation of the Lanczos algorithm [Pothen et al. 1990]. When this method is applied to smooth, well-sampled surfaces, we find that the eigenvector x is relatively polarized: most of its entries are clearly negative or clearly positive, with few en0.5 1 1.5 2 2.5 3