导航网格的链接方法及装置与流程

文档序号:32403087发布日期:2022-12-02 19:41阅读:51来源:国知局
导航网格的链接方法及装置与流程

1.本发明实施例涉及电子信息领域,具体涉及一种导航网格的链接方法及装置。


背景技术:

2.目前,在虚拟现实场景中,为了实现虚拟角色在动态虚拟建筑模型内部的寻路需求,通常会采用导航网格方式实现寻路。导航网格(navigation mesh),也叫行走面,是一种用于在复杂空间中导航寻路、标记哪些地方可行走的多边形网格数据结构。一个导航网格通常由多个凸多边形(convex polygon,poly mesh)组成。另外,为了表示两个导航网格或网格边界线之间是否可达,需要在两个可相互到达的导航网格或网格边界线之间设置链接,从而引导虚拟角色基于链接从一个导航网格到达另一个导航网格。
3.在相关技术中,导航网格之间的链接采用人工方式生成。由游戏配置人员人工判断两个导航网格之间是否可达,并根据人工判断结果手动在两个导航网格之间创建链接。但是,发明人在实现本发明的过程中发现,上述方式至少存在如下缺陷:人工创建链接的方式繁琐低效,且容易出错。


技术实现要素:

4.鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种导航网格的链接方法及装置。
5.根据本发明的一个方面,提供了一种导航网格的链接方法,所述方法包括:
6.获取虚拟场景中包含的导航网格;
7.遍历所述导航网格的各个网格边界线;
8.分别以各个网格边界线为基准发射射线;
9.获取各个网格边界线所对应的射线检测结果,根据所述射线检测结果判断是否存在符合链接条件的至少两个网格边界线;
10.若是,在所述符合链接条件的至少两个网格边界线之间建立导航链接。
11.依据本发明的再一方面,提供了一种导航网格的链接装置,所述装置包括:
12.获取模块,适于获取虚拟场景中包含的导航网格;
13.遍历模块,适于遍历所述导航网格的各个网格边界线;
14.发射模块,适于分别以各个网格边界线为基准发射射线;
15.判断模块,适于获取各个网格边界线所对应的射线检测结果,根据所述射线检测结果判断是否存在符合链接条件的至少两个网格边界线;
16.建立模块,适于若是,在所述符合链接条件的至少两个网格边界线之间建立导航链接。
17.依据本发明的再一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
18.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上
述的方法。
19.依据本发明实施例的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述的方法。
20.在本发明提供的导航网格的链接方法及装置中,在获取虚拟场景中包含的导航网格之后,遍历导航网格的各个网格边界线;分别以各个网格边界线为基准发射射线;获取各个网格边界线所对应的射线检测结果,根据射线检测结果判断是否存在符合链接条件的至少两个网格边界线;若是,在符合链接条件的至少两个网格边界线之间建立导航链接。由此可见,该方式能够通过射线检测的方式自动在两个相邻的网格边界线之间建立导航链接,从而省去了人工创建链接的繁琐操作,高效且不易出错。
21.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
22.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
23.图1示出了本发明一个实施例提供的一种导航网格的链接方法的流程图;
24.图2示出了本发明又一个实施例提供的一种导航网格的链接方法的流程图;
25.图3示出了本发明又一个实施例提供的一种导航网格的链接装置的结构示意图;
26.图4示出了本发明又一个实施例提供的一种电子设备的结构示意图。
具体实施方式
27.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
28.图1示出了本发明一个实施例提供的一种导航网格的链接方法的流程图。如图1所示,该方法包括:
29.s110:获取虚拟场景中包含的导航网格。
30.其中,虚拟场景可以为游戏场景、虚拟现实场景等各类场景。在获取虚拟场景中包含的多个导航网格时,可以直接获取预先生成的导航网格,该预先生成的导航网格的具体生成时机以及生成方式可由本领域技术人员灵活设定,本发明对此不做限定。或者,也可以在本步骤中直接生成导航网格,例如,可通过以下方式生成:首先,确定虚拟场景中包含的可承载人物对象的场景模型,针对可承载人物对象的场景模型进行体素化处理,也叫栅格化处理。然后,过滤出可行走面。最后,基于可行走面生成导航网格。一个导航网格通常由多个凸多边形(convex polygon,poly mesh)组成。
31.s120:遍历导航网格的各个网格边界线。
32.其中,导航网格的数量可以为一个或多个,每个导航网格具有至少三条网格边界
线,相应的,在本步骤中,需要遍历各个导航网格中的各个网格边界线。
33.s130:分别以各个网格边界线为基准发射射线。
34.具体的,可以同时以各个网格边界线为基准并行的发射射线,以实现各个网格边界线之间并行射线检测的目的,从而实现高效检测。
35.另外,在发射射线时,射线的方向和长度可灵活配置。例如,射线方向可包括水平方向以及竖直方向,甚至还可以包括与预设角度相对应的指定方向。射线长度可根据虚拟角色的行动能力设定。
36.s140:获取各个网格边界线所对应的射线检测结果,根据射线检测结果判断是否存在符合链接条件的至少两个网格边界线。
37.其中,链接条件包括:两个网格边界线之间的距离小于预设间距阈值。由此可见,射线检测主要用于发现相邻的网格边界线。其中,通过合理设定预设间距阈值的数值大小,能够在虚拟角色可到达的两个网格边界线之间自动建立链接。
38.其中,符合链接条件的至少两个网格边界线包括:发射源所在的网格边界线以及与发射源所在的网格边界线符合链接条件的另一条网格边界线。其中,链接条件包括距离类条件、网格属性类条件等各种类型,具体可由本领域技术人员灵活设定。例如,在一种实现方式中,根据射线检测结果判断是否存在可以跟发射源所在的网格边界建立连接的另一条网格边界。
39.s150:若是,在符合链接条件的至少两个网格边界线之间建立导航链接。
40.在本发明提供的导航网格的链接方法中,能够通过射线检测的方式自动在两个相邻的网格边界线之间建立导航链接,从而省去了人工创建链接的繁琐操作,高效且不易出错。
41.图2示出了本发明又一实施例提供的一种导航网格的链接方法的流程图。如图2所示,该方法包括:
42.s200:确定虚拟场景中包含的需要自动寻路的场景区域。
43.本步骤为一个可选的步骤,针对规模较小的虚拟场景而言,可直接将整个虚拟场景均作为需要自动寻路的场景区域,从而省略本步骤。
44.对于一些场景规模较大的虚拟场景而言,为了避免对场景其他区域的影响,可通过本步骤预先设定虚拟场景中包含的需要自动寻路的场景区域,以限定后续步骤的执行范围。
45.具体的,可通过场景编辑器创建虚拟场景。例如,新建一个编辑器场景(editor scene)。或者,也可以在已创建的虚拟场景中选择一部分区域作为需要自动寻路的局部场景区域。
46.s210:获取虚拟场景中包含的导航网格。
47.其中,在获取虚拟场景中包含的导航网格时,可以通过以下方式实现:首先,确定虚拟场景中包含的可承载人物对象的场景模型,针对可承载人物对象的场景模型进行体素化处理,也叫栅格化处理。然后,过滤出可行走面。最后,基于可行走面生成导航网格。一个导航网格通常由多个凸多边形(convex polygon,poly mesh)组成。或者,也可以预先生成导航网格,相应的,在本步骤中直接获取预先生成的导航网格即可。
48.其中,在确定虚拟场景中包含的可承载人物对象的场景模型时,分别判断虚拟场
景中的各个场景模型是否设置有物理碰撞信息,即:判断虚拟场景中的各个场景模型是否添加有碰撞体,能够响应碰撞操作。相应的,将设置有物理碰撞信息的场景模型确定为可承载人物对象的场景模型,以便根据可承载人物对象的场景模型生成导航网格。
49.其中,导航网格的数量可以为一个或多个。
50.s220:遍历导航网格的各个网格边界线。
51.其中,导航网格的数量可以为一个或多个,每个导航网格具有至少三条网格边界线,相应的,在本步骤中,需要遍历各个导航网格中的各个网格边界线。
52.s230:分别以各个网格边界线为基准发射射线。
53.具体的,可以同时以各个网格边界线为基准并行的发射射线,以实现各个网格边界线之间并行射线检测的目的,从而实现高效检测。另外,在发射射线时,射线的方向和长度可灵活配置。例如,射线方向可包括水平方向以及竖直方向,甚至还可以包括与预设角度相对应的指定方向。射线长度可根据虚拟角色的行动能力设定。
54.在一种实现方式中,针对任一网格边界线,以该网格边界线为基准,按照第一检测步长,沿第一方向依次射出多条射线,以检测第一方向是否存在符合链接条件的网格边界线;以该网格边界线为基准,按照第二检测步长,沿第二方向依次射出多条射线,以检测第二方向是否存在符合链接条件的网格边界线;其中,第一方向垂直于第二方向;其中,链接条件包括:两个网格边界线之间的距离小于预设间距阈值。其中,第一方向通常为水平方向,第二方向通常为竖直方向。相应的,第一检测步长为水平检测步长,第二检测步长为竖直检测步长。通过沿两个方向分别检测的方式,能够确保探测到的网格边界线更加全面,避免遗漏。并且,通过设置水平检测步长以及竖直检测步长,按照检测步长依次发射多条射线的方式,有助于提升检测精度。例如,假设水平检测步长为1米,竖直检测步长为0.5米,则先沿水平方向发射一条一米长度的射线,判断是否检测到墙壁等类型的障碍物;若否,再沿水平方向发射一条两米长度的射线,判断是否检测到墙壁等类型的障碍物;若仍为否,再沿水平方向发射一条三米长度的射线,判断是否检测到墙壁等类型的障碍物。竖直方向的检测方式与水平方向类似,此处不再赘述。另外,针对水平方向按照水平检测步长进行多次射线检测的过程与针对竖直方向按照竖直检测步长进行多次射线检测的过程,既可以先后进行,也可以交叉进行,本发明对具体细节不做限定。
55.在其他可选的实现方式中,还可以将任一网格边界线确定为目标网格边界线,以该目标网格边界线为基准发射射线。由于虚拟场景中包含多个网格边界线,因此,可以将任一网格边界线确定为目标网格边界线,并基于该目标网格边界线寻找与该目标网格边界线相邻且可达的邻近网格边界线。具体的,以该目标网格边界线为基准发射射线,通过射线检测方式寻找邻近网格边界线。在本实施例中,同时将多个网格边界线确定为目标网格边界线,分别基于各个目标网格边界线发射射线。在该方式中,可通过多线程方式,同时处理多个目标网格边界线,从而实现多个目标网格边界线之间的并行处理。该方式更加高效,能够大幅缩短链接建立时间,减少用户等待时长。实际情况中,可灵活选择上述两种实现方式中的任意一种。另外,既可以依次以各个网格边界线为基准发射射线,也可以同时以各个网格边界线为基准发射射线。
56.s240:获取各个网格边界线所对应的射线检测结果,根据射线检测结果判断是否存在符合链接条件的至少两个网格边界线。
57.其中,链接条件包括:两个网格边界线之间的距离小于预设间距阈值,其中,两个网格边界线包括:发射源所在的网格边界线以及与发射源所在的网格边界线之间的距离小于预设间距阈值的另一条网格边界线。由此可见,射线检测主要用于发现相邻的网格边界线。其中,通过合理设定预设间距阈值的数值大小,能够在虚拟角色可到达的两个网格边界线之间自动建立链接。
58.优选地,预设间距阈值可以根据人物角色的角色等级信息动态设定;或者,也可以固定设置。总之,预设间距阈值与人物角色的行动能力相关,例如,根据人物角色在水平方向的最大移动位移设定水平间距阈值,根据人物角色在竖直方向的最大移动位移设定竖直间距阈值。相应的,符合链接条件的至少两个网格边界线包括:水平间距不大于水平间距阈值的两个网格边界线,和/或,竖直间距不大于竖直间距阈值的两个网格边界线。考虑到不同人物角色的行动能力各有不同,并且,即使是同一人物角色在等级出现变化之后,行动能力也通常会相应变化。因此,在本实施例中,还可以动态获取人物角色的角色等级信息,从而根据动态获取的人物角色的角色等级信息,动态调整预设间距阈值的数值大小。
59.在一种实现方式中,在进行射线检测的时候,还可以针对射线检测操作配置射线检测层级,相应的,在执行射线检测操作时,仅在配置的射线检测层级内进行射线检测操作。在该方式中,符合链接条件的至少两个网格边界线是指:位于同一射线检测层级之内,且相互之间的间距不大于预设间距阈值的至少两个导航网格。
60.在一种实现方式中,在第一网格边界线与第二网格边界线之间的距离小于预设距离阈值的情况下,进一步获取第一网格边界线的第一网格属性,以及第二网格边界线的第二网格属性;根据第一网格属性以及第二网格属性,判断第一网格边界线与第二网格边界线是否符合链接条件。换言之,链接条件除包括根据预设间距阈值设定的条件之外,还包括根据网格属性设定的条件。
61.考虑到导航网格及其网格边界线具有各种属性,因此,进一步根据第一网格边界线与第二网格边界线的网格属性判断是否建立导航链接。其中,导航网格或网格边界线的网格属性用于描述导航网格或网格边界线对应的场景模型的功能或种类。例如,网格属性包括:支撑物属性、地表属性等。其中,地表属性的导航网格或网格边界线对应于地面类对象;支撑物属性的导航网格或网格边界线对应于桌子、椅子等支撑物对象。相应的,在根据第一网格属性以及第二网格属性,判断第一网格边界线与第二网格边界线是否符合链接条件时,可以在第一网格属性与第二网格属性相同的情况下,确定第一网格边界线与第二网格边界线符合链接条件。例如,两个同为地表属性的网格边界线互为一组可链接边界线;又如,两个同为支撑物属性(且支撑物类型相同)的网格边界线互为一组可链接边界线。
62.另外,还可以进一步针对建立的导航链接配置链接类型标识,该链接类型标识用于指示该导航链接可针对何种类型的角色对象提供寻路功能。链接类型标识可根据第一网格属性以及第二网格属性设定:例如,在第一网格属性与第二网格属性同为支撑物属性(且支撑物类型为桌子)时,针对该组可链接边界线之间的导航链接配置的链接类型标识用于针对体型小于预设体积的角色对象提供寻路功能。例如,桌子的承重能力较弱,因此,体积较大的角色对象无法在两个邻近的桌子上跳跃;但是,对于小型体积的角色对象(如猫狗等)而言,则可以在两个邻近的桌子上跳跃。因此,根据网格属性配置链接类型标识,并基于链接类型标识指示该导航链接可适用的角色对象的种类,能够使导航寻路功能更加灵活,
适用于各种类型的角色对象。
63.s250:若是,在符合链接条件的至少两个网格边界线之间建立导航链接。
64.在一种实现方式中,根据第一网格边界线与第二网格边界线之间的相对位置关系,判断第一网格边界线与第二网格边界线是否为一组可双向链接边界线;若是,在第一网格边界线与第二网格边界线之间建立双向导航链接;若否,在第一网格边界线与第二网格边界线之间建立单向导航链接。
65.其中,相对位置关系包括:间隔距离、相对方位等。具体实施时,可以预先设置双向间隔阈值,该双向间隔阈值小于上文提到的预设间距阈值。相应的,在确定出第一网格边界线与第二网格边界线之间的间距不大于预设间距阈值的情况下,进一步判断第一网格边界线与第二网格边界线之间的间距是否不大于双向间隔阈值,若是,则确定该组可链接边界线为一组可双向链接边界线,进而在第一网格边界线与第二网格边界线之间建立双向导航链接。反之,则在第一网格边界线与第二网格边界线之间建立单向导航链接。
66.其中,双向导航链接是指:既可以从第一网格边界线到达第二网格边界线,也可以从第二网格边界线到达第一网格边界线的链接。另外,除根据双向间隔阈值进行判断之外,在其他实现方式中,还可以根据第一网格边界线与第二网格边界线之间的相对方位进行判断,例如,若第一网格边界线与第二网格边界线之间的相对方位为水平方位,即:第二网格边界线位于第一网格边界线的水平方位,则确定该组可链接边界线为一组可双向链接边界线,进而在第一网格边界线与第二网格边界线之间建立双向导航链接;若第二网格边界线与第一网格边界线之间的相对方位为竖直方位,即:第二网格边界线位于第一网格边界线的上方或下方,则确定该组可链接边界线不属于一组可双向链接边界线,进而在第一网格边界线与第二网格边界线之间建立单向导航链接。
67.另外,还可以将上述两种实现方式结合使用,从而根据第一网格边界线与第二网格边界线之间的间隔距离以及相对方位共同确定该组可链接边界线是否属于一组可双向链接边界线。例如,若第一网格边界线与第二网格边界线之间的相对方位为竖直方位,即:第二网格边界线位于第一网格边界线的上方或下方,则进一步判断第一网格边界线与第二网格边界线之间的间距(也叫高度差)是否大于双向间隔阈值;若大于双向间隔阈值,则确定该组可链接边界线不属于一组可双向链接边界线;若不大于双向间隔阈值,则确定该组可链接边界线属于一组可双向链接边界线。具体原因在于:角色从高处跳至低处时相对容易实现,而角色从低处跳至高处则相对难度较大,因此,双向间隔阈值可根据角色对象向上跳跃时的弹跳能力设定。
68.另外,相对位置关系除包括间隔距离以及相对方位之外,还可以包括第一网格边界线与第二网格边界线之间的坡度倾角等特征。例如,若第一网格边界线与第二网格边界线分别位于一个斜坡的顶端和底端,则可以进一步根据斜坡的倾斜角度判断该组可链接边界线是否属于一组可双向链接边界线。例如,考虑坡度较陡的斜坡通常掉落后难以爬上,因此,在斜坡的倾斜角度大于预设角度阈值的情况下,确定该组可链接边界线不属于一组可双向链接边界线。
69.另外,发明人在实现本发明的过程中发现,在通过多线程方式并行针对各个网格边界线进行同时处理时,可能存在重复建立导航链接的情况。例如,在将网格边界线a作为目标网格边界线时,已将网格边界线b作为网格边界线a的可链接边界线,从而将网格边界
线a和网格边界线b确定为一组可链接边界线。然而,在将网格边界线b作为目标网格边界线时,可能会重复将网格边界线a作为网格边界线b的邻近网格边界线,从而将网格边界线a和网格边界线b重复确定为一组可链接边界线。在上述方式中,将导致网格边界线a和网格边界线b之间建立冗余的导航链接。为了避免上述问题,在可选的实现方式中,在建立导航链接时,通过以下方式实现:获取第一网格边界线对应的第一坐标信息以及第二网格边界线对应的第二坐标信息;根据第一坐标信息以及第二坐标信息,判断第一网格边界线是否位于第二网格边界线的预设方位;若是,在第一网格边界线与第二网格边界线之间建立导航链接。其中,预设方位用于体现第一网格边界线与第二网格边界线之间的相对位置,从而使导航链接的建立过程遵循一定的方位次序,进而防止重复问题。例如,预设方位可以为:下方方位。例如,判断第二网格边界线是否位于第一网格边界线的下方,若是,则在第一网格边界线与第二网格边界线之间建立导航链接;若否,则不在第一网格边界线与第二网格边界线之间建立导航链接。具体的,可以判断第一网格边界线的高度(即纵坐标数值)是否大于第二网格边界线的高度(即纵坐标数值),若是,则确定第二网格边界线位于第一网格边界线的下方。即:只有在待建立的导航链接的起点比终点高的情况下才会建立该导航链接。例如,仍以上例为例,由于网格边界线a与网格边界线b的高度必然存在少许差异,因此,只有当高度高的网格边界线作为目标网格边界线时才会在二者之间建立导航链接;而在高度低的网格边界线作为目标网格边界线时则不会重复在二者之间建立导航链接,由此避免上述问题。当然,预设方位除了可以是下方之外,也可以是左方、右方或上方等,本发明对具体细节不做限定。
70.另外,发明人在实现本发明的过程中还发现,由于算法误差的存在,导致建立的导航链接可能存在少许偏差,从而导致无法顺利连接两个导航网格。为了解决上述问题,在建立导航链接之后,进一步执行以下的校验操作:获取导航链接的第一链接端点以及第二链接端点;判断第一链接端点是否与第一网格边界线的位置匹配,和/或第二链接端点是否与第二网格边界线的位置匹配;若否,针对不匹配的第一链接端点和/或第二链接端点的位置进行调整,以使调整后的第一链接端点与第一网格边界线的位置匹配,且第二链接端点与第二网格边界线的位置匹配。其中,第一网格边界线的第一链接端点是指:用于连接第一网格边界线的端点;第二网格边界线的第二链接端点是指:用于连接第一网格边界线的端点。当任一链接端点的位置与网格边界线不匹配时,说明由于算法误差的存在导致导航链接与网格边界线之间存在间隙,该间隙的存在将影响角色对象通过该导航链接进行导航的效果,为此,通过对不匹配的第一链接端点和/或第二链接端点的位置进行调整,以使调整后的第一链接端点与第一网格边界线的位置匹配,且第二链接端点与第二网格边界线的位置匹配的方式,能够确保导航链接的准确性,进而提升导航效果。例如,可通过算法自动校验导航链接(link)的起点/终点是否在网格边界线上,从而在导航链接的起点/终点不在网格边界线上时进行调整。
71.由此可见,在本实施例中,能够根据配置参数自动生成导航链接(navmesh link),用来标记角色能够跳上跳下的位置,从而节省大量人工布置的时间。在一种具体示例中,可预先设置如下配置参数:
72.(1)tile width:该参数用于控制生成link的间距,用以控制多个导航链接之间的密度,防止多个相邻的导航链接过于密集。
73.(2)oneminlinkwidth:用于控制至少摆放一个link的最小边宽度。只要导航网格的边界线长度不小于该最小边宽度,则能够生成一个link。
74.(3)max drop height:用于控制能够生成link的最大高度。即:当第一网格边界线与第二网格边界线之间沿竖直方向相邻时,只有在两个网格边界线之间的高度差不大于该参数数值的情况下才可以建立导航链接。
75.(4)max jump height:能够生成双向link的最大高度,该参数的数值一定要小于等于max drop height的数值。例如,只有当网格边界线之间的高度差不大于该参数数值的情况下才可以建立双向导航链接。
76.(5)raycast layer mask:算法射线检测使用的layer mask,一般填stagecollider,用于控制射线检测的层级,以使射线检测过程限定在指定的射线层级范围内。
77.(6)max horizontal distance:用于控制能够生成link的最大水平距离。即:当网格边界线沿水平方向相邻时,只有在两个网格边界线之间的水平间距不大于该参数数值的情况下才可以建立导航链接。
78.(7)horizontal step:用于控制横向检测的步长,数值越低结果越精确,计算花费的时间越长。例如,若该参数的参数值为0.6米,则第一次先沿水平方向射出一条0.6米的射线,若未检测到任何障碍物,则再沿水平方向射出一条1.2米的射线
……
以此类推。
79.(8)wall check tolerance:用于控制横向检测时起点抬高的距离,可以用来绕过栏杆等。该参数也可以叫做水平抬高参数。其中,该参数主要用于在进行水平方向的射线检测时,对水平检测射线进行抬高处理,以使抬高处理后的水平检测射线能够绕过栏杆等障碍物。例如,假设虚拟场景中包含大量高度为0.4米的栏杆,为了避免在通过水平检测射线进行水平方向的障碍物检测时误检测到栏杆,需要将水平检测射线的起点的纵坐标抬高0.4米(即水平抬高参数的参数值)之后,再进行水平方向的射线检测操作。
80.综上可知,该方式能够通过射线检测的方式自动在两个相邻的网格边界线之间建立导航链接,从而省去了人工创建链接的繁琐操作,高效且不易出错。并且,该方式还能够根据不同的情况分别建立单向导航链接或双向导航链接,从而满足不同场景的需求。而且,用于判断是否建立导航链接的预设间距阈值还可以根据人物角色的角色等级信息进行动态设定,从而满足不同角色的个性化需求。
81.图3示出了本发明又一实施例提供的一种导航网格的链接装置,包括:
82.获取模块31,适于获取虚拟场景中包含的导航网格;
83.遍历模块32,适于遍历所述导航网格的各个网格边界线;
84.发射模块33,适于分别以各个网格边界线为基准发射射线;
85.判断模块34,适于获取各个网格边界线所对应的射线检测结果,根据所述射线检测结果判断是否存在符合链接条件的至少两个网格边界线;
86.建立模块35,适于若是,在所述符合链接条件的至少两个网格边界线之间建立导航链接。
87.在一种可选的实现方式中,所述发射模块具体适于:
88.针对任一网格边界线,以该网格边界线为基准,按照第一检测步长,沿第一方向依次射出多条射线,以检测第一方向是否存在符合链接条件的网格边界线;
89.以该网格边界线为基准,按照第二检测步长,沿第二方向依次射出多条射线,以检测第二方向是否存在符合链接条件的网格边界线;其中,所述第一方向垂直于所述第二方向;
90.其中,所述链接条件包括:两个网格边界线之间的距离小于预设间距阈值。
91.在一种可选的实现方式中,所述判断模块具体适于:
92.在第一网格边界线与第二网格边界线之间的距离小于预设距离阈值的情况下,进一步获取所述第一网格边界线的第一网格属性,以及所述第二网格边界线的第二网格属性;
93.根据所述第一网格属性以及所述第二网格属性,判断所述第一网格边界线与所述第二网格边界线是否符合链接条件。
94.在一种可选的实现方式中,所述建立模块具体适于:
95.根据所述第一网格边界线与所述第二网格边界线之间的相对位置关系,判断所述第一网格边界线与所述第二网格边界线是否为一组可双向链接边界线;
96.若是,在所述第一网格边界线与所述第二网格边界线之间建立双向导航链接;
97.若否,在所述第一网格边界线与所述第二网格边界线之间建立单向导航链接。
98.在一种可选的实现方式中,所述建立模块具体适于:
99.获取所述第一网格边界线对应的第一坐标信息以及所述第二网格边界线对应的第二坐标信息;
100.根据所述第一坐标信息以及所述第二坐标信息,判断所述第一网格边界线是否位于所述第二网格边界线的预设方位;
101.若是,在所述第一网格边界线与所述第二网格边界线之间建立导航链接。
102.在一种可选的实现方式中,所述建立模块还适于:
103.获取所述导航链接的第一链接端点以及第二链接端点;
104.判断所述第一链接端点是否与所述第一网格边界线的位置匹配,和/或所述第二链接端点是否与所述第二网格边界线的位置匹配;
105.若否,针对所述不匹配的第一链接端点和/或第二链接端点的位置进行调整,以使调整后的第一链接端点与所述第一网格边界线的位置匹配,且所述第二链接端点与所述第二网格边界线的位置匹配。
106.在一种可选的实现方式中,其中,所述预设间距阈值根据人物角色的角色等级信息动态设定。
107.上述各个模块的具体结构和工作原理可参照方法实施例相应部分的描述,此处不再赘述。
108.本技术又一实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的导航网格的链接方法。可执行指令具体可以用于使得处理器执行上述方法实施例中对应的各个操作。
109.图4示出了根据本发明又一实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
110.如图4所示,该电子设备可以包括:处理器(processor)502、通信接口(communications interface)506、存储器(memory)504、以及通信总线508。
111.其中:
112.处理器502、通信接口506、以及存储器504通过通信总线508完成相互间的通信。
113.通信接口506,用于与其它设备比如客户端或其它服务器等的网元通信。
114.处理器502,用于执行程序510,具体可以执行上述导航网格的链接方法实施例中的相关步骤。
115.具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
116.处理器502可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu。也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
117.存储器504,用于存放程序510。存储器504可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
118.程序510具体可以用于使得处理器502执行上述导航网格的链接方法实施例中对应的各个操作。
119.在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
120.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
121.类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
122.本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
123.此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
124.本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行
的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
125.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1