Bjö*_*ist 6 algorithm raytracing intersection linear-algebra
对于光线跟踪器项目,我一直在研究处理找到光线和三角形之间交叉的算法(由三个顶点定义).到目前为止我发现的是Möller-Trumbore(MT)算法被普遍使用.
所以我的问题是1)是否有MT的替代方案或算法被认为是计算交叉点的最快方法?2)如果是,MT被证明是最优的还是有人可以想象发明更快的算法?
编辑:我现在看到我的问题与Ray-triangle交叉非常相似
作者声称,2016年有一篇论文
在理想的实验条件下运行,我们的算法总是比标准的Möller和Trumbore算法更快,并且比高度调整的现代版本更快,除了非常高的射线三角形命中率.
资料来源: Doug Baldwin和Michael Weber,"坐标转换快速三角交叉点","计算机图形技术期刊"(JCGT),第一卷.5,不.2016年3月39日至39日
在线提供http://jcgt.org/published/0005/03/03/
注意Weber算法。虽然速度可能更快,但我看到大量交叉口被错误地标识为不相交。该文件指出:
如果t太小或太大而无法表示有效的相交,或者b1超出允许相交的范围,则这一系列计算可以提前终止。
我已经看到大约2-3%的网格因为“ t”太小而失效。我仍在进行故障排除,但看起来像P的倒数会导致我的旋转方向矢量过大,等于一个小的“ t”。
另一方面,如果epsilon设置不正确,则MT算法也会产生错误的交集。