首页 > 解决方案 > 当光线沿法线行进时,Möller–Trumbore 距离不同于点平面距离

问题描述

鉴于这种:

Vector3 p_a = (-8720, 1105, -5249)
Vector3 p_b = (-13149, 1124, -5249)
Vector3 p_c = (-13330, 1103, -3404) //p_a p_b, p_c are the points of the triangle
Vector3 p_q = (-11737, 1071, -4678)
Vector3 normal = new Vector3(0.0000000, 0.9999285, 0.0119620) //(0, 4096, 49) normalized

如果我计算从点p_q到三角形创建的平面 的距离,Vector3.Dot((p_q - p_a), normal)结果是 27.16

但是,如果我从p_q沿法线投射一条光线并使用 Möller–Trumbore 算法找到距离(这个实现很精确,尽管我尝试了不同的并得到了相同的结果)我得到到交叉点的距离是 40.2

由于使用 Möller–Trumbore 的光线沿着法线行进,如果我得到一个交叉点,我不应该得到相同的距离吗?我一定遗漏了一些明显的东西,但我看不到什么。

标签: mathraycasting

解决方案


推荐阅读