A New Volumetric Implicit Surface Data Structure and Its Triangulation Algorithm Applied to Mesh Integration Marc Fournier Jean-Michel Dischler Dominique Bechmann Image Sciences, Computer Sciences and Remote Sensing Laboratory LSIIT – UMR 7005 – CNRS – Louis Pasteur University, Strasbourg, France {fournier, dischler, bechmann}@lsiit.u-strasbg.fr Abstract In this paper we propose a new volumetric implicit surface data structure as an alternative representation to perform mesh processing algorithms. We introduce a new triangulation algorithm suitable for our voxel-based volumetric structure which is a vector field distance transform from an explicit mesh. This new representation is an extension of the implicit scalar field distance function of a mesh. We show our new vector field function is more accurate than the classic scalar field function by comparing both representations with an error metric evaluation. We adapt to this new vector representation mesh integration operation in the reconstruction process of 3D objects from scanned data which was previously performed on the implicit scalar field function. Results show that using this new vector field representation, our mesh integration and mesh triangulation algorithm designs outperform the previous processes based on the implicit scalar field function representation.
1. Introduction The classic implicit scalar field distance transform representation (SFDT) is a voxel-based volumetric implicit representation to describe a 3D object surface mesh. To compute SFDT we need to create a voxel grid inside the mesh bounding box. For each voxel the closest point on the mesh surface is found and the distance between the voxel and that closest point is saved in the voxel structure. When the voxels size tends toward zero, we have a continuous implicit surface representation of the mesh which correctly represents both the surface topology and geometry. The zero-set f(x,y,z) = 0 of the SFDT defines the mesh surface. The SFDT is used to perform mesh processing operations in the implicit domain. After data processing, we need to triangulate the SFDT in order to produce the resulting mesh. In practice the voxel size is finite and the domain conversion itself introduces a surface error which can be controlled by
choosing an appropriate voxel grid resolution required for specific applications. Converting a mesh in its SFDT and without performing any operation on the SFDT, if we triangulate that SFDT to create a new mesh equivalent to the initial one, we will not obtain the exact same surface but only its approximation. In this paper we present a new and more accurate implicit Vector Field Distance Transform function (VFDT) to represent a triangle mesh. Such as for the classic SFDT, we use a volumetric voxel grid to compute the implicit representation. Then we define a triangulation algorithm adapted to our new representation to correctly reconstruct the resulting mesh from the VFDT. Finally we adapt the SFDT mesh integration algorithm to the VFDT to perform an improved mesh integration algorithm which produces more accurate results. The remaining parts of the paper are organized as follows: Section 2 overviews related work. Section 3 presents our new VFDT and its triangulation algorithm. Section 4 presents the adapted mesh integration algorithm based on the VFDT representation. Finally in Section 5, before concluding we propose some mesh integration results using our new VFDT representation compared with the SFDT classic representation according to an error metric evaluation.
2. Related work The SFDT is an important volumetric alternative surface representation which is widely used to perform many mesh processing operations. In the context of real 3D objects reconstruction from scanned data, even if the domain conversion introduces a surface error, using the SFDT produces better results than other methods and it has the advantage of being able to process every step of the reconstruction procedure in the same data structure with relatively simple algorithms. In that context the SFDT was previously used in mesh integration [1] to integrate all range images into a unique representation, followed by mesh repair and mesh simplification [2] to fill holes in the mesh and to produce a more compact model, and then mesh smoothing and denoising [3] to remove acquisition noise introduced by the scanner. Since
the SFDT is an implicit representation, a triangulation algorithm such as Marching Cube [4] or Marching Triangle [5] is used to triangulate and produce the resulting triangle mesh after mesh processing. We propose a new VFDT and its triangulation which are more accurate than the classic SFDT and its remeshing algorithms. This will contribute to reduce the domain conversion error and to enhance the results quality of mesh processing operations in the implicit field representation. Mesh integration is an important task in 3D model reconstruction from scanned data and several methods have been proposed to address this problem. A popular method [6] works directly on meshes to find and remove redundant areas between them after mesh registration. Then remaining parts are connected at their border by “stitching” them together. Other methods such as [7, 8] also work directly on meshes in a similar way and they form surface-based family of mesh integration algorithms. Volume-based methods are another family of mesh integration algorithms and they use volumetric voxel representations to perform mesh integration. Most of these methods such as [1, 9, 10] compute SFDT of each scanned mesh and integrate them together in a single SFDT before resulting mesh triangulation. Volume-based methods produce better smoothly interpolated results in overlapping regions compared to surface-based methods and they are able to deal with full 3D input dataset scans whereas surface-based methods are limited to classic 2½D range images input data. In this paper we adapt a volumebased SFDT mesh integration algorithm to our VFDT to show its efficiency in this particular application.
3. VFDT definition and its triangulation As for SFDT, the VFDT of a mesh is defined over a voxel grid. For each voxel the closest point on the mesh surface is also found. But instead of saving only the distance as in SFDT, in VFDT the 3D vector starting from the voxel and pointing to that closest point found on the surface is saved in each voxel. This new VFDT is more precise and complete than SFDT representation because at each voxel we know the distance as well and in addition we know the exact orientation of the closest point on the surface. As for SFDT, zero-set f(x,y,z) = 0 when VFDT vectors length are zero defines the mesh surface. In practice with a discrete and finite grid resolution we need to fix a threshold to determine if a voxel is on the surface. With the SFDT representation it introduces an approximation error on the surface vertices. In the VFDT representation we use the small residual vector of the surface voxels to correct the vertices coordinates and retrieve the exact surface position. Figure 1 shows an example of SFDT and VFDT closest point from single voxel point of view.
a • α •
Surface and normal vector
b• c•
β •
A •d
B
Figure 1. SFDT and VFDT voxels closest points In Figure 1 example A, B are neighbor voxels from which closest points on surface are a, b. In SFDT vector α, β lengths are distances saved in voxels A, B. In VFDT vectors α, β are saved in voxels A, B. Once distance fields are computed, from voxels A, B point of views, in SFDT closest surface points could be anywhere on circles of radius α, β and if we merge voxels A, B data these points could have either no solution (in case⎟α⎜+⎟β⎜< dist(A,B)) or two solutions (point c or d) as shown in Figure 1. Transposed in 3D, this last case would admit infinity of solutions on a circle. In VFDT voxels data structure there is no ambiguity, closest surface points from voxels A, B are exact initial surface points a, b as pointed by saved vectors α, β in VFDT.
3.1. VFDT triangulation algorithm This subsection introduces the triangulation algorithm which is designed for VFDT. The new vertices are exactly on the initial surface thus minimizing the error introduced by the implicit domain conversion compared to SFDT triangulation algorithms new vertices which are only approximations of the initial surface. As an analogy to Marching Cube algorithm in which a cube scans the entire voxels grid domain, in our new triangulation a square scans the entire domain, slice by slice in each of three dimensions. Vector length is tested for each of four voxels on current square and if it is shorter than √3/2 (~0.866) of grid spacing distance between voxels it is marked as voxel which may contribute to new vertex. If more than one marked voxels address same new vertex, only voxel with shortest vector length will remain marked. Then if zero, one or two voxels are marked on current square, no triangle is created. If three voxels are marked, the three vertices pointed by vector in voxels form a new triangle. If four voxels are marked on current square two triangles are added and out of two possibilities, the two triangles chosen are the ones which minimize their area difference. This algorithm ensure surface continuity, adjacent squares having common marked voxels will create adjacent triangles which have a shared vertex or edge if there are enough marked voxels in each square. Figure 2 illustrates our new triangulation progression on voxels grid.
•
• •
•
a)
•
b)
•
• •
•
•
• •
c)
•
d)
Figure 2. VFDT triangulation progression In Figure 2 example, the triangulation algorithm progresses from a) to d) and it creates triangles along its path with new vertices pointed by voxels vector. In a) three voxels are marked and first triangle is created. In b) three voxels are also marked which one is shared with step a), thus creating an adjacent triangle having a common vertex. In c) all four voxels are marked and two triangles are added to existing model with two common vertices. Finally in d) last triangle is created with three marked voxels. In this example we suppose all other squares tested had less than three voxels marked and no other triangle was created.
4. VFDT mesh integration adaptation Previous work address mesh integration problem by proposing solutions based on SFDT representation. In this section we adapt to our VFDT the SFDT mesh integration algorithm proposed in [1]. For this application three additional information are needed to complete the SFDT definition. First surface normal vector at closest point found is saved in SFDT voxels at distance field computation process. With VFDT this information is not saved, we simply use vector information previously saved in VFDT voxels which is in most cases opposite orientation vector of surface normal vector. Second additional information saved in SFDT and also in VFDT voxels is Boolean value in case of open meshes to specify if closest point found on surface is on surface boundary or not. Third information saved in both representations is floating point value in regards of data error confidence. VFDT mesh integration overall algorithm is basically the same as SFDT algorithm. Distance fields are first computed for all individual meshes to be integrated together. Voxels grids need to be aligned and of same resolution. A global voxels grid of same resolution is defined over entire domain. In non-redundant local areas same voxel information is copied in global distance field. In redundant areas in which more than one voxel is defined, algorithm described in [1] is applied to determine
new global distance field information according to all individual grids information at same spatial coordinates. Then global voxels grid can be triangulated to obtain resulting mesh of all individual meshes. In SFDT algorithm steps, tests are performed to find nearest points with minimum distance values saved in voxels and to determine if orientation between points are same or opposite according to their normal vector. Equivalent tests on VFDT use vectors length to find nearest points with minimum distance values and VFDT vectors instead of surface normal vectors to compute dot products in order to determine same or opposite orientation between points. Previous steps before last one in integration algorithm are to determine which individual grid voxels will contribute to evaluate final voxel value in global grid. Last step in SFDT algorithm is weighted average on all scalar distances of selected voxels to determine new global grid value. In VFDT same weighted average is performed on vector values instead of scalar values.
5. Results In this section we present SFDT and VFDT mesh integration results and we compare them together to show our new implementation efficiency compared to the classic algorithm. Figure 3 shows a first result on initial Venus model which has been split in two parts. SFDT and VFDT of two parts have been computed at same grid resolution and mesh integration has been performed on both implicit representations. SFDT has been processed with the algorithm described in [1] and triangulated with Marching Cube. VFDT has been processed with its adapted algorithm from [1] and triangulated with our proposed method. SFDT result has these usual Marching Cube elevation lines produced with small degenerated triangles while VFDT result is much more uniform. At model bottom end we see SFDT result has lost of details compared to initial model while VFDT result does not have this problem.
Initial model parts
SFDT integration
VFDT integration
Figure 3. Venus model mesh integration
Results in Figure 3 have been compared to initial Venus model mesh with vertex to surface error metric introduced in [3] and VFDT triangulation is 13.8% better than SFDT even if it has fewer triangles, only 2239 compared to 3781 triangles for SFDT triangulation. Figure 4 shows another result on scanned model of Sophocles face statue. The two initial model range images which contain an overlapping area in the middle have been processed with same algorithms as in Figure 3 result. Again VFDT result is much more uniform without small degenerated triangles which produce elevation lines in SFDT result. The two methods resulting meshes have been compared to both initial meshes before integration using vertex to surface error metric. SFDT error is 0.241 and VFDT error is 0.215, thus VFDT result is 10.8% better than SFDT one.
Sophocles face statue
Initial model range images
SFDT integration
VFDT integration
Figure 4. Sophocles model mesh integration
After integration process and before remeshing, global SFDT and VFDT have been compared together and VFDT voxels vector lengths do not exactly match SFDT voxels scalar distance values. Scalar and vector weighted averages to evaluate new voxels values do not provide exact same results on both representations. From VFDT definition, its integration algorithm and its triangulation algorithm observations we see this new representation itself and its algorithm designs are individually more accurate than their SFDT equivalent processes. These VFDT improvements all contribute to obtain a better quality resulting mesh for mesh integration application.
6. Conclusion and future work A new VFDT has been introduced in this paper. It is a more complete and accurate implicit mesh representation than the classic SFDT. A new triangulation algorithm has been designed to correctly reconstruct the VFDT resulting mesh. A mesh integration algorithm previously performed on SFDT has been adapted to VFDT and results show it outperform the previous one with SFDT. Future work will include adaptation of other SFDT useful mesh processing algorithms to our VFDT in order to improve their results quality. With this new VFDT definition, we will also investigate the design of new mesh operations which are not applicable to the classic SFDT representation.
References [1] A. Hilton, A.J. Stoddart, J. Illingworth, T. Windeatt: Implicit Surface-Based Geometric Fusion. Computer Vision and Image Understanding, Vol. 69, No. 3, 1998, 273-291. [2] F.S. Nooruddin, G. Turk: Simplification and Repair of Polygonal Models Using Volumetric Techniques. IEEE Transactions on Visualization and Computer Graphics, Vol. 9, No. 2, 2003, 191-205. [3] M. Fournier, J-M. Dischler, D. Bechmann: 3D Distance Transform Adaptive Filtering for Smoothing and Denoising Triangle Meshes. Graphite 2006, Kuala Lumpur, Malaysia, 2006, 407-416. [4] W.E. Lorensen, H.E. Cline: Marching Cubes: A High Resolution 3D Surface Reconstruction Algorithm. ACM SIGGRAPH 1987, Anaheim, USA, 1987, 163-169. [5] A. Hilton, A.J. Stoddart, J. Illingworth, T. Windeatt: Marching Triangles: Range Image Fusion for Complex Object Modelling. International Conference on Image Processing, Lausanne, Switzerland, 1996, 381-384. [6] G. Turk, M. Levoy: Zippered Polygon Meshes from Range Images. SIGGRAPH 1994, Orlando, USA, Computer Graphics, Vol. 26, 1994, 311-318. [7] M. Rutishauser, M. Stricker, M. Trobina: Merging Range Images of Arbitrary Shaped Objects. IEEE Conference on Computer Vision and Pattern Recognition, Seattle, USA, 1994, 573-580. [8] M. Soucy, D. Laurendeau: A General Approach to the Integration of a Set of Range Views, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 17, 1995, 344-358. [9] B. Curless, M. Levoy: A Volumetric Method for Building Complex Models from Range Images. ACM SIGGRAPH 1996, New Orleans, USA, 1996, 221-227. [10] H. Hoppe, T. DeRose, T. Duchamp, J. McDonald, W. Stuetzle: Surface Reconstruction from Unorganized Data Points. SIGGRAPH 1992, Chicago, USA, Computer Graphics, Vol. 26, 1992, 71-78.