实时虚拟场景中碰撞体之间碰撞探测的方法和装置的制造方法_4

文档序号:9728102阅读:来源:国知局
需移 出较短的距离即可越过拐角,缩短了移出的距离,在移动速度相同的情况下,提高了移动效 率,且因是平滑的移动,使得操作更流畅。
[0106] 图16为一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图。如 图16所示,一种实时虚拟场景中碰撞体之间碰撞探测的装置,除了包括距离获取模块1510、 扩展模块1520、生成模块1530、取值模块1540、碰撞探测模块1550,还包括切割模块1560。
[0107] 切割模块1560用于将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成 扩展外边缘包围盒之后,将该扩展外边缘包围盒的四个角分别添加斜面。
[0108] 其中,该第一二叉空间分割碰撞体中与该扩展外边缘包围盒的斜面对应的平面交 叉线到该斜面的距离为该圆柱碰撞体的半径。
[0109] 通过将扩展外边缘包围盒的四角添加斜面,再得到扩展外边缘包围盒与第二BSP 碰撞体的交集,交集也带有斜面,采用斜面模拟圆角,可进一步方便圆柱碰撞体移过拐角, 进一步缩短了距离,提高了移动效率。
[0110] 图17为另一个实施例中实时虚拟场景中碰撞体之间碰撞探测的装置的结构框图。 如图17所示,一种实时虚拟场景中碰撞体之间碰撞探测的装置,除了包括距离获取模块 1510、扩展模块1520、生成模块1530、取值模块1540、碰撞探测模块1550,还包括分割模块 1570〇
[0111 ]分割模块1570用于将该第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成 扩展外边缘包围盒之后,将该扩展外边缘包围盒的四个角分别添加圆弧面。
[0112] 其中,该第一二叉空间分割碰撞体中与该扩展外边缘包围盒的圆弧面对应的平面 交叉线到该圆弧面的最短距离为该圆柱碰撞体的半径。
[0113] 通过将扩展外边缘包围盒的四角添加圆弧面,再得到扩展外边缘包围盒与第二 BSP碰撞体的交集,交集也带有圆弧面,采用圆弧面更贴合圆柱碰撞体,可进一步方便圆柱 碰撞体移过拐角,进一步缩短了距离,提高了移动效率。
[0114] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取 存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介 质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
[0115] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1. 一种实时虚拟场景中碰撞体之间碰撞探测的方法,包括以下步骤: 获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面 的最短距离; 根据所述最短距离扩展所述第一二叉空间分割碰撞体的各个平面形成第二二叉空间 分割碰撞体; 将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒; 将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集; 将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集 得到的结果进行碰撞探测。2. 根据权利要求1所述的方法,其特征在于,将所述第一二叉空间分割碰撞体的轴对齐 包围盒进行扩展生成扩展外边缘包围盒的步骤之后,所述方法还包括: 将所述扩展外边缘包围盒的四个角分别添加斜面。3. 根据权利要求2所述的方法,其特征在于,所述第一二叉空间分割碰撞体中与所述扩 展外边缘包围盒的斜面对应的平面交叉线到所述斜面的距离为所述圆柱碰撞体的半径。4. 根据权利要求1所述的方法,其特征在于,将所述第一二叉空间分割碰撞体的轴对齐 包围盒进行扩展生成扩展外边缘包围盒的步骤之后,所述方法还包括: 将所述扩展外边缘包围盒的四个角分别添加圆弧面。5. 根据权利要求4所述的方法,其特征在于,所述第一二叉空间分割碰撞体中与所述扩 展外边缘包围盒的圆弧面对应的平面交叉线到所述圆弧面的最短距离为所述圆柱碰撞体 的半径。6. 根据权利要求1所述的方法,其特征在于,所述虚拟对象所对应的圆柱碰撞体到第一 二叉空间分割碰撞体各个平面的最短距离为所述虚拟对象所对应的圆柱碰撞体接触第一 二叉空间分割碰撞体的平面时,所述圆柱碰撞体的中心点到接触的所述第一二叉空间分割 碰撞体的平面的距离。7. 根据权利要求1所述的方法,其特征在于,所述获取虚拟场景中虚拟对象所对应的圆 柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离的步骤包括: 若虚拟对象所对应的圆柱碰撞体的轴向与第一二叉空间分割碰撞体的平面平行,且第 一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一条侧边线,则虚拟对象所对应的圆柱碰 撞体到所述第一二叉空间分割碰撞体的平面的最短距离为圆柱碰撞体的半径; 若第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一个点,则获取并根据圆柱碰撞 体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞 体到第一二叉空间分割碰撞体的平面的最短距离。8. 根据权利要求1所述的方法,其特征在于,将所述第一二叉空间分割碰撞体的轴对齐 包围盒进行扩展生成扩展外边缘包围盒的步骤包括: 将所述第一二叉空间分割碰撞体的轴对齐包围盒以圆柱碰撞体的中心点为基准扫描 整个所述第一二叉空间分割碰撞体的轴对齐包围盒,生成扩展外边缘包围盒。9. 一种实时虚拟场景中碰撞体之间碰撞探测的装置,其特征在于,包括: 距离获取模块,用于获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分 割碰撞体各个平面的最短距离; 扩展模块,用于根据所述最短距离扩展所述第一二叉空间分割碰撞体的各个平面形成 第二二叉空间分割碰撞体; 生成模块,用于将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外 边缘包围盒; 取值模块,用于将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交 集; 碰撞探测模块,用于将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间 分割碰撞体取交集得到的结果进行碰撞探测。10. 根据权利要求9所述的装置,其特征在于,所述装置还包括: 切割模块,用于将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外 边缘包围盒之后,将所述扩展外边缘包围盒的四个角分别添加斜面。11. 根据权利要求10所述的装置,其特征在于,所述第一二叉空间分割碰撞体中与所述 扩展外边缘包围盒的斜面对应的平面交叉线到所述斜面的距离为所述圆柱碰撞体的半径。12. 根据权利要求9所述的装置,其特征在于,所述装置还包括: 分割模块,用于将所述第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外 边缘包围盒之后,将所述扩展外边缘包围盒的四个角分别添加圆弧面。13. 根据权利要求12所述的装置,其特征在于,所述第一二叉空间分割碰撞体中与所述 扩展外边缘包围盒的圆弧面对应的平面交叉线到所述圆弧面的最短距离为所述圆柱碰撞 体的半径。14. 根据权利要求9所述的装置,其特征在于,所述虚拟对象所对应的圆柱碰撞体到第 一二叉空间分割碰撞体各个平面的最短距离为所述虚拟对象所对应的圆柱碰撞体接触第 一二叉空间分割碰撞体的平面时,所述圆柱碰撞体的中心点到接触的所述第一二叉空间分 割碰撞体的平面的距离。15. 根据权利要求9所述的装置,其特征在于,所述距离获取模块还用于若虚拟对象所 对应的圆柱碰撞体的轴向与第一二叉空间分割碰撞体的平面平行,且第一二叉空间分割碰 撞体的平面紧贴圆柱碰撞体的一条侧边线,则虚拟对象所对应的圆柱碰撞体到所述第一二 叉空间分割碰撞体的平面的最短距离为圆柱碰撞体的半径;以及 若第一二叉空间分割碰撞体的平面紧贴圆柱碰撞体的一个点,则获取并根据圆柱碰撞 体的半径、半高及第一二叉空间分割碰撞体的平面的法向量的XYZ坐标分量,得到圆柱碰撞 体到第一二叉空间分割碰撞体的平面的最短距离。16. 根据权利要求9所述的装置,其特征在于,所述生成模块还用于将所述第一二叉空 间分割碰撞体的轴对齐包围盒以圆柱碰撞体的中心点为基准扫描整个所述第一二叉空间 分割碰撞体的轴对齐包围盒,生成扩展外边缘包围盒。
【专利摘要】本发明涉及一种实时虚拟场景中碰撞体之间碰撞探测的方法和装置。所述方法包括以下步骤:获取虚拟场景中虚拟对象所对应的圆柱碰撞体到第一二叉空间分割碰撞体各个平面的最短距离;根据最短距离扩展第一二叉空间分割碰撞体的各个平面形成第二二叉空间分割碰撞体;将第一二叉空间分割碰撞体的轴对齐包围盒进行扩展生成扩展外边缘包围盒;将所述生成的扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集;将所述圆柱碰撞体与所述扩展外边缘包围盒与所述第二二叉空间分割碰撞体取交集得到的结果进行碰撞探测。上述实时虚拟场景中碰撞体之间碰撞探测的方法和装置,只需移出较短的距离即可越过拐角,提高了移动效率,且平滑越过,使得操作更流畅。
【IPC分类】G06T19/00, G06T7/00
【公开号】CN105488851
【申请号】CN201510860807
【发明人】匡西尼
【申请人】腾讯科技(深圳)有限公司
【公开日】2016年4月13日
【申请日】2015年11月30日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1