三维模型的表面路径生成方法、装置及电子设备制造方法及图纸

技术编号:37299266 阅读:28 留言:0更新日期:2023-04-21 22:45
本发明专利技术提供了一种三维模型的表面路径生成方法、装置及电子设备,获取目标模型及路径生成请求;该目标模型的表面由多个子表面组成;多个子表面之间直接或间接连接;生成多个子表面对应的可行走位置集合;基于可行走位置集合、多个子表面之间的连接关系、路径生成请求中的路径起点及路径终点,生成路径生成请求对应的目标模型的表面路径。上述方式可以针对目标模型的多个子表面分别生成其对应的可行走位置集合,从而可以对多种形状的三维模型的表面寻路或导航,满足了用户的多种寻路、导航需求。需求。需求。

【技术实现步骤摘要】
三维模型的表面路径生成方法、装置及电子设备


[0001]本专利技术涉及寻路
,具体而言,涉及一种三维模型的表面路径生成方法、装置及电子设备。

技术介绍

[0002]相关技术中,通常采用RecastNavigation算法在游戏场景中进行导航或寻路。该算法首先将游戏场景的空间模型进行体素化,生成场景网格,然后对场景网格沿竖直方向光栅化,基于光栅化结果确定游戏场景中的可行走表面,进一步基于漏斗算法等寻路算法在可行走表面中确定行走路径。由于该方法中只能竖直向下光栅化,生成竖直向上的表面寻路,导致该方法在游戏中的球形场景进行寻路时,只会在球形场景的上表面生成寻路,无法满足导航或者寻路需求。

技术实现思路

