Möller-Trumbore 射线相交是最快的吗?

Is Möller-Trumbore ray intersection the fastest?

对于光线追踪器项目,我一直在研究处理寻找光线和三角形(由三个顶点定义)之间的交点的算法。到目前为止,我发现普遍使用 Möller-Trumbore (MT) 算法。

所以我的问题是 1) 是否有 MT 的替代方法,或者该算法是否被认为是计算交叉点的最快方法? 2) 如果是,MT 是否被证明是最优的,或者有人可以发明一种更快的算法?

编辑:我现在发现我的问题与Ray-triangle intersection

非常相似

2016 年有一篇论文作者声称

Running under ideal experimental conditions, our algorithm is always faster than the standard Möller and Trumbore algorithm, and faster than a highly tuned modern version of it except at very high ray-triangle hit rates.

来源: Doug Baldwin 和 Michael Weber,通过坐标变换的快速射线-三角形相交,计算机图形技术杂志 (JCGT),卷。 5,没有。 3, 39-49, 2016

在线可用http://jcgt.org/published/0005/03/03/

警惕韦伯算法。虽然它可能更快,但我看到大量交叉点被错误地识别为不相交。论文指出:

This series of calculations can terminate early if t is too small or large to represent a valid intersection, or if b1 is out of the range that permits an intersection.

我已经看到大约 2-3% 的网格早期失败,因为 't' 太小了。我仍在进行故障排除,但看起来 P 的倒数导致我的旋转方向向量太大,相当于小 't'.

另一方面,如果 epsilon 设置不正确,您也可能会使用 MT 算法得到错误的交集。