[发明专利]一种基于AABB包围盒模型分割和迭代的碰撞检测算法在审
申请号: | 202310283532.X | 申请日: | 2023-03-22 |
公开(公告)号: | CN116386025A | 公开(公告)日: | 2023-07-04 |
发明(设计)人: | 熊文;吴承轩 | 申请(专利权)人: | 东南大学 |
主分类号: | G06V20/64 | 分类号: | G06V20/64;G06V10/26;G06V10/764;G06T17/20 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 陈月菊 |
地址: | 210096 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 aabb 包围 模型 分割 碰撞 检测 算法 | ||
1.一种基于AABB包围盒模型分割和迭代的碰撞检测算法,其特征在于,包括:
S1、使用AABB包围盒对待测模型分别进行包裹并生成模型包围盒,以模型包围盒为对象进行碰撞检测,并判断模型包围盒之间是否发生碰撞,若发生碰撞则进行步骤S2,否则结束检测,输出待测模型不发生碰撞;
S2、以模型包围盒的形心为球心、以模型包围盒的棱与形心距离的最大值为半径,生成模型包围球,以模型包围球为对象进行碰撞检测,并判断模型包围球之间是否发生碰撞,若发生碰撞则进行步骤S3,否则结束检测,输出待测模型不发生碰撞;
S3、求出待测模型表面的极值点坐标和鞍部坐标,根据极值点坐标所在的xy、xz和yz三个平面对待测模型进行分割,生成若干个待测子模型,使用AABB包围盒对每个待测子模型分别进行包裹并生成子模型包围盒,并标记属于同一待测模型的子模型包围盒;
S4、对非同一待测模型的子模型包围盒之间分别进行行碰撞检测,并判断非同一待测模型的子模型包围盒之间是否发生碰撞,若发生碰撞则进行步骤S5,否则结束检测,输出待测模型不发生碰撞;
S5、提取发生碰撞的子模型包围盒,并将其内部的模型进行三维网格分割,生成若干个网格单元,对非同一子模型包围盒的网格单元之间分别进行行碰撞检测,若存在碰撞,则提取发生碰撞的网格单元,并减小网格单元大小再次进行三维网格分割,循环本步骤进行碰撞检测;当网格单元达到网格单元大小的下限值时终止迭代,输出待测模型发生碰撞;若迭代过程中未出现碰撞,则输出待测模型不存在碰撞问题。
2.根据权利要求1所述的基于AABB包围盒模型分割和迭代的碰撞检测算法,其特征在于,S2中判断模型包围球之间是否发生碰撞的方法具体包括:
若两个模型包围球的距离≥两个模型包围球的球心到表面的最小距离和的平方,则判定为未发生碰撞,否则判定为发生碰撞。
3.根据权利要求1或2所述的基于AABB包围盒模型分割和迭代的碰撞检测算法,其特征在于,S2中判断模型包围球之间是否发生碰撞的公式如下:
(pos1-pos2)·length2≤(r1+r2)2
其中,pos1与pos2分别为两个待测模型的包围盒形心的位置坐标,pos1-pos2为待测模型2指向待测模型1的向量,length2为由待测模型2指向待测模型1的向量长度的平方。
4.根据权利要求1所述的基于AABB包围盒模型分割和迭代的碰撞检测算法,其特征在于,S3中计算待测模型表面的极值点坐标和鞍部坐标具体包括:
S3-1:设待测模型的表面方程为:
z=f(x,y)
S3-2:求解表面方程在(x0,y0)点处的导数:
其中,h表示一个趋于0的小量;
S3-3:计算Hessian矩阵:
S3-4:求解Hessian矩阵的特征值和特征向量:
其中,λ表示特征值,表示特征向量;
S3-5:根据特征值的正负性判断极值点的类型:当特征值均为正时,为局部极小值;当特征值均为负时,为局部极大值;当特征值一个为正一个为负时,为鞍点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310283532.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种五金交电智能采购系统
- 下一篇:一种超清大靶面热漂移稳定辅助驾驶光学系统