基于泰勒模型的提高连续碰撞检测效率的方法

文档序号:8299319阅读:199来源:国知局
基于泰勒模型的提高连续碰撞检测效率的方法
【技术领域】
[0001] 本发明涉及一种连续碰撞检测方法,尤其涉及一种旨在过滤待计算碰撞对中不可 能发生碰撞的检测对、并以此减少连续碰撞检测的计算量的方法。
【背景技术】
[0002] 在基于物理的模拟、机器人动作规划、触觉渲染、虚拟原型的容忍度验证等应用 中,非穿透性约束被广泛应用到可移动或可形变的物体上,用来实现碰撞的结果。连续碰撞 检测是维持非穿透性约束并较好处理碰撞反馈的一项主要技术。
[0003] 物体之间之所以需要进行碰撞检测,是因为现实世界中同一空间区域内不能存在 两个或者多个不可穿透的物体。随着虚拟现实、计算机动画等技术的兴起,人们迫切希望可 以对真实环境、以及所构想的客观不存在的环境进行模拟,实时的碰撞检测越发重要。三十 年来,许多学者对碰撞检测问题进行了大量研宄,并形成了三类主要的检测方法:静态碰撞 检测算法、离散碰撞检测算法和连续碰撞检测算法(ContinuousCollisionDetection, CCD) 〇
[0004] 其中,连续碰撞检测算法定义为在一个时间参数区间[VtJ内检测所有物体和 其它物体之间有无碰撞,也是最为自然的
[0005] 其最大缺陷在于:无法排除相邻接、但是没有发生自碰撞的图元对,即使是很平 坦的没有发生自碰撞的可变形三角形网格也同样无法排除,因此产生很多误报(False Positives),剔除率很低,而每一个误报都要执行一个点-面基本测试或边-边基本测试, 即需要进行一次三次方程求解,因此,使得大部分碰撞检测的时间花费在误报上,导致计算 量大,检测速度慢,在一些复杂的模拟环境中不能保证测试的实时性。
[0006] 对于可移动或可形变的物体,目前主要有两种过滤技术被用来加速连续碰撞检 测:一种是宽阔空间的动态边界体层次方法(BVHS);另一种是狭小空间的非穿透性过滤方 法。由于对边界体的过度约束,对于快速移动或者剧烈形变的物体,BVHs方法的过滤效率 会显著降低。因此,大量可能发生碰撞的三角形在宽阔空间没有被过滤出来,并保留到狭窄 空间,最终导致几十万甚至几百万的碰撞测试。由于巨大的计算开销,跟离散的碰撞检测相 比,连续碰撞检测的效果也有一定的限制。
[0007] 在最近的研宄工作中,出现了许多过滤算法,其中效果较好的有DNPF过滤算法和 Exactccd算法。但是这两个算法的计算时间均较长,过滤算法本身具有较大的计算花销。

【发明内容】

[0008] 针对现有连续碰撞检测效率低、计算量大的问题,本发明提供了一种基于泰勒 (Taylor)模型的连续碰撞检测方法,旨在减少狭窄空间的基本碰撞测试次数,提高连续碰 撞检测算法的效率。
[0009] 本发明所述的基于泰勒模型的提高连续碰撞检测效率方法,步骤包括:
[0010] 获取三维空间中由三角形组成的检测对(图元对)的点-面碰撞或边-边碰撞所 涉及的四个顶点坐标;
[0011] 采用所获得的顶点坐标,根据向量的共面性定理建立共面方程,得到该检测对所 对应的三次方程;
[0012] 对所述三次方程,在[0, 1]区间内使用泰勒模型,得到所述区间的值范围;
[0013] 根据所得到的范围值以及根的存在性原理判断所述三次方程是否在所述[0, 1] 区间内存在根,如果不存在根,则剔除所述检测对,如果存在根,则将所述检测对纳入连续 碰撞检测。
[0014] 其中,建立共面方程的方法优选为:
[0015] 假设所述四个顶点
【主权项】
1. 一种基于泰勒模型的提高连续碰撞检测效率方法,其特征在于,步骤包括:获取三 维空间中由三角形组成的检测对(图元对)的点-面碰撞或边-边碰撞所涉及的四个顶点 坐标; 采用所获得的顶点坐标,根据向量的共面性定理建立共面方程,得到该检测对所对应 的三次方程; 对所述三次方程,在[〇, 1]区间内使用泰勒模型,得到所述区间的值范围; 根据所得到的值范围以及根的存在性原理判断所述三次方程是否在所述[〇,1]区间 内存在根,如果不存在根,则剔除所述检测对,如果存在根,则将所述检测对纳入连续碰撞 检测。
2. 根据权利要求1所述的方法,其特征在于,所述三次函数的建立方法为:三角形 顶点在时间间隔te[V 中恒速移动,四个顶点元⑴(/ = 1又3,4)的移动速度为 巧(/ =丨,2,3,4),则得到点-面距离或者边-边距离f⑴的三次函数公式(1): f (t) = a3t3+a2t2+a1t+a〇(1) 其中,
3. 根据权利要求1所述的方法,其特征在于,f(t)在te[0, 1]区间某一点s的n阶 泰勒模型Tf为:
(2; 其中,Pn(t)为f(t)的一个近似多项式,&为余项。
4. 根据权利要求1或3所述的方法,其特征在于,所述泰勒模型是包括一阶、二阶、三阶 泰勒模型中的任意一种或几种。
5. 根据权利要求4所述的方法,其特征在于,te[0, 1]区间的一阶泰勒模型为: f ([〇, 1]) = a3X [0, l]3+a2X [0, l]2+aiX [0, l]+a〇 因此,通过一阶泰勒模型得到的f(t)在te[0, 1]区间的范围值为:
为最小值,6?;?=为最大值。
6. 根据权利要求4所述的方法,其特征在于,te[0, 1]区间的二阶泰勒模型为: P2+R2=a2^+8^+80+[^,rj 其中,P2是一个近似二次多项式,R2是一个余项,令公式(2)中3 = 0,1?2为&七3的闭包, 并且在tG[0, 1]区间内是单调的,则: 如果4 =-^7e[(U],则通过二阶泰勒模型得到的f(t)在[〇,1]区间内的极值为:
为最小值,为最大值; 如果s[o,i],那么己的值介于区间边界的值p(〇)和p(l)之间。
7. 根据权利要求4所述的方法,其特征在于,te[0, 1]区间的三阶泰勒模型为: f(t) =a3t3+a2t2+a1t+a〇 对该三阶泰勒模型的函数求导后得到3a3t2+2a2t+ai= 0,计算得到根tJP12,其中,tji= 1,2)G「〇,11,则该三阶泰勒模型得到的f(t)在[0,1]区间内的极值为:
其中,为最小值,为最大值。
【专利摘要】本发明提供了一种基于泰勒模型的连续碰撞检测方法,包括:获取空间中需要进行碰撞检测的两个三角形的顶点坐标,以及向量共面性得到碰撞的三次方程,对所述三次方程,在[0,1]区间内使用泰勒模型,得到所述区间的范围值;根据所得到的范围值以及根的存在性原理判断所述三次方程是否在所述[0,1]区间内存在根,如果不存在根,则剔除所述检测对,如果存在根,则将所述检测对纳入连续碰撞检测。本发明其能够有效的过滤掉大部分不会发生碰撞的检测对,过滤率最高达到90%,能够显著提高连续碰撞检测算法的效率。
【IPC分类】G06F19-00
【公开号】CN104615893
【申请号】CN201510076544
【发明人】张新宇, 刘要
【申请人】华东师范大学
【公开日】2015年5月13日
【申请日】2015年2月13日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1