[0003]有鉴于此,本专利技术的目的在于提供一种三维模型的表面路径生成方法、装置及电子设备,以在多种形状的三维模型的表面寻路或导航,满足用户的多种寻路、导航需求。
[0004]第一方面,本专利技术实施例提供了一种三维模型的表面路径生成方法,该方法包括:获取目标模型及路径生成请求;目标模型的表面由多个子表面组成;多个子表面之间直接或间接连接;路径生成请求包括位于目标模型的表面的路径起点及路径终点;生成多个子表面对应的可行走位置集合;基于可行走位置集合、多个子表面之间的连接关系、路径起点及路径终点,生成路径生成请求对应的目标模型的表面路径。
[0005]第二方面,本专利技术实施例提供了一种三维模型的表面路径生成装置,该装置包括:模型获取模块,用于获取目标模型及路径生成请求;目标模型的表面由多个子表面组成;多个子表面之间直接或间接连接;路径生成请求包括位于目标模型的表面的路径起点及路径终点;可行走位置集合生成模块,用于生成多个子表面对应的可行走位置集合;表面路径生成模块,用于基于可行走位置集合、多个子表面之间的连接关系、路径起点及路径终点,生成路径生成请求对应的目标模型的表面路径。
[0006]第三方面,本专利技术实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述的三维模型的表面路径生成方法。
[0007]第四方面,本专利技术实施例提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述的三维模型的表面路径生成方法。
[0008]本专利技术实施例带来了以下有益效果:
[0009]上述一种三维模型的表面路径生成方法、装置及电子设备,获取目标模型及路径生成请求;该目标模型的表面由多个子表面组成;多个子表面之间直接或间接连接;生成多个子表面对应的可行走位置集合;基于可行走位置集合、多个子表面之间的连接关系、路径
生成请求中的路径起点及路径终点,生成路径生成请求对应的目标模型的表面路径。上述方式可以针对目标模型的多个子表面分别生成其对应的可行走位置集合,从而可以对多种形状的三维模型的表面寻路或导航,满足了用户的多种寻路、导航需求。
[0010]本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
[0011]为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0012]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1为本专利技术实施例提供的一种三维模型的表面路径生成方法的流程图;
[0014]图2为本专利技术实施例提供的改进后的RecastNavigation寻路系统的框架图;
[0015]图3为本专利技术实施例提供的一种三维模型的表面路径生成装置的结构示意图;
[0016]图4为本专利技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0017]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0018]在游戏开发中,寻路及导航的需求十分常见,如非角色玩家(non

player character,简称“NPC”),类人化玩家(Artificial Intelligence,简称“AI”)在特定地点之间往返,怪物角色向玩家控制的虚拟角色的位置逼近以进行攻击等。在一些游戏引擎内(如Unreal游戏引擎)会采用较为成熟的寻路系统,如RecastNavigation。该系统的寻路方式主要包含两部分:其一为寻路网格(NavMesh)的生成,由Recast模块实现;其二为在所生成的寻路网格中进行寻路,由Detour模块实现。
[0019]其中,寻路网格生成算法原理大致如下:
[0020]1、将整个目标模型的场景空间进行体素化(也称为“光栅化”,类似于图像的“类像素化”)处理,划分成一个个同一大小的体素网格。体素化的方向通常为竖直方向。
[0021]2、收集组成目标模型的表面图元(也称为“场景网格”)。将体素网格与场景网格的三角形相交,若三角形法线与竖直方向的夹角小于预先配置的值,则认定该表面图元为可行走表面。
[0022]3、收集所有可行走表面,用特定算法将可行走表面组成的可行走区域切分为一个个尽量大,连续的子区域,并生成区域边界。这些子区域可能为凸多边形或凹多边形。
[0023]4、将上述每个可能是凹多边形的子区域切分成一个个凸多边形,即一个个Poly,
所有Poly数据以及其他辅助数据组合成一个NavMesh。由于凸多边形内部任意两点直线可达的特性,凸多边形是寻路算法内常用的基本寻路单元,如A*寻路的输出可以是一条路径所经过的凸多边形列表。
[0024]其中,基于寻路网格的寻路过程的过程具体如下:
[0025]1、分别扩张起始点及终点,得到起始点和终点所在的Poly。
[0026]2、通过A*算法对寻路网格进行处理,得到寻路网格中从起始点到终点的Poly组成的路径。
[0027]3、采用漏斗(拉绳)算法对Poly路径进行平滑处理,最终得到坐标点列表,将其作为目标路径。
[0028]从寻路网格生成算法第二步可知,算法原理决定了RecastNavigation寻路系统只能竖直向下光栅化,生成竖直向上的表面寻路。作用于球面时,只会在球的上表面生成寻路。也就是说Unreal引擎原生的寻路方案无法实现球面寻路。
[0029]为了解决上述问题本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三维模型的表面路径生成方法,其特征在于,所述方法包括:获取目标模型及路径生成请求;所述目标模型的表面由多个子表面组成;所述多个子表面之间直接或间接连接;所述路径生成请求包括位于所述目标模型的表面的路径起点及路径终点;生成多个所述子表面对应的可行走位置集合;基于所述可行走位置集合、所述多个子表面之间的连接关系、所述路径起点及路径终点,生成所述路径生成请求对应的所述目标模型的表面路径。2.根据权利要求1所述的方法,其特征在于,所述子表面由多个图元连接而成;生成多个所述子表面对应的可行走位置集合的步骤,包括:针对每个所述子表面,基于预设的体素化方向对所述子表面进行旋转处理,得到旋转后的所述子表面;对所述旋转后的子表面进行体素化处理,得到所述子表面对应的多个体素网格;基于所述体素网格与所述子表面的图元的位置关系,确定所述子表面中的可行走图元;基于所述子表面中的可行走图元,生成多个所述子表面对应的可行走位置集合。3.根据权利要求2所述的方法,其特征在于,基于预设的体素化方向对所述子表面进行旋转处理的步骤,包括:将所述子表面的中心位置的法线方向旋转至与预设的体素化方向一致。4.根据权利要求2所述的方法,其特征在于,基于所述体素网格与所述子表面的图元的位置关系,确定所述子表面中的可行走图元的步骤,包括:针对所述子表面的每个图元,从多个所述体素网格中确定与所述图元相交的目标体素网格;判断所述目标体素网格的法线与所述图元的法线的夹角是否小于预设的夹角阈值;如果小于,确定所述图元为可行走图元。5.根据权利要求2所述的方法,其特征在于,所述可行走位置集合包括对应的子表面的多个可行走子区域;基于所述子表面中的可行走图元,生成多个所述子表面对应的可行走位置集合的步骤,包括:将所述子表面中的可行走图元组成的区域确定为所述子表面的可行走区域;基于预设的分割算法对所述可行走区域进行分割处理,得到多个可行走子区域;所述可行走子区域为凸多边形。6.根据权利要求1所述的方法,其特征在于,所述可行走位置集合包括对应的子表面的多个可行走子区域;生成多个所述子表面对应的可行走位置集合之后,所述方法还包括:基于所述多个子表面之间的连接关系及所述可行走位置集合,生成所述多个子表面中,具有连接关系的第一子表面和第二子表面的连接参数;其中,所述连接参数包括位于所述第一子表面的可行走子区域的第一可行走位置、位于所述第二子表面的可行走子区域的第二可行走位置、以及所述第一可行走位置与第二可行走位置之间的指向关系。
7.根据权利要求1所述的方法,其特征在于,基于所述可行走位置集合、所述多个子表面之间的连接关系、所述路径起点及路径终点,生成所述路径生成请求对应的所述目标模型的表面路径的步骤,包括:判断所述路径起点和所述路径终点是否位于同一个所述子表面内;如果是,将所述子表面确定为目标子表面,基于所述目标子表面的可行走位置集合、所述路径起点和所述路径终点,生成所述路径生成请求对应的所述目标模型的表面路径;如果否,基于所述可行走位置集合、所述多个子表面之间的连接关系、所述路径起点及路径终点,生成所述路径生成请求对应的所述目标模型的表面路径。8.根据权利要求7所述的方法,其特征在于,所述可行走位置集合包括对应的子表面的多个可行走子区域;所述可行走子区域为凸多边形;基于所述目标子表面的可行走位置集合、所述路径起点和所述路径终点,生成所述路径生成请求对应的所述目标模型的表面路径的步骤,包括:基于A*算法对所述路径起点、所述路径终点、所述目标子表面的可行走集合进行寻路处理,得到所述目标子表面的可行走集合中的目标子区域;基于预设的几何寻路算法,生成所述目标子区域中的可行走子路径;对由所述可行走子路径组成的总路径进行平滑处理,得到处理后的总理路径;将所述处理后的总理路径确定为所述路径生成请求对应的所...

【专利技术属性】
技术研发人员:黄桂豪
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1