## Exact and parallel intersection of 3D triangular meshes

Loading...

##### Authors

Viana Gomes de MagalhÃ£es, Salles

##### Issue Date

2017-12

##### Type

Electronic thesis

Thesis

Thesis

##### Language

ENG

##### Keywords

Computer science

##### Alternative Title

##### Abstract

Finally, we developed 3D-EPUG-Overlay, an algorithm for exactly computing the intersection of pairs of 3D meshes. 3D-EPUG-Overlay employs all the techniques mentioned above to ensure its correctness and efficiency. Experiments showed that it was up to 101 times faster than the algorithm available in LibiGL (the state of art algorithm for exact mesh intersection) and, also, it had a performance that was comparable to a parallel inexact algorithm that was specifically developed to be very fast. Besides being fast, 3D-EPUG-Overlay was more memory efficient than the other evaluated methods. Furthermore, in all test cases the result obtained by 3D-EPUG-Overlay matched the reference solution.

The key to obtain robustness and performance is a combination of 5 separate techniques:

- Multiple precision rational numbers, to exactly represent the coordinates of the objects and completely eliminate roundoff errors during the computations.

This thesis presents an exact parallel algorithm for computing the intersection between two 3D triangular meshes, as used in CAD/CAM (Computer Aided Design/Computer Aided Manufacturing), CFD (Computational Fluid Dynamics), GIS (Geographical Information Science) and additive manufacturing (also known as 3D Printing). Geometric software packages occasionally fail to compute the correct result because of the algorithm implementation complexity (that usually needs to handle several special cases) and of precision problems caused by floating point arithmetic. A failure in an intersection computation algorithm may propagate to any software using the algorithm as a subroutine. As datasets get bigger (and the chances of failure in an inexact algorithm increase), exact algorithms become even more important.

- Simulation of Simplicity, a symbolic perturbation technique, to ensure that all geometric degeneracies (special cases) are properly handled.

- Simple data representations and local information, to simplify the correct processing of the data and make the algorithm more parallelizable.

- A uniform grid, to efficiently index the data, and accelerate some of the steps of the algorithm such as testing pairs of triangles for intersection or locating points in the mesh.

- Parallel programming, to accelerate the intersection process and explore better the ubiquitous parallel computing capability of current hardware.

To evaluate our ideas, we have developed and implemented EPUG-Overlay (Exact Parallel Uniform Grid Overlay), an exact and efficient algorithm for overlaying 2D maps. EPUG-Overlay applies all the techniques mentioned above and, as a result, it was not only exact but also very efficient. Indeed, it was able to compute the intersection of a map containing 32 million edges with another map having 21 million edges in 264 elapsed seconds using 16 threads with dual 8-core processors. By comparison, GRASS (a Geographic Information System) took 5,300 seconds to perform the same computation, partly because it is only single-threaded.

We have also developed PinMesh (Point In Mesh), an exact and efficient method for locating points in 3D meshes. The point location problem is an important step we intend to use for computing the intersection of 3D meshes. PinMesh was carefully implemented to always handle point location queries correctly. The use of efficient data structures associated with parallel programming made PinMesh very fast. According to our experiments, PinMesh was up to 27 times faster than the RCT (Relative Closest Triangle) 3D point location algorithm (that was, to the best of our knowledge, the fastest point location algorithm available).

All the software developed for this thesis is freely available for other researchers to use and extend.

While other methods for exactly intersecting meshes exist, their performance makes them non-suitable for applications where the fast processing of big geometric models is important (such as interactive CAD systems).

The key to obtain robustness and performance is a combination of 5 separate techniques:

- Multiple precision rational numbers, to exactly represent the coordinates of the objects and completely eliminate roundoff errors during the computations.

This thesis presents an exact parallel algorithm for computing the intersection between two 3D triangular meshes, as used in CAD/CAM (Computer Aided Design/Computer Aided Manufacturing), CFD (Computational Fluid Dynamics), GIS (Geographical Information Science) and additive manufacturing (also known as 3D Printing). Geometric software packages occasionally fail to compute the correct result because of the algorithm implementation complexity (that usually needs to handle several special cases) and of precision problems caused by floating point arithmetic. A failure in an intersection computation algorithm may propagate to any software using the algorithm as a subroutine. As datasets get bigger (and the chances of failure in an inexact algorithm increase), exact algorithms become even more important.

- Simulation of Simplicity, a symbolic perturbation technique, to ensure that all geometric degeneracies (special cases) are properly handled.

- Simple data representations and local information, to simplify the correct processing of the data and make the algorithm more parallelizable.

- A uniform grid, to efficiently index the data, and accelerate some of the steps of the algorithm such as testing pairs of triangles for intersection or locating points in the mesh.

- Parallel programming, to accelerate the intersection process and explore better the ubiquitous parallel computing capability of current hardware.

To evaluate our ideas, we have developed and implemented EPUG-Overlay (Exact Parallel Uniform Grid Overlay), an exact and efficient algorithm for overlaying 2D maps. EPUG-Overlay applies all the techniques mentioned above and, as a result, it was not only exact but also very efficient. Indeed, it was able to compute the intersection of a map containing 32 million edges with another map having 21 million edges in 264 elapsed seconds using 16 threads with dual 8-core processors. By comparison, GRASS (a Geographic Information System) took 5,300 seconds to perform the same computation, partly because it is only single-threaded.

We have also developed PinMesh (Point In Mesh), an exact and efficient method for locating points in 3D meshes. The point location problem is an important step we intend to use for computing the intersection of 3D meshes. PinMesh was carefully implemented to always handle point location queries correctly. The use of efficient data structures associated with parallel programming made PinMesh very fast. According to our experiments, PinMesh was up to 27 times faster than the RCT (Relative Closest Triangle) 3D point location algorithm (that was, to the best of our knowledge, the fastest point location algorithm available).

All the software developed for this thesis is freely available for other researchers to use and extend.

While other methods for exactly intersecting meshes exist, their performance makes them non-suitable for applications where the fast processing of big geometric models is important (such as interactive CAD systems).

##### Description

December 2017

School of Science

School of Science

##### Full Citation

##### Publisher

Rensselaer Polytechnic Institute, Troy, NY