CN112667648A - 地形动态更新方法、装置、电子设备和可读存储介质 - Google Patents
地形动态更新方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN112667648A CN112667648A CN202011515453.XA CN202011515453A CN112667648A CN 112667648 A CN112667648 A CN 112667648A CN 202011515453 A CN202011515453 A CN 202011515453A CN 112667648 A CN112667648 A CN 112667648A
- Authority
- CN
- China
- Prior art keywords
- node
- dynamic
- quadtree
- nodes
- intersected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 43
- 230000004888 barrier function Effects 0.000 claims description 177
- 238000000926 separation method Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 abstract description 22
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种地形动态更新方法、装置、电子设备和可读存储介质,通过在地形图上添加动态阻挡物时,首先确定与动态阻挡物相交的目标四叉树节点,再将目标四叉树节点划分为多个子节点,在此基础上,确定与动态阻挡物相交的目标子节点,再将目标子节点划分为多个预设最小单位节点,从而得到更新后的地形图。本方案中,通过检测与动态阻挡物相交的四叉树节点以及子节点的方式,进行相应四叉树节点和子节点的划分,着重对与动态阻挡物相交的区域进行局部处理以更新地形图,在保障后续寻路准确性的基础上,可降低处理量、提高处理效率。
Description
技术领域
本申请涉及终端游戏应用技术领域,具体而言,涉及一种地形动态更新方法、装置、电子设备和可读存储介质。
背景技术
四叉树是一种有效描述地形数据的树形结构,其中,根节点为最大的正方形,子节点平均划分父节点区域,每个子节点最多只有四个分支,递归分解,一直分割到最小单位。
在游戏应用中存在这样的场景,需要在地形中动态添加或删除阻挡物体,例如动态添加一棵树或一堵墙等物体。这时就需要更新地形数据,以保证后续碰撞和寻路的正确性。目前现有技术中的处理方式是,在地形图中出现动态阻挡物体时,即根据新的地形数据整体重新进行四叉树分割。而游戏场景中地形往往较大,这种方式将导致较大的处理量,存在耗时长、效率低的问题。
发明内容
本申请的目的包括,例如,提供了一种地形动态更新方法、装置、电子设备和可读存储介质,其能够保障后续寻路准确性的基础上,降低处理量、提高处理效率。
本申请的实施例可以这样实现:
第一方面,本申请提供一种地形动态更新方法,所述方法包括:
在地形图上添加动态阻挡物时,确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点;
将各所述目标四叉树节点划分为多个子节点,并确定出与所述动态阻挡物相交的目标子节点;
将各所述目标子节点划分为多个预设最小单位节点,得到更新后的地形图。
在可选的实施方式中,所述确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点的步骤,包括:
构建所述地形图包含的各个四叉树节点的包围盒以及所述动态阻挡物的包围盒;
针对各所述四叉树节点,检测是否存在一分离轴使得该四叉树节点的包围盒和所述动态阻挡物的包围盒在该分离轴上的投影不重叠,若存在,则确定该四叉树节点与所述动态阻挡物不相交,若不存在,则确定该四叉树节点与所述动态阻挡物相交。
在可选的实施方式中,所述将各所述目标四叉树节点划分为多个子节点的步骤,包括:
按四叉树划分规则对各所述目标四叉树节点进行第一次划分,得到多个节点;
按四叉树划分规则对各个节点进行第二次划分,得到多个子节点。
在可选的实施方式中,所述方法还包括:
在检测到对所述地形图中的动态阻挡物的删除操作时,获取与待删除的动态阻挡物相交的四叉树节点;
获取所述四叉树节点包含的子节点中与所述动态阻挡物相交的子节点;
将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
在可选的实施方式中,所述将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除的步骤,包括:
检测与待删除的动态阻挡物相交的子节点是否与其他动态阻挡物相交;
若所述子节点与其他动态阻挡物相交,则保留所述子节点包含的预设最小单位节点;
若所述子节点未与其他动态阻挡物相交,则检测与待删除的动态阻挡物相交的四叉树节点是否与其他动态阻挡物相交;
若所述四叉树节点与其他动态阻挡物相交,则保留所述四叉树节点包含的子节点,否则,将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
在可选的实施方式中,所述方法还包括:
获取路径规划信息中的起点和终点;
基于更新后的地形图,规划得到所述起点至所述终点之间的寻路路径。
在可选的实施方式中,所述基于更新后的地形图,规划得到所述起点至所述终点之间的寻路路径的步骤,包括:
从所述起点至所述终点的方向上,按更新后的地形图中包含的四叉树节点、子节点以及预设最小单位节点,规划得到所述起点至所述终点之间的寻路路径。
第二方面,本申请提供一种地形动态更新装置,所述装置包括:
确定模块,用于在地形图上添加动态阻挡物时,确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点;
第一划分模块,用于将各所述目标四叉树节点划分为多个子节点,并确定出与所述动态阻挡物相交的目标子节点;
第二划分模块,用于将各所述目标子节点划分为多个预设最小单位节点,得到更新后的地形图。
第三方面,本申请提供一种电子设备,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行前述实施方式中任意一项所述的地形动态更新方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现前述实施方式中任意一项所述的地形动态更新方法。
本申请实施例的有益效果包括,例如:
本申请提供一种地形动态更新方法、装置、电子设备和可读存储介质,通过在地形图上添加动态阻挡物时,首先确定与动态阻挡物相交的目标四叉树节点,再将目标四叉树节点划分为多个子节点,在此基础上,确定与动态阻挡物相交的目标子节点,再将目标子节点划分为多个预设最小单位节点,从而得到更新后的地形图。本方案中,通过检测与动态阻挡物相交的四叉树节点以及子节点的方式,进行相应四叉树节点和子节点的划分,着重对与动态阻挡物相交的区域进行局部处理以更新地形图,在保障后续寻路准确性的基础上,可降低处理量、提高处理效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的地形动态更新方法的流程图;
图2为本申请实施例提供的地形图的示意图;
图3为本申请实施例提供的地形动态更新方法中,检测相交四叉树节点的方法的流程图;
图4为本申请实施例提供的地形动态更新方法中,寻路方法的流程图;
图5为本申请实施例提供的地形动态更新方法中,节点删除方法的流程图;
图6为本申请实施例提供的地形动态更新方法中,节点删除方法的另一流程图;
图7为本申请实施例提供的地形动态更新装置的功能模块框图;
图8为本申请实施例提供的电子设备的结构框图。
图标:110-地形动态更新装置;111-确定模块;112-第一划分模块;113-第二划分模块;120-存储器;130-处理器;140-通信单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
图1示出了本申请实施例提供的地形动态更新方法的流程示意图,本申请所提供的地形动态更新方法可应用于终端设备,例如移动设备、计算机设备等,由终端设备予以实现。应当理解,在其它实施例中,本实施例所述的地形动态更新方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该地形动态更新方法的详细步骤介绍如下。
步骤S110,在地形图上添加动态阻挡物时,确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点。
步骤S120,将各所述目标四叉树节点划分为多个子节点,并确定出与所述动态阻挡物相交的目标子节点。
步骤S130,将各所述目标子节点划分为多个预设最小单位节点,得到更新后的地形图。
在游戏场景中,经常需要基于地形图为世界生成寻路导航,以方便场景中的游戏角色基于导航进行移动。但是,有时基于场景变换需求,可能需要在地形中添加动态阻挡物,例如,一棵树、一堵墙等,此时,需要从导航里抠出一块区域,该区域不能作为寻路路径。目前的处理方式,是基于添加动态阻挡物后的地形重新进行四叉树的划分。由于游戏场景中的地形往往很大,例如地形大小可以为8192米*8192米。因此,目前的重新进行四叉树划分的方式将导致大量的工作量,效率很低。
本实施例中,为了解决上述现有技术中存在的问题,采用局部区域处理的方式,以在保障后续寻路准确性的基础上,降低地形更新的处理量。
本实施例中,地形图基于四叉树进行划分,四叉树是一种树状数据结构,在每一个节点上会有四个子区块。在地形上添加动态阻挡物后,动态阻挡物可能与地形中多个四叉树节点相交。例如,如图2所示,其中,中间的灰色方框部分表示添加的动态阻挡物,底部最大的方框可表示四叉树节点区块。
本实施例中,在确定与动态阻挡物相交的四叉树节点时,可以基于OBB(OrientedBounding Box)碰撞检测以进行确定。
与动态阻挡物相交的四叉树节点,表明该动态阻挡物将对该四叉树节点对应的区域进行部分或全部的阻挡,将影响该区域的寻路。而一般性地,该动态阻挡物将对该四叉树节点对应的区域进行部分遮挡。因此,在确定出与动态阻挡物相交的目标四叉树节点后,再将目标四叉树节点划分为多个子节点。
在划分得到的多个子节点中,动态阻挡物将对其中的部分子节点造成阻挡,因此,本实施例中,可采用OBB碰撞检测以确定其中与动态阻挡物相交的目标子节点。在确定出目标子节点后,为了进一步提高后续寻路避开动态阻挡物的精确性,可将目标子节点划分为多个预设最小单位节点,其中,所述的预设最小单位节点可为长宽分别为1的单位节点。
如此,本实施例所提供的地形动态更新方案,通过检测与动态阻挡物相交的四叉树节点以及子节点的方式,进行相应四叉树节点和子节点的划分,着重对与动态阻挡物相交的区域进行局部处理以更新地形图,在保障后续寻路准确性的基础上,实现降低处理量、提高处理效率的目的。
请参阅图3,本实施例中,上述确定与动态阻挡物相交的目标四叉树节点的步骤可通过以下方式实现:
步骤S111,构建所述地形图包含的各个四叉树节点的包围盒以及所述动态阻挡物的包围盒。
步骤S112,针对各所述四叉树节点,检测是否存在一分离轴使得该四叉树节点的包围盒和所述动态阻挡物的包围盒在该分离轴上的投影不重叠,若存在,则执行以下步骤S113,若不存在,则执行以下步骤S114。
步骤S113,确定该四叉树节点与所述动态阻挡物不相交。
步骤S114,确定该四叉树节点与所述动态阻挡物相交。
本实施例中,基于OBB碰撞检测的方式检测动态阻挡物与四叉树节点之间的相交情况。在三维游戏场景中,无论是动态阻挡物还是地形,均是存在于三维空间中的。在检测两者是否相交时,需要通过投影的方式,基于投影情况来确定。
若要对四叉树节点和动态阻挡物进行投影,首先可分别构建包围四叉树节点和动态阻挡物的三维模型,即OBB包围盒。构建的包围盒包围在四叉树节点或动态阻挡物的外围,可以随着四叉树节点或动态阻挡物的平移或旋转,而相应地进行平移或旋转。本实施例中,构建的动态阻挡物的包围盒可以是正方体或长方体形状。此外,动态阻挡物也可以是呈球体的物体形状。
对于呈现为凸形状的四叉树节点和动态阻挡物,可以通过寻找在四叉树节点的包围盒和动态阻挡物的包围盒之间是否存在一分离轴,而该分离轴可使得四叉树节点的包围盒和动态阻挡物的包围盒在该分离轴上的投影不重叠。如果存在这样的分离轴,可以确定该四叉树节点与动态阻挡物不相交。否则,可以确定该四叉树节点与动态阻挡物相交。
或者,作为另一种实现方式,在构建四叉树节点和动态阻挡物的包围盒之后,可以寻找是否存在一直线,该直线可以使得四叉树节点的包围盒和动态阻挡物的包围盒分别位于该直线的两侧,即两包围盒不重叠。如果存在这样的直线,可确定该四叉树节点和动态阻挡物不相交,否则,可确定该四叉树节点和动态阻挡物相交。
现有技术中,基于四叉树原理进行节点划分时,一般性地一个节点上只有四个子区块,即未遇到障碍物的情况下,一个节点仅划分为四个子节点。
而本实施例中,在确定出与动态阻挡物相交的目标四叉树节点之后,考虑到场景中可能存在多个动态阻挡物的情况,在对目标四叉树节点进行划分时,首先可按四叉树划分规则对各目标四叉树节点进行第一次划分,得到多个节点,在此基础上,按四叉树划分规则对各个节点进行第二次划分,得到多个子节点。
例如,可参阅图2中所示,在对目标四叉树节点进行划分时,可以直接划分为图2中所示的数量为16的子节点,并且,划分得到的各个子节点相同。
采用以上方式进行子节点的划分,可以降低在场景中可能存在多个动态阻挡物的情形下后续还需重新划分所存在的增加工作量的缺陷。
由上述可知,场景中可能存在多个动态阻挡物,因此,在针对某个动态阻挡物而对地形进行更新时,可能在该动态阻挡物之间已存在其他的动态阻挡物,并且,在此之前针对该其他的动态阻挡物已对地形进行更新。
因此,考虑到上述存在多个动态阻挡物的情形,在本实施例中,在检测到地形中添加动态阻挡物时,首先,可确定与该动态阻挡物相交的目标四叉树节点。此时,可先判断该目标四叉树节点是否已经被划分,如果已经被划分,则表明该目标四叉树节点已与其他的动态阻挡物相交。这种情形下,无需对该目标四叉树节点进行划分,可直接获取该目标四叉树节点已划分得到的子节点。
在此基础上,可确定上述子节点中与动态阻挡物相交的目标子节点,同样地,可先检测该目标子节点是否已经被划分,如果已经被划分,表明该目标子节点已与其他的动态阻挡物相交。此时,则无需对该目标子节点划分,直接获得该目标子节点划分得到的预设最小单位节点。
通过上述方式,可在场景中存在多个动态阻挡物的情况下,避免针对每一动态阻挡物均进行划分的工作,可以避免一些不必要的工作量,降低处理负担。
在地形中添加动态阻挡物并按以上方式对地形进行更新后,需要在更新后的地形上导航规划。通常在游戏场景中,会在离线时进行寻路得到导航数据,当游戏运行时,基于导航数据进行快速寻路。
请参阅图4,本实施例提供的地形动态更新方法还包含以下步骤:
步骤S210,获取路径规划信息中的起点和终点。
步骤S220,基于更新后的地形图,规划得到所述起点至所述终点之间的寻路路径。
本实施例中,根据需求设置路径规划信息,该路径规划信息中包括起点信息和终点信息,在进行路径规划时,将基于上述更新后得到的地形图进行规划。其中,更新后的地形图中包含动态阻挡物、基于动态阻挡物所划分的目标子节点和预设最小单位节点。在规划从起点到终点之间的寻路路径时,需要使规划的寻路路径准确绕开其中的动态阻挡物。
在上述更新后的地形图中,包含基于目标四叉树划分的子节点以及基于目标子节点划分的预设最小单位节点。在进行寻路时,从起点至终点的方向上,可按更新后的地形图中包含的四叉树节点、子节点以及预设最小单位节点,规划得到起点至终点之间的寻路路径。
本实施例中,在从起点开始进行路径规划时,规划的策略可以是,若当前点处于四叉树节点区块内,则可以在该四叉树节点区块内进行规划,若当前点处于子节点区块内,则可以在该子节点区块内进行规划,而若当前点处于预设最小单位节点区块内,则按预设最小单位节点区块进行规划。如此,可以避免规划得到的寻路路径与动态阻挡物相交,可以避开动态阻挡物所在区域。
在游戏应用场景中,可能存在上述的在地形上添加动态阻挡物的情形,此外,也可能存在将地形中的动态阻挡物进行删除的情形,在此情形下,为了避免影响后续寻路,需要对地形图进行恢复处理。基于此考虑,请参阅图5,本实施例所提供的地形动态更新方法还包括以下步骤:
步骤S310,在检测到对所述地形图中的动态阻挡物的删除操作时,获取与待删除的动态阻挡物相交的四叉树节点。
步骤S320,获取所述四叉树节点包含的子节点中与所述动态阻挡物相交的子节点。
步骤S330,将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
本实施例中,在检测到对地形图中的动态阻挡物的删除操作时,例如在场景变换需求下,对地形图中的树木、墙等进行删除时,同样地,可按上述方式获得与待删除的动态阻挡物相交的四叉树节点,以及该四叉树节点中与动态阻挡物相交的子节点。在动态阻挡物删除之后,则需要将上述与动态阻挡物相交的子节点中的预设最小单位节点删除,并且,将与动态阻挡物相交的四叉树节点包含的子节点删除。
在本实施例中,还考虑到在场景中存在多个动态阻挡物的场景,若在对某个动态阻挡物进行删除时,可能还存在其他的动态阻挡物,而其他的动态阻挡物可能与该待删除的动态阻挡物位置相近,即可能与该待删除的动态阻挡物相交于相同的四叉树节点,或相同的子节点等,则在对地形图进行恢复时,还需考虑是否有其他的动态阻挡物,以及其他的动态阻挡物与地形图中的四叉树节点的相交情况。
基于上述考虑,请参阅图6,上述对地形进行恢复时,可采用以下方式实现:
步骤S331,检测与待删除的动态阻挡物相交的子节点是否与其他动态阻挡物相交,若所述子节点与其他动态阻挡物相交,则执行以下步骤S332,否则,执行以下步骤S333。
步骤S332,保留所述子节点包含的预设最小单位节点。
步骤S333,检测与待删除的动态阻挡物相交的四叉树节点是否与其他动态阻挡物相交,若所述四叉树节点与其他动态阻挡物相交,则执行以下步骤S334,否则,执行以下步骤S335。
步骤S334,保留所述四叉树节点包含的子节点。
步骤S335,将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
本实施例中,通过以上方式,首先在判断是否需要对与待删除的动态阻挡物相交的子节点中的预设最小单位节点进行删除时,通过检测是否还有其他的动态阻挡物与该子节点相交。若还有其他的动态阻挡物与该子节点相交,则如果对该子节点包含的预设最小单位节点进行删除后,则在基于地形图进行路径规划时,规划的路径可能存在穿过该其他的动态阻挡物的情况,导致寻路路径出错。因此,在还有其他的动态阻挡物与该子节点相交时,需要保留该子节点所划分的预设最小单位节点。
在此基础上,上升至上一级节点,在判断是否需要对于待删除的动态阻挡物相交的四叉树节点中的子节点进行删除时,通过检测是否还有其他的动态阻挡物与该四叉树节点相交。若还有其他的动态阻挡物与该四叉树节点相交,则需要保留该四叉树节点所划分的子节点,以避免后续在规划路径时,出现规划的路径穿过其他的动态阻挡物的现象。
若场景中不存在其他的动态阻挡物与待删除的动态阻挡物相交的子节点相交,也不与待删除的动态阻挡物相交的四叉树节点相交。则可以将与待删除的动态阻挡物相交的四叉树节点包含的子节点删除,将与待删除的动态阻挡物相交的子节点包含的预设最小单位节点删除。
本实施例所提供的地形动态更新方法,在添加动态阻挡物时,着重对于动态阻挡物相交的四叉树节点进行子节点划分,再对与动态阻挡物相交的子节点进行预设最小单位节点划分。如此,对与动态阻挡物相关的局部区域进行更新,与地形大小没有关系,在超大地形场景中也能高效动态更新。可以在保障基于更新的地形图进行后续寻路的准确性的基础上,大大降低对地形更新的工作量。
并且,在上述过程中,还考虑了场景中添加多个动态阻挡物的情形,在针对某个添加的动态阻挡物时,先检测与其相交的四叉树节点和子节点是否已进行划分,即是否之前已有动态阻挡物与其相交。如此,可以避免一些不必要的工作量,提高工作效率。
此外,在对地形中的动态阻挡物进行删除时,相应地对与待删除的动态阻挡物相交的四叉树节点和子节点进行恢复处理,从而避免对后续寻路的影响。
如图7所示,为本申请实施例提供的一种地形动态更新装置110的功能模块框图,该装置应用于上述终端设备。所述装置包括确定模块111、第一划分模块112和第二划分模块113。
确定模块111,用于在地形图上添加动态阻挡物时,确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点;
在本实施例中,关于确定模块111的描述具体可参考对图1所示的步骤S110的详细描述,即步骤S110可以由确定模块111执行。
第一划分模块112,用于将各所述目标四叉树节点划分为多个子节点,并确定出与所述动态阻挡物相交的目标子节点;
在本实施例中,关于第一划分模块112的描述具体可参考对图1所示的步骤S120的详细描述,即步骤S120可以由第一划分模块112执行。
第二划分模块113,用于将各所述目标子节点划分为多个预设最小单位节点,得到更新后的地形图。
在本实施例中,关于第二划分模块113的描述具体可参考对图1所示的步骤S130的详细描述,即步骤S130可以由第二划分模块113执行。
在一种可能的实现方式中,上述确定模块111可以用于通过以下方式确定与动态阻挡物相交的四叉树节点:
构建所述地形图包含的各个四叉树节点的包围盒以及所述动态阻挡物的包围盒;
针对各所述四叉树节点,检测是否存在一分离轴使得该四叉树节点的包围盒和所述动态阻挡物的包围盒在该分离轴上的投影不重叠,若存在,则确定该四叉树节点与所述动态阻挡物不相交,若不存在,则确定该四叉树节点与所述动态阻挡物相交。
在一种可能的实现方式中,上述第一划分模块112可以用于通过以下方式进行子节点划分:
按四叉树划分规则对各所述目标四叉树节点进行第一次划分,得到多个节点;
按四叉树划分规则对各个节点进行第二次划分,得到多个子节点。
在一种可能的实现方式中,上述地形动态更新装置110还包括删除模块,该删除模块可以用于:
在检测到对所述地形图中的动态阻挡物的删除操作时,获取与待删除的动态阻挡物相交的四叉树节点;
获取所述四叉树节点包含的子节点中与所述动态阻挡物相交的子节点;
将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
在一种可能的实现方式中,上述删除模块具体可以用于:
检测与待删除的动态阻挡物相交的子节点是否与其他动态阻挡物相交;
若所述子节点与其他动态阻挡物相交,则保留所述子节点包含的预设最小单位节点;
若所述子节点未与其他动态阻挡物相交,则检测与待删除的动态阻挡物相交的四叉树节点是否与其他动态阻挡物相交;
若所述四叉树节点与其他动态阻挡物相交,则保留所述四叉树节点包含的子节点,否则,将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
在一种可能的实现方式中,上述地形动态更新装置110还包括规划模块,该规划模块可以用于:
获取路径规划信息中的起点和终点;
基于更新后的地形图,规划得到所述起点至所述终点之间的寻路路径。
在一种可能的实现方式中,上述规划模块具体可以用于:
从所述起点至所述终点的方向上,按更新后的地形图中包含的四叉树节点、子节点以及预设最小单位节点,规划得到所述起点至所述终点之间的寻路路径。
如图8所示,本申请实施例还提供一种电子设备,该电子设备包括地形动态更新装置110、存储器120、处理器130以及通信单元140。
所述存储器120、处理器130以及通信单元140各元件相互之间直接或间接地电性连接,以实现信息的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器120中存储有以软件或固件(Firmware)的形式存储于所述存储器120中的软件功能模块,所述处理器130通过运行存储在存储器120内的软件程序以及模块,如本申请实施例中的地形动态更新装置110,从而执行各种功能应用以及数据处理,即实现本申请实施例中的地形动态更新方法。
其中,所述存储器120可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器120用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述通信单元140用于建立电子设备与其他外部设备之间的通信。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器130也可以是任何常规处理器等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器130运行时执行上述地形动态更新方法的步骤。
综上所述,本申请实施例提供的地形动态更新方法、装置、电子设备和可读存储介质,通过在地形图上添加动态阻挡物时,首先确定与动态阻挡物相交的目标四叉树节点,再将目标四叉树节点划分为多个子节点,在此基础上,确定与动态阻挡物相交的目标子节点,再将目标子节点划分为多个预设最小单位节点,从而得到更新后的地形图。本方案中,通过检测与动态阻挡物相交的四叉树节点以及子节点的方式,进行相应四叉树节点和子节点的划分,着重对与动态阻挡物相交的区域进行局部处理以更新地形图,在保障后续寻路准确性的基础上,可降低处理量、提高处理效率。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种地形动态更新方法,其特征在于,所述方法包括:
在地形图上添加动态阻挡物时,确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点;
将各所述目标四叉树节点划分为多个子节点,并确定出与所述动态阻挡物相交的目标子节点;
将各所述目标子节点划分为多个预设最小单位节点,得到更新后的地形图。
2.根据权利要求1所述的地形动态更新方法,其特征在于,所述确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点的步骤,包括:
构建所述地形图包含的各个四叉树节点的包围盒以及所述动态阻挡物的包围盒;
针对各所述四叉树节点,检测是否存在一分离轴使得该四叉树节点的包围盒和所述动态阻挡物的包围盒在该分离轴上的投影不重叠,若存在,则确定该四叉树节点与所述动态阻挡物不相交,若不存在,则确定该四叉树节点与所述动态阻挡物相交。
3.根据权利要求1所述的地形动态更新方法,其特征在于,所述将各所述目标四叉树节点划分为多个子节点的步骤,包括:
按四叉树划分规则对各所述目标四叉树节点进行第一次划分,得到多个节点;
按四叉树划分规则对各个节点进行第二次划分,得到多个子节点。
4.根据权利要求1所述的地形动态更新方法,其特征在于,所述方法还包括:
在检测到对所述地形图中的动态阻挡物的删除操作时,获取与待删除的动态阻挡物相交的四叉树节点;
获取所述四叉树节点包含的子节点中与所述动态阻挡物相交的子节点;
将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
5.根据权利要求4所述的地形动态更新方法,其特征在于,所述将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除的步骤,包括:
检测与待删除的动态阻挡物相交的子节点是否与其他动态阻挡物相交;
若所述子节点与其他动态阻挡物相交,则保留所述子节点包含的预设最小单位节点;
若所述子节点未与其他动态阻挡物相交,则检测与待删除的动态阻挡物相交的四叉树节点是否与其他动态阻挡物相交;
若所述四叉树节点与其他动态阻挡物相交,则保留所述四叉树节点包含的子节点,否则,将与所述动态阻挡物相交的子节点包含的预设最小单位节点删除,并将与所述动态阻挡物相交的四叉树节点包含的子节点删除。
6.根据权利要求1所述的地形动态更新方法,其特征在于,所述方法还包括:
获取路径规划信息中的起点和终点;
基于更新后的地形图,规划得到所述起点至所述终点之间的寻路路径。
7.根据权利要求6所述的地形动态更新方法,其特征在于,所述基于更新后的地形图,规划得到所述起点至所述终点之间的寻路路径的步骤,包括:
从所述起点至所述终点的方向上,按更新后的地形图中包含的四叉树节点、子节点以及预设最小单位节点,规划得到所述起点至所述终点之间的寻路路径。
8.一种地形动态更新装置,其特征在于,所述装置包括:
确定模块,用于在地形图上添加动态阻挡物时,确定所述地形图包含的多个四叉树节点中与所述动态阻挡物相交的目标四叉树节点;
第一划分模块,用于将各所述目标四叉树节点划分为多个子节点,并确定出与所述动态阻挡物相交的目标子节点;
第二划分模块,用于将各所述目标子节点划分为多个预设最小单位节点,得到更新后的地形图。
9.一种电子设备,其特征在于,包括一个或多个存储介质和一个或多个与存储介质通信的处理器,一个或多个存储介质存储有处理器可执行的机器可执行指令,当电子设备运行时,处理器执行所述机器可执行指令,以执行权利要求1-7中任意一项所述的地形动态更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令被执行时实现权利要求1-7中任意一项所述的地形动态更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011515453.XA CN112667648A (zh) | 2020-12-21 | 2020-12-21 | 地形动态更新方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011515453.XA CN112667648A (zh) | 2020-12-21 | 2020-12-21 | 地形动态更新方法、装置、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112667648A true CN112667648A (zh) | 2021-04-16 |
Family
ID=75406570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011515453.XA Pending CN112667648A (zh) | 2020-12-21 | 2020-12-21 | 地形动态更新方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667648A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115845381A (zh) * | 2023-02-07 | 2023-03-28 | 广州三七极耀网络科技有限公司 | 一种基于包围盒的快速寻路方法、装置、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050110789A1 (en) * | 2003-11-20 | 2005-05-26 | Microsoft Corporation | Dynamic 2D imposters of 3D graphic objects |
CN102663825A (zh) * | 2012-02-29 | 2012-09-12 | 中山大学 | 一种三维碰撞检测方法 |
CN104504760A (zh) * | 2014-12-09 | 2015-04-08 | 北京畅游天下网络技术有限公司 | 实时更新三维图像的方法和系统 |
US20200004759A1 (en) * | 2017-06-05 | 2020-01-02 | Umajin Inc. | Generative content system and methods therefor |
CN111013146A (zh) * | 2019-12-25 | 2020-04-17 | 北京像素软件科技股份有限公司 | 超大地图的可动态修改的寻路导航方法和装置 |
CN111035930A (zh) * | 2019-12-06 | 2020-04-21 | 珠海海鸟科技有限公司 | 地图数据处理方法及装置 |
CN111467806A (zh) * | 2020-05-15 | 2020-07-31 | 网易(杭州)网络有限公司 | 游戏场景中资源生成方法、装置、介质及电子设备 |
CN111659123A (zh) * | 2020-07-17 | 2020-09-15 | 网易(杭州)网络有限公司 | 导航数据的处理方法及装置、存储介质、电子设备 |
CN111744199A (zh) * | 2020-06-28 | 2020-10-09 | 网易(杭州)网络有限公司 | 图像处理方法及装置、计算机可读存储介质、电子设备 |
-
2020
- 2020-12-21 CN CN202011515453.XA patent/CN112667648A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050110789A1 (en) * | 2003-11-20 | 2005-05-26 | Microsoft Corporation | Dynamic 2D imposters of 3D graphic objects |
CN102663825A (zh) * | 2012-02-29 | 2012-09-12 | 中山大学 | 一种三维碰撞检测方法 |
CN104504760A (zh) * | 2014-12-09 | 2015-04-08 | 北京畅游天下网络技术有限公司 | 实时更新三维图像的方法和系统 |
US20200004759A1 (en) * | 2017-06-05 | 2020-01-02 | Umajin Inc. | Generative content system and methods therefor |
CN111035930A (zh) * | 2019-12-06 | 2020-04-21 | 珠海海鸟科技有限公司 | 地图数据处理方法及装置 |
CN111013146A (zh) * | 2019-12-25 | 2020-04-17 | 北京像素软件科技股份有限公司 | 超大地图的可动态修改的寻路导航方法和装置 |
CN111467806A (zh) * | 2020-05-15 | 2020-07-31 | 网易(杭州)网络有限公司 | 游戏场景中资源生成方法、装置、介质及电子设备 |
CN111744199A (zh) * | 2020-06-28 | 2020-10-09 | 网易(杭州)网络有限公司 | 图像处理方法及装置、计算机可读存储介质、电子设备 |
CN111659123A (zh) * | 2020-07-17 | 2020-09-15 | 网易(杭州)网络有限公司 | 导航数据的处理方法及装置、存储介质、电子设备 |
Non-Patent Citations (5)
Title |
---|
ALEX FRASSON 等: "Efficient screen-space rendering of vector features on virtual terrains", 《I3D \'18: PROCEEDINGS OF THE ACM SIGGRAPH SYMPOSIUM ON INTERACTIVE 3D GRAPHICS AND GAMES》, 30 May 2018 (2018-05-30), pages 1 - 10, XP058407214, DOI: 10.1145/3190834.3190851 * |
王振文 等: "复杂场景中基于拓扑空间网格的碰撞检测算法", 计算机系统应用, no. 12, 15 December 2017 (2017-12-15), pages 116 - 123 * |
王振武 等: "基于四叉树分割的地形LOD技术综述", 计算机科学, no. 04, 15 April 2018 (2018-04-15), pages 34 - 45 * |
郭正肖: "一种基于纹理合成与转换的地形图生成方法", 《信息科技》, 15 May 2019 (2019-05-15), pages 1 - 69 * |
郭雪峰 等: "一种基于视点的大规模三维地形实时渲染算法", 太赫兹科学与电子信息学报, no. 01, 25 February 2015 (2015-02-25), pages 135 - 141 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115845381A (zh) * | 2023-02-07 | 2023-03-28 | 广州三七极耀网络科技有限公司 | 一种基于包围盒的快速寻路方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107952243B (zh) | 路径确定方法及装置 | |
CN112090078B (zh) | 游戏角色移动控制方法、装置、设备和介质 | |
CN113191550A (zh) | 地图匹配方法及装置 | |
CN114440916A (zh) | 一种导航方法、装置、设备及存储介质 | |
CN112667648A (zh) | 地形动态更新方法、装置、电子设备和可读存储介质 | |
CN110083670B (zh) | 一种基于路段密度的地图网格划分方法 | |
CN110782774A (zh) | 一种众包道路数据的分布式处理方法及装置 | |
CN115779424B (zh) | 一种导航网格寻路方法、装置、设备及介质 | |
CN113144607A (zh) | 游戏中虚拟对象的寻路方法、装置及电子设备 | |
CN112269848A (zh) | 一种众包轨迹数据融合方法及装置 | |
CN112711647A (zh) | 地图信息显示方法和装置、存储介质及电子设备 | |
CN114240976B (zh) | 一种地图迭代切分方法、装置、设备及存储介质 | |
CN113607161B (zh) | 机器人导航路径宽度获取系统、方法、机器人及存储介质 | |
CN115422196A (zh) | 一种矢量数据拓扑关系检查方法 | |
CN114168700A (zh) | 一种路网合并更新方法、系统、电子设备及存储介质 | |
CN114159777A (zh) | 层次化寻路方法、装置、电子设备及可读介质 | |
CN114037798A (zh) | 三维路口模型的生成方法及装置 | |
CN113658295A (zh) | 一种基于地理信息的电网沿布图成图方法及装置 | |
CN112999658B (zh) | 用于游戏三维空间飞行的寻路方法、装置及介质 | |
CN110917624A (zh) | 路径确定方法、装置及设备 | |
CN116049505B (zh) | 屏幕空间标签碰撞检测方法、装置、计算机设备及存储介质 | |
CN115845381B (zh) | 一种基于包围盒的快速寻路方法、装置、设备及介质 | |
CN116383451B (zh) | 一种地图分割方法、装置、电子设备及存储介质 | |
CN113823082B (zh) | 导航数据处理方法、装置、设备及存储介质 | |
CN113066151B (zh) | 一种地图数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |