数据处理方法、装置、计算机及可读存储介质制造方法及图纸

技术编号:37468973 阅读:12 留言:0更新日期:2023-05-06 09:47
本申请实施例公开一种数据处理方法、装置、计算机及可读存储介质,该方法包括:基于目标场景中的第一障碍区域边界构建第一根节点;第一障碍区域边界的各个方向侧的障碍区域边界的数量差值,小于或等于边界拆分阈值;基于第一障碍区域边界将障碍区域边界划分为N个边界集合;若第i个边界集合的边界数量大于树形构建阈值,则基于第i个边界集合的第二障碍区域边界构建第一根节点的第i个子节点,直至得到第一根节点的第i个子树;若第i个边界集合的边界数量小于或等于树形构建阈值,则基于第i个边界集合构建第一根节点的第i个子树;将第一根节点及第一根节点的N个子树构建为障碍空间树。采用本申请,可以提高树形构建效率。可以提高树形构建效率。可以提高树形构建效率。

【技术实现步骤摘要】
数据处理方法、装置、计算机及可读存储介质


[0001]本申请涉及计算机
,尤其涉及一种数据处理方法、装置、计算机及可读存储介质。

技术介绍

[0002]现在游戏的发展趋势是构建开放大世界,玩家在开放大世界中的交互会影响场景的地形,为了更好地控制虚拟对象的移动,就需要对虚拟对象进行碰撞避免寻路。目前,一般是通过导航网格将整体的空间(可以认为是目标场景)切分为多个凸多边形,相邻的凸多边形之间通过共享边进行连接,多个凸多边形中包括可通行区域及不可通行区域,相当于组成目标场景的场景地图,进一步,基于导航网格将凸多边形构建为树形结构,而目前直接通过凸多边形构建树形结构,需要不断对未进行处理的区域边界进行遍历,查找最优区域边界,基于最优区域边界构建树形结构,使得树形结构的构建时间复杂度较大,从而导致树形构建效率低下。

技术实现思路

