Abstract
Querying the relative position of a point regarding a solid defined by a triangular mesh is a fundamental algorithm in geometric modelling. This algorithm has many applications in fields like Computer Graphics or Computer Aided Design and is the basis of many other basic algorithms in these areas. In this paper we present an efficient implementation of one of the classic algorithms for solving this problem, the point-in-solid test of Feito and Torres based on simplicial coverings. This algorithm is simple, robust and valid for non-manifold solids. Our implementation resolves the test, including all the special cases, needing no conditional branches. This fact allows us to obtain a parallel and very efficient GPU implementation of the algorithm. We have coded the algorithm in CUDA and the results showed that this GPU implementation achieved a speedup of up to 142× with respect to a CPU single-thread implementation of the same optimized algorithm. Against a multi-thread implementation in CPU, our CUDA algorithm obtains a speedup of up to 38×. We have also compared our algorithm to a previous GPU implementation in CUDA of the inclusion test of Feito and Torres. Against this GPU implementation, our algorithm achieved a speedup of up to 11.8×.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.