Two-dimensional line segment–triangle intersection test: revision and enhancement
- 24 Downloads
Two-dimensional line segment–triangle intersection test is a part of some 3D triangle–triangle intersection test algorithms. It is the kind of algorithms dealing with intersection of one triangle and line segment obtained as the intersection of the other triangle with the plane which the first triangle lies on. There appeared a number of algorithms each proclaiming its efficiency against to its predecessors with respect to the number of operations. In the paper, we seek out the minimal set of operations. Applying divide and conquer paradigm, we split the operations needed into (a) fixed part consisting of core arithmetic operations and (b) variable part dealing with logical reasoning. As we come to the set of core arithmetic operations that cannot be further minified we realize previous algorithms come to the same set in spite of their different strategies. Further improvement we sought in the area of modern processor architectures. We exploit modern CPU’s parallel processing capabilities like Single instruction, multiple data vectorization, parallel—out-of-order execution and branch prediction and enlighten their strengths and weaknesses for usage in this type of algorithms.
KeywordsSegment–triangle intersection Cross product Out-of-order execution Single instruction multiple data Dependency chain
I express my gratitude to professor Joseph Mitchell from State University of New York at Stony Brook, for handing out the code of QuickCD algorithms to me.
Compliance with ethical standards
Conflict of interest
Author Simo Jokanovic declares that he has no conflict of interest.
- 1.Gottschalk, S., Lin, M.: Collision detection between geometric models: a survey. In: Proceedings of IMA Conference on Mathematics of Surfaces 1998, pp. 3–15 (1998)Google Scholar
- 2.Botsch, M., Pauly, M., Kobbelt, L., Alliez, P., Lévy, B., Bischoff, S., Rössl, C.: Geometric Modeling Based on Polygonal Meshes, Eurographics 2008—Tutorials. http://lgg.epfl.ch/publications/2008/botsch_2008_GMPeg.pdf. Accessed Dec 2017
- 5.Devillers, O., Guigu, P.: Faster triangle–triangle intersection tests. Technical report 4488, INRIA (2002)Google Scholar
- 9.Shen, J.P., Lipasti, M.H.: Modern Processor Design. Fundamentals of Superscalar Processors. Waveland Press, Long Grove (2005)Google Scholar
- 10.Fog, A.: Optimizing software in C++: an optimization guide for Windows, Linux and Mac platforms. Technical University of Denmark. http://www.agner.org/optimize/optimizing_cpp.pdf. Accessed Dec 2017
- 11.Intel 64 and IA-32 Architectures Optimization Reference Manual, Intel Corporation, Order Number: 248966-033 (2016)Google Scholar