在3D中,确定射线是否与三角形碰撞以及到碰撞点的距离

determine whether a ray collides with a triangle and distance to the collision point, in 3D

本文关键字:碰撞 三角形 距离 是否 3D      更新时间:2023-10-16

我正在寻找一种方法来确定光线是否与三角形碰撞,以及在3D中到碰撞点的距离。

类似下面代码的方法或类似的

float GetCollisionsoint(Vector3 RayPosition, Vector3 RayDirection, Vector3 a1, Vector3 a2, Vector3 a3)
    { 
    }

提前感谢!

哦,如果你现在想投票给我,请评论为什么,这样我就知道我做错了。

Dan Sunday给出了一个算法和参考实现。如果三角形的法线和u, v向量是预先计算好的,那么算法将简化为内(点)积。如果将预先计算的uvn归一化,则进一步优化:即<u,u> = <v,v> = 1

在http://www.lighthouse3d.com/tutorials/maths/ray-triangle-intersection/上有关于这个主题的很好的文章,以及一些示例代码。