[发明专利]基于八叉树结构分割的快速碰撞检测方法有效
申请号: | 202110288962.1 | 申请日: | 2021-03-18 |
公开(公告)号: | CN113001551B | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 王向伟;沙建军;孙英贺;彭锐晖;杨高峰;荣先辉 | 申请(专利权)人: | 青岛九维华盾科技研究院有限公司 |
主分类号: | B25J9/16 | 分类号: | B25J9/16 |
代理公司: | 北京开阳星知识产权代理有限公司 11710 | 代理人: | 姚金金 |
地址: | 266555 山东省青岛市*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 八叉树 结构 分割 快速 碰撞 检测 方法 | ||
本发明属于机器人、虚拟现实、计算机图形学等技术领域,具体涉及一种基于八叉树结构分割的快速碰撞检测方法。先按八叉树结构分割大体积模型的包围盒,再验证小体积模型与八叉树中节点立方体盒的相交性,缩小相交面片计算范围,加速碰撞检测。
技术领域:
本发明属于机器人、虚拟现实、计算机图形学等技术领域,具体涉及一种基于八叉树结构分割的快速碰撞检测方法。
背景技术:
碰撞检测是机器人、虚拟现实、计算机图形学等技术领域的一种关键技术,目标是验证多个三维模型之间的空间关系,避免发生碰撞,保证运动轨迹的可行性。
传统碰撞检测方法主要验证不同三维模型包围盒或面片集之间的相交性。基于包围盒的方法过于粗糙,为实现精确的碰撞检测,一般采用基于面片集的方法。但由于三维模型的复杂性,面片集的规模往往很大,这会导致计算量过于庞大,严重降低了检测速度。
发明内容:
本发明要解决的技术问题是在碰撞检测时,由于三维模型的复杂性,传统的面片相交验证方法计算量过于庞大,存在检测速度过慢的问题。
为解决上述问题,本发明提供一种基于八叉树结构分割的快速碰撞检测方法,先按八叉树结构分割大体积模型的包围盒,再验证小体积模型与八叉树中节点立方体盒的相交性,缩小相交面片计算范围,加速碰撞检测。
为达到上述目的,本发明通过以下技术方案实现:一种基于八叉树结构分割的快速碰撞检测方法,包括以下步骤:
(1)根据模型体积先验知识,将三维模型设定为大模型和小模型;
(2)将大模型的包围盒按八叉树结构分割;
(3)归类大模型三角面片;
(4)判断小模型包围盒是否与大模型八叉树结构的第一层立方体盒相交;
(5)如果步骤(4)判定为否,则停止判断;如果判定为是,则继续判断是否与八个子节点的立方体盒相交,同理,自顶向下逐层判断直至叶节点;
(6)将所有判断为相交的叶节点所存储的三角面片索引存储到一个验证集容器中;
(7)判断小模型是否与验证集容器中的三角面片相交;
(8)场景变换,小模型相对于大模型运动,更新小模型的信息,重复步骤(4)~(7)。
进一步的,所述步骤(2)整个八叉树的深度Depth由大模型立方体盒边长Lo和设定的叶节点边长Lleaf决定:
进一步的,所述步骤(3)的归类方法为:如果三角面片包围球与八叉树中某个叶节点的立方体空间相交,则将该三角面片索引存储在该叶节点容器内。
对于第k个叶节点和索引为index的面片,根据以下公式判断是否相交:
其中,pindex和Rindex表示索引为index的面片的包围球的球心和半径,pk和Lleaf表示第k个叶节点的立方体的中心和边长。
将满足上述条件的全部三角面片索引加入到第k个叶节点容器Vk中:
Vk={indexi,i=1,2,...,Nk};
其中,Nk表示第k个叶节点中的三角面片的索引个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛九维华盾科技研究院有限公司,未经青岛九维华盾科技研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110288962.1/2.html,转载请声明来源钻瓜专利网。