[发明专利]碰撞检测方法、装置、设备及存储介质有效
申请号: | 201911142244.2 | 申请日: | 2019-11-20 |
公开(公告)号: | CN112825199B | 公开(公告)日: | 2023-09-19 |
发明(设计)人: | 王亮;肖鹏;张赛 | 申请(专利权)人: | 北京博超时代软件有限公司 |
主分类号: | G06T17/00 | 分类号: | G06T17/00;G06T19/20 |
代理公司: | 北京市鼎立东审知识产权代理有限公司 11751 | 代理人: | 陈佳妹;贾满意 |
地址: | 100089 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 碰撞 检测 方法 装置 设备 存储 介质 | ||
本申请一种碰撞检测方法,包括:获取场景数据,根据所述场景数据中的各实体数据建立碰撞检测模型;由所建立的两个以上的碰撞检测模型中提取出当前需要进行碰撞检测的第一碰撞模型和第二碰撞模型;由所述第一碰撞模型的首层节点和所述第二碰撞模型的首层节点开始,逐层对所述第一碰撞模型和所述第二碰撞模型中处于同一层节点的包围盒之间的距离进行计算,并根据计算得到的距离结果得到相应的碰撞检测结果。其通过对场景数据中的各实体建立相应的碰撞检测模型,所建立的碰撞检测模型均采用二叉树的数据结构,同时各碰撞检测模型中每层节点所包含的包围盒的数据均量化为整型数据,从而在保证精度的同时降低了内存占用量。
技术领域
本公开涉及3D建模技术领域,尤其涉及一种碰撞检测方法、装置、设备及存储介质。
背景技术
碰撞检测在所有涉及到3D建模的游戏、科研和工作领域都有着无可避免的广泛应用。关于碰撞检测的建模也是各式各样,球形、胶囊体、轴对称包围盒、定向包围盒等。但是目前大多数的碰撞检测引擎在精度达到需求的算法时,往往会导致内存占比较大。
发明内容
有鉴于此,本公开提出了一种碰撞检测方法,可以有效减少内存占用量。
根据本公开的一方面,提供了一种碰撞检测方法,包括:
获取场景数据,根据所述场景数据中的各实体数据建立碰撞检测模型;
其中,所述碰撞检测模型的个数为两个以上,两个以上的所述碰撞检测模型与所述场景数据中的实体相对应;且
所述碰撞检测模型的数据结构为二叉树结构;各所述碰撞检测模型中每层节点中的包围盒中的数据均为整型数据;
由所建立的两个以上的碰撞检测模型中提取出当前需要进行碰撞检测的第一碰撞模型和第二碰撞模型;
由所述第一碰撞模型的首层节点和所述第二碰撞模型的首层节点开始,逐层对所述第一碰撞模型和所述第二碰撞模型中处于同一层节点的包围盒之间的距离进行计算,并根据计算得到的距离结果得到相应的碰撞检测结果。
在一种可能的实现方式中,根据所述场景数据中的各实体数据建立碰撞检测模型,包括:
由所述场景数据中读取各实体数据中的点数据和三角面索引;
基于所述点数据和所述三角面索引,建立各实体所对应的原始碰撞树;
对所述原始碰撞树进行优化,得到所述碰撞检测模型;
其中,对所述原始碰撞树进行优化,包括节点收敛和数据量化中的至少一种:
所述节点收敛,包括:
收敛所述原始碰撞树中的叶节点,以叶节点包含的三角面索引替代在根节点中的指针,并将所述原始碰撞树中的当前叶节点所包含的三角形收录到当前节点的上一层节点中;
所述数据量化,包括:
获取所述原始碰撞树中各层节点的包围盒的数据,通过量化方式将所述原始碰撞树中各层节点的包围盒的数据由浮点型数据转换为整型数据。
在一种可能的实现方式中,基于所述点数据和所述三角面索引,建立各实体所对应的原始碰撞树,包括:
基于所述点数据和所述三角面索引,建立各所述实体的三维模型;
对各所述三维模型的包围盒进行至少一次空间分割,得到多个包围盒,并根据得到的多个所述包围盒建立所述原始碰撞树;
其中,对各所述三维模型的包围盒进行至少一次空间分割,包括:
获取所述三维模型的包围盒在三维坐标系中的最长轴,按照所述最长轴方向对所述三维模型的包围盒进行初级分割,得到多个一级包围盒;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京博超时代软件有限公司,未经北京博超时代软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911142244.2/2.html,转载请声明来源钻瓜专利网。