[发明专利]一种基于距离优先和时空相关性的碰撞检测方法有效
申请号: | 201410450418.2 | 申请日: | 2014-09-04 |
公开(公告)号: | CN104200031B | 公开(公告)日: | 2017-11-24 |
发明(设计)人: | 张强;满冉冉;周东生;魏小鹏 | 申请(专利权)人: | 大连大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 大连东方专利代理有限责任公司21212 | 代理人: | 杨威,李洪福 |
地址: | 116622 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于距离优先和时空相关性的碰撞检测方法,其首先对待检测对象构造对应的方向包围盒,构建相应的层次包围盒树;遍历上述层次包围盒树,在对所述包围盒进行遍历的过程中首先将所述包围盒各自对应的根节点作为初始节点进行第一次遍历,记录上述包围盒中的不相交的节点,并将所述节点记录到跟踪表中;当再次进行遍历时直接从跟踪表中记录的不相交的节点进行遍历,且在再次遍历的过程中需要对跟踪表进行基于距离优先和时空相关性的更新策略。本发明首先遍历距离比较近的包围盒,寻找最佳路径,减少遍历包围盒的数目,提高了碰撞检测的效率;并提出跟踪表采用堆来保存,加快了碰撞检测的效率。 | ||
搜索关键词: | 一种 基于 距离 优先 时空 相关性 碰撞 检测 方法 | ||
【主权项】:
一种基于距离优先和时空相关性的碰撞检测方法,其特征在于:ⅰ、首先对待检测对象构造对应的方向包围盒,进而构建相应的层次包围盒树;ⅱ、遍历上述层次包围盒树,检测待检测对象对应的当前的包围盒是否相交,在对所述层次包围盒树进行遍历的过程中:首先将所述层次包围盒树各自对应的根节点作为初始节点进行第一次遍历,在进行第一次遍历时,记录上述层次包围盒树中的不相交的节点,并将所述节点记录到跟踪表中;当再次进行遍历时直接从跟踪表中记录的不相交的节点进行遍历,且在再次遍历的过程中需要对跟踪表进行基于距离优先和时空相关性的更新策略;所述的跟踪表基于距离优先和时空相关性的更新策略包括:跟踪表初始化过程以及跟踪表优化过程:所述的跟踪表初始化过程为:设vT为跟踪表中第一个标记节点,vF为活动对象根节点(1)若vT不空,则判断vT的包围盒和vF的包围盒是否相交,若相交进入(2)判断,若不相交,则进入(5);(2)如果上述两个包围盒相交,则判断vT是否为叶节点,如果是叶节点,则进入(3)判断,否则进入(4);(3)如果vT是叶节点,则遍历vT相应的包围盒树;(4)如果vT不是叶节点,则删除这个节点,向下更新,即对于vT的每个子节点判断前一时刻与vF不相交的内部节点在当前时刻是否与vF相交,若相交,则从跟踪表中插入此节点,产生新的标记节点;(5)提取跟踪表的下一节点vN,判断vN和vT是否为兄弟节点,如果vN和vT是兄弟节点,则判断vN的包围盒和vF的包围盒是否相交;(6)如果vN的包围盒和vF的包围盒不相交,则从跟踪表中删除vT和vN,将vT和vN父节点加入当前位置;(7)vT指向下一节点,直到遍历完成整个跟踪表的更新初始化过程;所述的跟踪表优化过程是指:初始化过程之后,基于距离优先的准则,按照距离由近到远对上述跟踪表中的节点进行排序,其中所述的距离是指系统环境中待检测对象的空间位移,即待检测对象的时空相关性,在进行下次遍历时,根据跟踪表中按照距离进行排序的节点对对应的包围盒进行遍历,并实时更新跟踪表;在进行待测对象精确相交测试之前,即在遍历上述跟踪表之后,找到需要检测对象对应的两个包围盒后,首先利用预处理方法对待检测对象对应的包围盒进行是否相交的初步检测;所述利用预处理方法包括如下步骤:首先通过层次遍历,找到需要检测对象对应的两个包围盒,分别以两个包围盒各自中心点作为球心,分别计算两个包围盒的最远顶点与对应的球心的距离得到两个包围盒各自的大球的半径,记为r1,r2;相应的分别以两个包围盒各自中心点作为球心,分别计算两个包围盒的最近顶点与对应的球心的距离得到两个包围盒各自的小球的半径,记为rmin1,rmin2;其次判断两个包围盒之间的距离re与大球半径之和、小球半径之和的关系:当两个包围盒之间的距离re大于大球半径之和时,则上述包围盒不会相交,返回包围盒相交测试的结果;当上述包围盒之间的距离小于小球半径之和时则上述包围盒一定会相交,同理返回上述包围盒相交测试的结果,不再进行分离轴测试;当两个上述包围盒之间的距离re位于大球半径之和与小球半径之和之间时,利用分离轴的方法进行检测;其中计算两个包围盒的距离re的公式如下,因为包围盒在不同的坐标系下,所以需要将两个包围盒转换到相同坐标系下才能进行计算,因为算法需要计算根号,为了保证算法的正确性,在计算re时加入一定的弥补因子,保证算法的强健性,re=(x1-x2)2+(y1-y2)2+(z1-z2)2+ϵ---(1)]]>其中点(x1,y1,z1)和点(x2,y2,z2)分别表示将两个球转换至同一坐标系下的原点坐标,ε表示弥补因子;将两个球坐标系原点转换至一个坐标系的公式如下:P(2)R(2‑>1)+T(2‑>1)=P(1) (2)其中P(2)表示图中第二个包围盒的坐标原点,R(2‑>1)和T(2‑>1)分别表示由第二个坐标系到第一个坐标系的旋转矩阵和平移矩阵,P(1)表示将第二个坐标系中的P(2)点转换至第一个坐标系中的点。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连大学,未经大连大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410450418.2/,转载请声明来源钻瓜专利网。