基于文森特定理的高效连续碰撞检测方法技术

技术编号:11480890 阅读:96 留言:0更新日期:2015-05-20 14:49
本发明专利技术提供了一种基于文森特定理的高效连续碰撞检测方法,包括:获取空间中需要进行碰撞检测的两个三角形的顶点坐标,以及向量共面性得到碰撞的三次方程,对所述三次方程,计算该三次方程符号变量值,采用笛卡尔符号规则判断所述三次方程是否存在根,如果无法确定是否存在根,则根据文森特定理对所述三次方程进行至少一次迭代,之后采用笛卡尔符号规则继续判断。本发明专利技术其能够有效的过滤掉大部分不会发生碰撞的检测对,过滤率最高达到90%,能够显著提高连续碰撞检测算法的效率。

【技术实现步骤摘要】
基于文森特定理的高效连续碰撞检测方法
本专利技术涉及一种连续碰撞检测方法,尤其涉及一种旨在过滤待计算碰撞对中不可能发生碰撞的检测对、并以此减少连续碰撞检测的计算量的方法。
技术介绍
在基于物理的模拟、机器人动作规划、触觉渲染、虚拟原型的容忍度验证等应用中,非穿透性约束被广泛应用到可移动或可形变的物体上,用来实现碰撞的结果。连续碰撞检测是维持非穿透性约束并较好处理碰撞反馈的一项主要技术。物体之间之所以需要进行碰撞检测,是因为现实世界中同一空间区域内不能存在两个或者多个不可穿透的物体。随着虚拟现实、计算机动画等技术的兴起,人们迫切希望可以对真实环境、以及所构想的客观不存在的环境进行模拟,实时的碰撞检测越发重要。三十年来,许多学者对碰撞检测问题进行了大量研究,并形成了三类主要的检测方法:静态碰撞检测算法、离散碰撞检测算法和连续碰撞检测算法(ContinuousCollisionDetection,CCD)。其中,连续碰撞检测算法定义为在一个时间参数区间[t0,t1]内检测所有物体和其它物体之间有无碰撞,也是最为自然的其最大缺陷在于:无法排除相邻接、但是没有发生自碰撞的图元对,即使是很平坦的没有发生自碰撞的可变形三角形网格也同样无法排除,因此产生很多误报(FalsePositives),剔除率很低,而每一个误报都要执行一个点-面基本测试或边-边基本测试,即需要进行一次三次方程求解,因此,使得大部分碰撞检测的时间花费在误报上,导致计算量大,检测速度慢,在一些复杂的模拟环境中不能保证测试的实时性。对于可移动或可形变的物体,目前主要有两种过滤技术被用来加速连续碰撞检测:一种是宽阔空间的动态边界体层次方法(BVHs);另一种是狭小空间的非穿透性过滤方法。由于对边界体的过度约束,对于快速移动或者剧烈形变的物体,BVHs方法的过滤效率会显著降低。因此,大量可能发生碰撞的三角形在宽阔空间没有被过滤出来,并保留到狭窄空间,最终导致几十万甚至几百万的碰撞测试。由于巨大的计算开销,跟离散的碰撞检测相比,连续碰撞检测的效果也有一定的限制。在最近的研究工作中,出现了许多过滤算法,其中效果较好的有DNPF过滤算法和Exactccd算法。但是这两个算法的计算时间均较长,过滤算法本身具有较大的计算花销。
技术实现思路
针对现有连续碰撞检测效率低、计算量大的问题,本专利技术提供了一种基于文森特(Vincent)定理的连续碰撞检测方法,旨在减少狭窄空间的基本碰撞测试次数,提高连续碰撞检测算法的效率。本专利技术所述的基于文森特定理的高效连续碰撞检测方法,步骤包括:获取三维空间中由三角形组成的检测对(图元对)的点-面碰撞或边-边碰撞所涉及的四个顶点坐标;采用所获得的顶点坐标,根据向量的共面性定理建立共面方程,得到该检测对所对应的时间间隔t∈[t0,t1]三次方程;计算该三次方程符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根,如果不存在根,则剔除所述检测对,如果无法确定是否存在根,则根据文森特定理对所述三次方程进行至少一次迭代,计算得到迭代后方程的符号变量值;根据迭代后方程的符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根,如果不存在根,则剔除所述检测对,否则,将所述检测对纳入连续碰撞检测。其中,本专利技术所述的基于文森特定理的连续碰撞检测方法的一种优选实施例中,进行所述至少一次迭代后,对于无法确定根是否存在的情况,可以根据文森特定理继续迭代并根据继续迭代后的符号变量值进行判断是否存在根;或者可以将检测对纳入连续碰撞检测。本专利技术所述的基于文森特定理的连续碰撞检测方法的一种优选实施例,步骤包括:获取三维空间中由三角形组成的检测对(图元对)的点-面碰撞或边-边碰撞所涉及的四个顶点坐标;采用所获得的顶点坐标,根据向量的共面性定理建立共面方程,得到该检测对所对应的三次方程;计算该三次方程符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根,如果不存在根,则剔除所述检测对,如果无法确定是否存在根,则根据文森特定理对所述三次方程进行至少一次迭代,计算得到迭代后方程的符号变量值;根据迭代后方程的符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根;如果无法确定根的存在情况,则根据文森特定理继续进行迭代,直至能够确定所述三次方程在[t0,t1]区间内是否存在根为止。其中,优选地,对于无法确定跟是否存在的情况,本专利技术进行最多两次迭代。其中,时间间隔优选为t∈[0,1]。其中,建立共面方程的方法优选为:假设所述四个顶点在时间间隔t∈[t0,t1]中以恒定的速度移动,得到点-面距离或者边-边的距离f(t)的三次方程:f(t)=a3t3+a2t2+a1t+a0(1)其中:发生碰撞时:f(t)=0。符号变量定义:如果多项式f(t)按照变量t降幂排列,那么对于相邻两项的系数,如果符号相反,则称发生了一次符号变化,该多项式总的系数符号变化次数,称为符号变量值,记做VAR(f(t))。笛卡尔规则:对于多项式f(t)所对应的方程(f(t)=0),正实根的个数等于f(t)或者等于f(t)减去一个偶数。根据文森特定理对所述三次方程进行一次迭代,得到:根据文森特定理对所述三次方程进行二次迭代,得到:h1=g(t+1)(3-1)h1和h2的根的个数分别为f(t)在区间内和区间内的根的个数。对于t∈[0,1]范围内,h1和h2的根的个数分别为区间内和区间内的根的个数。以此类推,本领域技术人员可根据文森特定理进行继续迭代。一般情况下,本专利技术优选为两次迭代。本专利技术提出了一种基于文森特定理的过滤算法,它能够快速并低开销的过滤伪碰撞对,最终减少狭窄空间基本碰撞检测次数,显著提高连续碰撞检测算法的效率。附图说明图1为本专利技术基于文森特定理的高效连续碰撞检测方法流程示意图;图2为两个三角形碰撞检测对示意图(A为点-面碰撞、B为边-边碰撞)。具体实施方式参照图1和图2,两个三角形组成的碰撞检测对,包括6个点-面碰撞(A)和9个边-边碰撞(B),每一个点-面碰撞或者边-边碰撞均涉及到四个顶点,设定四个顶点顶点移动速度为点-面碰撞时点-面的距离或者边-边碰撞时的边-边距离f(t)可以表示为:从而得到三次函数f(t)=a3t3+a2t2+a1t+a0(1-2)该三次代数式等于0就是一个碰撞发生的必要条件。根据这个条件我们可以得到如下方程:f(t)=0(1-3)获取符号变量VAR符号变量VAR定义:如果多项式f(t)按照变量t降幂排列,那么对于相邻两项的系数,如果符号相反,则称发生了一次符号变化,对于这个多项式总的系数符号变化次数,称为符号变量值,记做VAR(f(t))。笛卡尔规则和文森特定理对于多项式f(t)所对应的方程(f(t)=0),正实根的个数等于VAR(f(t))或者等于VAR(f(t))减去一个偶数。例如对于方程f(t)=t3+t2-t+1,VAR(f(t))=2,所以方程有0或者2个根。一次迭代以t∈[0,1]为例,首先运用文森特定理进行的转化,得到转化后的函数可以推导得出公式(2-1)的具体表达式为:g=b3t3+b2t2+b1t+b0其中,b3=a0b2=a1+3a0b1=a2+2a1+3a本文档来自技高网
...
基于文森特定理的高效连续碰撞检测方法

