一种基于凸包和预判断的混合碰撞检测方法技术

技术编号:29083358 阅读:16 留言:0更新日期:2021-06-30 09:45
本发明专利技术涉及工业自动化虚拟仿真领域,更具体地涉及一种基于凸包和预判断的混合碰撞检测方法,包括:第一步,设定偏球阈值,倾斜夹角阈值;第二步,使用快速凸包算法计算模型的凸包,根据模型的凸包计算包围盒的中心位置以及模型偏球率;第三步,当偏球率小于偏球阈值时,采用SBB包围盒;否则计算模型的倾斜夹角,倾斜夹角如果小于倾斜夹角阈值则选择AABB包围盒;当倾斜夹角大于倾斜夹角阈值时,选择OBB包围盒;第四步,对所述包围盒之间进行相交测试。本发明专利技术能够基于模型的凸包特征,选择合适包围盒类型,提高相交测试效率,构造出的包围盒紧密性更好。性更好。性更好。

【技术实现步骤摘要】
一种基于凸包和预判断的混合碰撞检测方法


[0001]本专利技术涉及工业自动化虚拟仿真领域,更具体地涉及一种基于凸包和预判断的混合碰撞检测方法。

技术介绍

[0002]碰撞检测就是检测虚拟场景中不同对象之间是否发生了碰撞。如果直接对物体几何元素之间进行碰撞检测的遍历,当物体结构很复杂或者物体数量很多时,计算复杂程度极高,在计算速度上是不允许的,达不到虚拟环境中所要求的实时性要求,也不能做到环境与用户的实时交互。碰撞检测算法的实质就是在实时性和精确性之间达到平衡。目前已有多种碰撞检测的方法,主要有包围盒层次法和空间分割法两大类。其中层次包围盒算法由于构造简单且检测更精确,被广泛应用。它的核心思想是用体积略大而几何特性简单的包围盒来代替复杂的几何对象,通过构造层次树并对其进行遍历来确定物体的相交状态。最常用的三大包围盒是球包围盒(SBB)、轴对齐包围盒(AABB)、有向包围盒(OBB)。SBB构造简单、相交测试简单,但是紧密性太差;AABB构造简单、相交测试较为简单,紧密性差;而OBB构造复杂、相交测试复杂。但是紧密性是比较好的。
[0003]针对工业场景中的物体模型,一部分物体模型近似球体,采用SBB包围盒即可,一部分物体模型是轴对称结构的,采用AABB包围盒即可满足碰撞检测精度要求;而还有一部分物体模型是不规则的,需采用OBB包围盒才能满足碰撞检测精度要求。
[0004]现有的混合包围盒算法中,大部分是对某一固定模型采用AABB包围盒,而对另一固定模型采用OBB包围盒;或者固定在层次包围盒树顶层使用AABB包围盒或包围球,而在其他层使用OBB包围盒。现有的这些方法不够灵活,不能利用模型本身形状特点给模型选择合适的包围盒。

技术实现思路

[0005]为了就解决现有技术中存在的上述不足,本专利技术提出一种基于凸包与预判断的混合碰撞检测方法,能够根据模型的凸包,自适应地选择采用AABB包围盒、OBB包围盒或者球包围盒,并且在相交检测阶段应用不同类型包围盒之间的相交预判断方法,快速排除不相交的情况,以进一步提高虚拟仿真中实时碰撞检测的效率,其具体技术方案如下:
[0006]一种基于凸包和预判断的混合碰撞检测方法,包括如下步骤:
[0007]第一步,设定偏球阈值和倾斜夹角阈值;
[0008]第二步,使用快速凸包算法计算模型的凸包,根据模型的凸包来计算包围盒的中心位置o,根据偏球率公式计算模型偏球率p;
[0009]第三步,当偏球率p小于偏球阈值时,采用SBB包围盒;否则计算模型的倾斜夹角θ,倾斜夹角θ如果小于倾斜夹角阈值则选择AABB包围盒;当倾斜夹角θ大于倾斜夹角阈值时,选择OBB包围盒;
[0010]第四步,对所述包围盒之间进行相交测试。
[0011]进一步的,所述第一步中的偏球阈值设置为1/7,倾斜夹角阈值设置为10
°

