如何检测3D空间中2个三角形之间的碰撞?

2020年11月16日 82点热度 0条评论

我想在3d空间(使用Java(无java3D))中制作一个三角形碰撞检测器(或通常来说是平面/区域碰撞)。我被碰撞部分挡住了,那是计算机检测到两个三角形的区域相交的地方。我想在2种形状发生碰撞并停止发生碰撞时触发某种事件,而我实际上不知道从哪里开始。我考虑在3d中进行SAT,但在3d环境中应用它似乎很昂贵。有没有更好的方法来检测3d空间中形状的3d碰撞?

SAT解释:http://www.dyn4j.org/2010/01/sat/

编辑在具体情况下,这对于检测棱镜的面部碰撞将非常有用

解决方案如下:

光线,平面和三角形的交点:
http://geomalgorithms.com/a06-_intersect-2.html

三角形-三角形相交的确定:
http://www.scielo.org.mx/pdf/poli/n48/n48a3.pdf

三角形-三角形相交算法:
http://web.mst.edu/~chaman/home/pubs/2015WimoTriangleTrianglePublished.pdf