Möller Trumbore 算法是三角形与射线(光线)之间判定是否相交的快速算法,利用了重心坐标来表示三角形。
首先假设射线的方程:O为发射点,D为方向向量
再假设三角形平面方程:b1,b2,(1-b1-b2)分别是三个点的重心坐标,p分别是三个点
三角形重心坐标方程的推导:
扩展b1,b2的范围可以将方程扩展到三角形所处的平面,所以判定三角形与射线是否相交的方法是,联立方程求解b1,b2,满足:b1>=0,b2>=0,b1+b2<=1则说明射线与三角形相交。
Möller Trumbore 算法是三角形与射线(光线)之间判定是否相交的快速算法,利用了重心坐标来表示三角形。
首先假设射线的方程:O为发射点,D为方向向量
再假设三角形平面方程:b1,b2,(1-b1-b2)分别是三个点的重心坐标,p分别是三个点
三角形重心坐标方程的推导:
扩展b1,b2的范围可以将方程扩展到三角形所处的平面,所以判定三角形与射线是否相交的方法是,联立方程求解b1,b2,满足:b1>=0,b2>=0,b1+b2<=1则说明射线与三角形相交。