[0012]进一步的,所述第二步中包围盒的中心位置o计算公式如下:
[0013][0014]其中q
i
为模型凸包n个顶点中的第i个顶点向量;
[0015]所述模型偏球率p的计算公式如下:
[0016][0017]其中n代表模型凸包顶点集中的顶点数,(x
i
,y
i
,z
i
)代表模型凸包顶点集中的第i个顶点的坐标,(o
x
,o
y
,o
z
)代表模型中心位置的坐标,r表示包围球半径。
[0018]进一步的,所述第三步中模型倾斜夹角θ的计算方法如下:
[0019]将模型的凸包顶点集分别投影到以XOY三个坐标的平面,采用向量夹角法计算模型在投影平面中与该投影平面内两坐标轴的夹角,选取夹角最大的作为模型的倾斜夹角,具体的:设在XOY平面内投影模型沿X轴上的最大值顶点是A(x1,y1),最小值顶点是B(x2,y2),则向量AB与OX方向夹角计算公式:
[0020][0021]同理求得与Y轴方向夹角或其余平面中的夹角,选择其中最大夹角作为模型的倾斜夹角θ。
[0022]进一步的,所述第四步具体为:对于SBB包围盒与SBB包围盒相交测试,比较球心距离与两个包围盒半径之和;对于AABB包围盒与AABB包围盒相交测试、OBB包围盒与OBB包围盒或者AABB包围盒相交测试,分别使用各自的相交预判断方法,预先排除一定不相交情况;对于不能预先排除的情况,采用分离轴相交测试方法来判断。
[0023]进一步的,所述对于AABB包围盒与AABB包围盒相交测试,具体为:
[0024]设o1和o2是包围盒B1和包围盒B2的中心位置,l1和w1是包围盒B1的长和宽,l2和w2是包围盒B2的长和宽,是两个包围盒中心点与垂直方向之间的夹角,当下述公式为真时,所述两个包围盒不相交,公式具体如下:
[0025][0026][0027]所述对于OBB包围盒与OBB包围盒或AABB包围盒相交测试,具体为:
[0028]当下述公式为真时,则两个包围盒不相交,公式具体如下:
[0029][0030]相较于现有技术,本专利技术具有以下良好效果:
[0031]1、本专利技术能够基于模型的凸包特征,选择合适包围盒类型,构造出的包围盒紧密性更好。
[0032]2、本专利技术在相交测试阶段,加入不同类型包围盒之间的相交预判断方法,快速排除不相交的情况,能提高相交测试效率。
附图说明
[0033]图1是基于凸包和预判断的混合碰撞检测流程图;
[0034]图2是AABB

AABB相交预判断示意图;
[0035]图3是OBB

OBB/AABB相交预判断示意图。
具体实施方式
[0036]为了使本专利技术的目的、技术方案和技术效果更加清楚明白,下面结合说明书附图,对本专利技术作进一步详细说明。
[0037]如图1所示,一种基于凸包和预判断的混合碰撞检测方法,包括如下步骤:
[0038]第一步,设定偏球阈值和倾斜夹角阈值;
[0039]第二步,计算模型凸包以及偏球率:使用快速凸包算法计算模型的凸包,根据模型的凸包来计算包围盒的中心位置o,根据偏球率公式计算模型偏球率p;
[0040]第三步,构造包围盒:当偏球率p小于偏球阈值时,则采用SBB包围盒,计算中心位置o到模型凸包顶点集中最远的距离作为SBB包围盒的半径r;否则将计算模型的倾斜夹角θ,倾斜夹角θ如果小于倾斜夹角阈值则选择AABB包围盒,根据模型凸包构造AABB包围盒;当倾斜夹角θ大于倾斜夹角阈值时,则选择OBB包围盒,根据模型凸包顶点数据计算协方差矩阵,将协方差矩阵特征向量并且单位化作为模型的三个方向轴,将模型凸包顶点集投影到模型的三个方向轴上,计算OBB的在三个方向轴上的三个1/2边长;
[0041]第四步,包围盒之间的相交测试:对于SBB包围盒与SBB包围盒相交测试,比较球心距离与两个包围盒半径之和;对于AAB本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于凸包和预判断的混合碰撞检测方法,其特征在于,包括如下步骤:第一步,设定偏球阈值和倾斜夹角阈值;第二步,使用快速凸包算法计算模型的凸包,根据模型的凸包来计算包围盒的中心位置o,根据偏球率公式计算模型偏球率p;第三步,当偏球率p小于偏球阈值时,采用SBB包围盒;否则计算模型的倾斜夹角θ,倾斜夹角θ如果小于倾斜夹角阈值则选择AABB包围盒;当倾斜夹角θ大于倾斜夹角阈值时,选择OBB包围盒;第四步,对所述包围盒之间进行相交测试。2.如权利要求1所述的一种基于凸包和预判断的混合碰撞检测方法,其特征在于,所述第一步中的偏球阈值设置为1/7,倾斜夹角阈值设置为10
°
。3.如权利要求1所述的一种基于凸包和预判断的混合碰撞检测方法,其特征在于,所述第二步中包围盒的中心位置o计算公式如下:其中q
i
为模型凸包n个顶点中的第i个顶点向量;所述模型偏球率p的计算公式如下:其中n代表模型凸包顶点集中的顶点数,(x
i
,y
i
,z
i
)代表模型凸包顶点集中的第i个顶点的坐标,(o
x
,o
y
,o
z
)代表模型中心位置的坐标,r表示包围球半径。4.如权利要求1所述的一种基于凸包和预判断的混合碰撞检测方法,其特征在于,所述第三步中模型倾斜夹角θ的计算方...

【专利技术属性】
技术研发人员:林菲邹玲司华豪
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

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

1