GJK中的碰撞点

Viu*_*iuo 6 algorithm collision-detection

有没有办法修改Gilbert-Johnson-Keerthi算法,以便找到两个物体之间碰撞的点而不是真/假结果?根据我的理解,可以使用接收到的距离值来找到这些点.我在网上搜索但没有找到任何提示.

Mik*_*ola 4

你所要求的并不恰当。如果它们发生碰撞,则交点是不确定的——因为交点实际上是重叠区域,因此可以是任意数量的可能点。相反,您应该将“交点”视为时空坐标(dx,dy,dz,t),代表撞击时间,以及两个物体之间的平移向量,为您提供它们的相对配置。

修改 GJK 来计算时空交点的一种方法是对扫描体积进行二分搜索,以找到撞击之前的时刻。使用这些数据,您可以计算两个物体的分离轴和相应的极值点,从而为您提供撞击点的近似值。如果您重用先前搜索迭代中的单纯形来加速后续测试,这种方法也可以很快。Christer Ercisson 在此处对此技术有一些注释: http://realtimecollisiondetection.net/pubs/SIGGRAPH04_Ericson_GJK_notes.pdf