Watertight Ray/Triangle Intersection
Authors: Sven Woop
Carsten Benthin
Ingo Wald
Intel Corporation

Editor: Carsten Dachsbacher
Karlsruhe Institute of Technology
Editor-in-Chief: Morgan McGuire
Williams College & NVIDIA

Abstract

We propose a novel algorithm for ray/triangle intersection tests that, unlike most other such algorithms, is watertight at both edges and vertices for adjoining triangles, while also main- taining the same performance as simpler algorithms that are not watertight. Our algorithm is straightforward to implement, and is, in particular, robust for all triangle configurations including extreme cases, such as small and needle-like triangles. We achieve this robustness by transforming the intersection problem using a translation, shear, and scale transformation into a coordinate space where the ray starts at the origin and is directed, with unit length, along one coordinate axis. This simplifies the remaining intersection problem to a 2D problem where edge tests can be done conservatively using single-precision floating-point arithmetic. Using our algorithm, numerically challenging cases, where single precision is insufficient, can be detected with almost no overhead and can be accurately handled through a (rare) fallback to double precision. Because our algorithm is conservative but not exact, we must dynamically enlarge bounds during BVH traversal to conservatively bound the triangles intersected.

Download:
Full-Text PDF (791 kB)
BibTex (361 B)

Citation: Sven Woop, Carsten Benthin, and Ingo Wald, Watertight Ray/Triangle Intersection, Journal of Computer Graphics Techniques (JCGT), vol. 2, no. 1, 65-82, 2013. Available online http://jcgt.org/published/0002/01/05/

Copyright: © 2013 Woop, Benthin, and Wald

Received: 2013-01-24; Recommended: 2013-03-29; Published: 2013-06-28