论文部分内容阅读
计算空间任一点到多面体的有符号距离在众多领域都有应用,如在虚拟现实,机器人运动规划,碰撞检测等方面都有应用。经常通过计算物体间的最近距离来避免运动过程中的干涉和碰撞,而求解点到多面体的最近有符号距离则是解决这类问题的关键。本文针对三角形网格表示的物体之间的关系,把角度权伪法矢量应用于点到三角形网格体的带符号距离计算中,并进一步讨论了物体与物体之间距离的计算。首先,对于封闭,光滑表面的物体来说,其表面的法向量可以用来判别一个点是在物体内部还是在外部。但是用三角形网格表示的物体在其顶点和边处不连续,因此不具有法向量,只能定义一些伪法矢量,文中,我们证明角度权的伪法矢量和从表面上的最近点到任意点之间的向量的点积的符号可以用来判断点在多面体内部还是在外部。计算点到网格的有符号距离的符号通常就由这个内-外信息来表示。并把此理论结果应用于点到三角形网格体的有符号距离计算中。从而把点到光滑表面物体的内外测试推广到三角形网格表示的物体上。我们采用动态球搜索技术来计算点到网格的带符号距离,此算法能够快速获得一个含多面体最近体元素在内的侯选面片集,而且一般情况下该侯选集都足够小,再计算点到侯选面片集之间的距离,可以避免传统方法中需要频繁的计算点到当前层的最近距离。其次,进一步研究了物体到物体之间距离的快速计算,采用层次扫掠球来进行快速的距离查询,并建立基于层次扫掠球的混合层次,具有可变的紧密度,提高算法的灵活性。为了进一步提高算法效率,引入相对误差,并且限制报告距离与实际距离之间的误差为一个用户定义的数。通过使用相对误差,准确距离计算和碰撞检测成为同一个问题的两个极端情况,当用户定义相对误差为零时,则算法作准确距离计算,当定义相对误差为100%时,若返回值为零,说明两物体发生碰撞。