【技术保护点】
一种基于文森特定理的高效连续碰撞检测方法,其特征在于,步骤包括:获取三维空间中由三角形组成的检测对(图元对)的点‑面碰撞或边‑边碰撞所涉及的四个顶点坐标;采用所获得的顶点坐标,根据向量的共面性定理建立共面方程,得到该检测对所对应的时间间隔t∈[t0,t1]三次方程;计算该三次方程符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根,如果不存在根,则剔除所述检测对,如果无法确定是否存在根,则根据文森特定理对所述三次方程进行至少一次迭代,计算得到迭代后方程的符号变量值;根据迭代后方程的符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根,如果不存在根,则剔除所述检测对,否则,将所述检测对纳入连续碰撞检测。

【技术特征摘要】
1.一种基于文森特定理的高效连续碰撞检测方法,其特征在于,步骤包括:获取三维空间中由三角形组成的检测对的点-面碰撞或边-边碰撞所涉及的四个顶点坐标;采用所获得的顶点坐标,根据向量的共面性定理建立共面方程,得到该检测对所对应的时间间隔t的三次方程,其中,t∈[t0,t1];计算该三次方程符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根,如果不存在根,则剔除所述检测对,如果无法确定是否存在根,则根据文森特定理对所述三次方程进行至少一次迭代,计算得到迭代后方程的符号变量值;根据迭代后方程的符号变量值,采用笛卡尔符号规则判断所述三次方程在[t0,t1]区间内是否存在根,如果不存在根,则剔除所述检测对,否则,将所述检测对纳入连续碰撞检测。2.根据权利要求1所述的方法,其特征在于,进行所述至少一次迭代后,对于无法确定根是否存在的情况,根据文森特定理继续迭代并根据继续迭代后的符号变量值进行判断是否存在根。3.根据权利要求1或2所述的方法,其特征在于,进行最多两次迭代。4.根据权利要求1所述的方法,其特征在于,如果采用笛卡尔符号规则无法确定所述三次方程在[t0,t1]区间内根的存在情况,则根据文森特定理继续进行迭代,直至能够确定所述三次方程在[t0,t1]区间内是否存在根为止。5.根据权利要求1所述的方法,其特征在于,t∈[0,1]。6.根据权利要求1所述的方法,其特征在于,建立共面方程的方法为:假设所述四个顶点在时间间隔t∈[t0,t1]中以恒定的速度移动,得到点-面距离或者边-边的距离f(t)的三次方程:f(t)=a3t3+a2t2+a1t+a0(1)其中:<...

【专利技术属性】
技术研发人员:张新宇刘要
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1