[0003]本申请实施例提供了一种数据处理方法、装置、计算机及可读存储介质,可以提高树形构建效率。
[0004]本申请实施例一方面提供了一种数据处理方法,该方法包括:获取目标场景所包括的障碍区域的障碍区域边界,遍历障碍区域边界,当查找到第一障碍区域边界时,基于第一障碍区域边界构建第一根节点;位于第一障碍区域边界的各个方向侧的障碍区域边界之间的数量差值,小于或等于边界拆分阈值;基于第一障碍区域边界的N个方向侧,将障碍区域边界划分为N个边界集合;N为正整数,每个边界集合中所包括的障碍区域边界位于第一障碍区域边界的同一个方向侧;若第i个边界集合所包括的障碍区域边界的边界数量大于树形构建阈值,则遍历第i个边界集合,查找第i个边界集合中的第二障碍区域边界,基于第i个边界集合中的第二障碍区域边界构建第一根节点的第i个子节点,直至得到第一根节点的第i个子树;i为小于或等于N的正整数;若第i个边界集合所包括的障碍区域边界的边界数量小于或等于树形构建阈值,则基于第i个边界集合构建第一根节点的第i个子节点,将第一根节点的第i个子节点确定为第一根节点的第i个子树;当得到第一根节点的N个子树时,将第一根节点及第一根节点的N个子树构建为障碍空间树;障碍空间树用于对虚拟对象进行碰撞检测。
[0005]本申请实施例一方面提供了一种数据处理装置,该装置包括:边界获取模块,用于获取目标场景所包括的障碍区域的障碍区域边界;根确定模块,用于遍历障碍区域边界,当查找到第一障碍区域边界时,基于第一障碍区域边界构建第一根节点;位于第一障碍区域边界的各个方向侧的障碍区域边界之间的
数量差值,小于或等于边界拆分阈值;边界划分模块,用于基于第一障碍区域边界的N个方向侧,将障碍区域边界划分为N个边界集合;N为正整数,每个边界集合中所包括的障碍区域边界位于第一障碍区域边界的同一个方向侧;集合遍历模块,用于若第i个边界集合所包括的障碍区域边界的边界数量大于树形构建阈值,则遍历第i个边界集合,查找第i个边界集合中的第二障碍区域边界,基于第i个边界集合中的第二障碍区域边界构建第一根节点的第i个子节点,直至得到第一根节点的第i个子树;i为小于或等于N的正整数;叶子确定模块,用于若第i个边界集合所包括的障碍区域边界的边界数量小于或等于树形构建阈值,则基于第i个边界集合构建第一根节点的第i个子节点,将第一根节点的第i个子节点确定为第一根节点的第i个子树;树形构建模块,用于当得到第一根节点的N个子树时,将第一根节点及第一根节点的N个子树构建为障碍空间树;障碍空间树用于对虚拟对象进行碰撞检测。
[0006]其中,该边界获取模块,包括:区域获取单元,用于获取目标场景中所包括的障碍区域;第一切分单元,用于若障碍区域为规则多边形,则基于障碍区域的转折点,将障碍区域切分为障碍区域边界;第二切分单元,用于若障碍区域为无转折区域,则根据障碍区域的区域形状,获取障碍区域的区域切线多边形,基于区域切线多边形的转折点,将障碍区域切分为障碍区域边界。
[0007]其中,N个方向侧包括第一方向侧及第二方向侧;该边界划分模块,包括:边界分割单元,用于以第一障碍区域边界所在的直线作为划分界限,将障碍区域边界C分割为障碍区域边界C1及障碍区域边界C2;障碍区域边界C是指与第一障碍区域边界所在的直线相交的障碍区域边界;障碍区域边界C1是指障碍区域边界C位于第一障碍区域边界的第一方向侧的部分,障碍区域边界C2是指障碍区域边界C位于第一障碍区域边界的第二方向侧的部分;集合确定单元,用于将障碍区域边界A与障碍区域边界C1划分为第一边界集合,将障碍区域边界B与障碍区域边界C2划分为第二边界集合;障碍区域边界A是指位于第一障碍区域边界的第一方向侧的障碍区域边界;障碍区域边界B是指位于第一障碍区域边界的第二方向侧的障碍区域边界。
[0008]其中,该集合遍历模块,包括:数量获取单元,用于遍历第s层的第j个边界子集,获取第s层的第j个边界子集所包括的障碍区域边界的子集边界数量;s为正整数,j为正整数,当s为2时,第s层的第j个边界子集,是指第i个边界集合;递归遍历单元,用于若子集边界数量大于树形构建阈值,则从第s层的第j个边界子集中查找第二障碍区域边界,基于第s层的第j个边界子集中的第二障碍区域边界,构建第s层的第j个边界子集所属的边界子集在第(s

1)层中对应的节点的子节点,基于第s层的第j个边界子集中的第二障碍区域边界,将第s层的第j个边界子集划分为N个边界子集,对s进行递增处理,针对N个边界子集,返回执行获取第s层的第j个边界子集所包括的障碍区域
边界的子集边界数量的过程;位于第二障碍区域边界的各个方向侧的障碍区域边界之间的数量差值,小于或等于边界拆分阈值;叶子构建单元,用于若子集边界数量小于或等于树形构建阈值,则基于第s层的第j个边界子集,构建第s层的第j个边界子集所属的边界子集在第(s

1)层中对应的节点的子节点,当第i个边界集合中所包括的障碍区域边界全部被构建为节点时,得到第一根节点的第i个子树;第s层的第j个边界子集所对应的子节点为叶子节点。
[0009]其中,该装置还包括:碰撞确定模块,用于遍历障碍空间树中的节点所对应的障碍区域边界,获取障碍区域边界与第一虚拟对象之间的边界距离,将边界距离小于或等于第一虚拟对象的碰撞距离的障碍区域边界,确定为第一虚拟对象的碰撞区域边界;速度预测模块,用于基于第一虚拟对象的第一移动速度及碰撞区域边界,预测第一虚拟对象的更新移动速度;移动控制模块,用于根据更新移动速度控制第一虚拟对象进行移动。
[0010]其中,该碰撞确定模块,包括:投影获取单元,用于遍历障碍空间树中的节点所对应的障碍区域边界,获取障碍空间树中的第一根节点对应的障碍区域边界所在的直线与第一虚拟对象之间的第一投影距离;边界获取单元,用于若第一投影距离小于或等于碰撞距离,则获取第一虚拟对象到第一根节点对应的障碍区域边界的边界距离;子树遍历单元,用于若第一根节点对应的障碍区域边界的边界距离小于或等于碰撞距离,则将第一根节点对应的障碍区域边界确定为第一虚拟对象的碰撞区域边界,查找第一根节点的N个子树中,与第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:获取目标场景所包括的障碍区域的障碍区域边界,遍历所述障碍区域边界,当查找到第一障碍区域边界时,基于所述第一障碍区域边界构建第一根节点;位于所述第一障碍区域边界的各个方向侧的障碍区域边界之间的数量差值,小于或等于边界拆分阈值;基于所述第一障碍区域边界的N个方向侧,将所述障碍区域边界划分为N个边界集合;N为正整数,每个边界集合中所包括的障碍区域边界位于所述第一障碍区域边界的同一个方向侧;若第i个边界集合所包括的障碍区域边界的边界数量大于树形构建阈值,则遍历所述第i个边界集合,查找所述第i个边界集合中的第二障碍区域边界,基于所述第i个边界集合中的第二障碍区域边界构建所述第一根节点的第i个子节点,直至得到所述第一根节点的第i个子树;i为小于或等于N的正整数;若第i个边界集合所包括的障碍区域边界的边界数量小于或等于树形构建阈值,则基于所述第i个边界集合构建所述第一根节点的第i个子节点,将所述第一根节点的第i个子节点确定为所述第一根节点的第i个子树;当得到所述第一根节点的N个子树时,将所述第一根节点及所述第一根节点的N个子树构建为障碍空间树;所述障碍空间树用于对虚拟对象进行碰撞检测。2.如权利要求1所述的方法,其特征在于,所述获取目标场景所包括的障碍区域的障碍区域边界,包括:获取目标场景中所包括的障碍区域,若所述障碍区域为规则多边形,则基于所述障碍区域的转折点,将所述障碍区域切分为障碍区域边界;若所述障碍区域为无转折区域,则根据所述障碍区域的区域形状,获取所述障碍区域的区域切线多边形,基于所述区域切线多边形的转折点,将所述障碍区域切分为障碍区域边界。3.如权利要求1所述的方法,其特征在于,所述N个方向侧包括第一方向侧及第二方向侧;所述基于所述第一障碍区域边界的N个方向侧,将所述障碍区域边界划分为N个边界集合,包括:以所述第一障碍区域边界所在的直线作为划分界限,将障碍区域边界C分割为障碍区域边界C1及障碍区域边界C2;所述障碍区域边界C是指与所述第一障碍区域边界所在的直线相交的障碍区域边界;所述障碍区域边界C1是指所述障碍区域边界C位于所述第一障碍区域边界的所述第一方向侧的部分,所述障碍区域边界C2是指所述障碍区域边界C位于所述第一障碍区域边界的所述第二方向侧的部分;将障碍区域边界A与所述障碍区域边界C1划分为第一边界集合,将障碍区域边界B与所述障碍区域边界C2划分为第二边界集合;所述障碍区域边界A是指位于所述第一障碍区域边界的所述第一方向侧的障碍区域边界;所述障碍区域边界B是指位于所述第一障碍区域边界的所述第二方向侧的障碍区域边界。4.如权利要求1所述的方法,其特征在于,所述遍历所述第i个边界集合,查找所述第i个边界集合中的第二障碍区域边界,基于所述第i个边界集合中的第二障碍区域边界构建所述第一根节点的第i个子节点,直至得到所述第一根节点的第i个子树,包括:遍历所述第s层的第j个边界子集,获取所述第s层的第j个边界子集所包括的障碍区域
边界的子集边界数量;s为正整数,j为正整数,当s为2时,所述第s层的第j个边界子集,是指所述第i个边界集合;若所述子集边界数量大于所述树形构建阈值,则从所述第s层的第j个边界子集中查找第二障碍区域边界,基于所述第s层的第j个边界子集中的第二障碍区域边界,构建所述第s层的第j个边界子集所属的边界子集在第(s

1)层中对应的节点的子节点,基于所述第s层的第j个边界子集中的第二障碍区域边界,将所述第s层的第j个边界子集划分为N个边界子集,对s进行递增处理,针对所述N个边界子集,返回执行所述获取所述第s层的第j个边界子集所包括的障碍区域边界的子集边界数量的过程;位于所述第二障碍区域边界的各个方向侧的障碍区域边界之间的数量差值,小于或等于边界拆分阈值;若所述子集边界数量小于或等于所述树形构建阈值,则基于所述第s层的第j个边界子集,构建所述第s层的第j个边界子集所属的边界子集在第(s

1)层中对应的节点的子节点,当所述第i个边界集合中所包括的障碍区域边界全部被构建为节点时,得到所述第一根节点的第i个子树;所述第s层的第j个边界子集所对应的子节点为叶子节点。5.如权利要求1所述的方法,其特征在于,所述方法还包括:遍历所述障碍空间树中的节点所对应的障碍区域边界,获取所述障碍区域边界与第一虚拟对象之间的边界距离,将所述边界距离小于或等于所述第一虚拟对象的碰撞距离的障碍区域边界,确定为所述第一虚拟对象的碰撞区域边界;基于所述第一虚拟对象的第一移动速度及所述碰撞区域边界,预测所述第一虚拟对象的更新移动速度;根据所述更新移动速度控制所述第一虚拟对象进行移动。6.如权利要求5所述的方法,其特征在于,所述遍历所述障碍空间树中的节点所对应的障碍区域边界,获取所述障碍区域边界与第一虚拟对象之间的边界距离,将所述边界距离小于或等于所述第一虚拟对象的碰撞距离的障碍区域边界,确定为所述第一虚拟对象的碰撞区域边界,包括:遍历所述障碍空间树中的节点所对应的障碍区域边界,获取所述障碍空间树中的第一根节点对应的障碍区域边界所在的直线与所述第一虚拟对象之间的第一投影距离;若所述第一投影距离小于或等于所述碰撞距离,则获取所述第一虚拟对象到所述第一根节点对应的障碍区域边界的边界距离;若所述第一根节点对应的障碍区域边界的边界距离小于或等于所述碰撞距离,则将所述第一根节点对应的障碍区域边界确定为所述第一虚拟对象的碰撞区域边界,查找所述第一根节点的N个子树中,与所述第一虚拟对象之间的边界距离小于或等于所述碰撞距离的碰撞区域边界,直至得到所述目标场景中所包括的碰撞区域边界;若所述第一根节点对应的障碍区域边界的边界距离大于所述碰撞距离,则查找所述第一根节点的N个子树中,与所述第一虚拟对象之间的边界距离小于或等于所述碰撞距离的碰撞区域边界,直至得到所述目标场景中所包括的碰撞区域边界。7.如权利要求6所述的方法,其特征在于,所述方法还包括:若所述第一投影距离大于所述碰撞距离,则获取所述第一虚拟对象相对于所述第一根节点对应的障碍区域边界所在的直线的相对位置;遍历在所述第一根节点的N个子树中,所述相对位置所对应的目标子树,直至查找到目
标节点;所述目标节点对应的障碍区域边界所在的直线与所述第一虚拟对象之间的第二投影距离,小于或等于所述碰撞距离;基于所述目标节点对应的障碍区域边界与所述第一虚拟对象之间的边界距离,以及所述目标节点的子树中节点对应的障碍区域边界与所述第一虚拟对象之间的边界距...

【专利技术属性】
技术研发人员:黄慧良
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1