Ray-triangle intersection is an important algorithm, not only in the field of realistic rendering (based on ray tracing) but also in physics simulation, collision detection, modeling, etc. Obviously, the speed of this well-defined algorithm's implementations is important because calls to such a routine are numerous in rendering and simulation applications. Contemporary fast intersection algorithms, which use SIMD instructions, focus on the intersection of ray packets against triangles. For intersection between single rays and triangles, operations such as horizontal addition or dot product are required. The SSE4 instruction set adds the dot product instruction which can be used for this purpose. This paper presents a new modification of the fast ray-triangle intersection algorithms commonly used, which-when implemented on SSE4-outperforms the current state-of-the-art algorithms. It also allows both a single ray and ray packet intersection calculation with the same precomputed data. The speed gain measurements are described and discussed in the paper.
[1]
D. Badouel.
An efficient ray-polygon intersection
,
1990
.
[2]
Tomas Akenine-Möller,et al.
Fast, minimum storage ray/triangle intersection
,
1997,
J. Graphics, GPU, & Game Tools.
[3]
Tomas Akenine-Möller,et al.
Fast, Minimum Storage Ray-Triangle Intersection
,
1997,
J. Graphics, GPU, & Game Tools.
[4]
Ingo Wald,et al.
Realtime ray tracing and interactive global illumination
,
2004,
Ausgezeichnete Informatikdissertationen.
[5]
Maxim Shevtsov,et al.
Ray-Triangle Intersection Algorithm for Modern CPU Architectures
,
2007
.
[6]
P. Shirley,et al.
Optimizing Ray-Triangle Intersection via Automated Search
,
2006,
2006 IEEE Symposium on Interactive Ray Tracing.