CN108090155A - 一种2d网格寻路方法、装置及存储介质 - Google Patents
一种2d网格寻路方法、装置及存储介质 Download PDFInfo
- Publication number
- CN108090155A CN108090155A CN201711316317.6A CN201711316317A CN108090155A CN 108090155 A CN108090155 A CN 108090155A CN 201711316317 A CN201711316317 A CN 201711316317A CN 108090155 A CN108090155 A CN 108090155A
- Authority
- CN
- China
- Prior art keywords
- region
- grid
- pathfinding
- searching
- grids
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Game Theory and Decision Science (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种2D网格寻路方法、装置及存储介质,所述方法包括步骤:根据指定的分辨率对2D网格进行规则区块的划分;基于碰撞大小,构建单个规则区块内的区域并确定邻接规则区块内区域的连通关系;基于区域的连通关系,在区域之间进行分级分段寻路。本发明的2D网格寻路方法、装置及存储介质,相对于没有层次划分的普通A星算法,在大规模地图下,采用层次划分从而极大地降低寻路响应时间(从秒级降低到毫秒级),使寻路可用于实时环境中。而相对于采用普通的层次划分的寻路方法,本发明2D网格寻路方法、装置及存储介质,还支持动态场景修改以及不同碰撞大小的寻路需求,并且规划出来的路径更自然。
Description
技术领域
本发明涉及2D网格寻路技术领域,特别是涉及一种适用于层次划分且支持动态场景修改以及不同碰撞大小的2D网格寻路方法、装置及存储介质。
背景技术
2D网格及导航网格(NavMesh)是目前游戏业内场景寻路时常用的数据组织方法。其中,2D网格结构简单,主要用于平面游戏中;导航网格则常用于不需要支持角色碰撞或者3D寻路的系统中。
寻路过程中常用的搜寻算法为A*算法(俗称A星算法),A星算法既可用于2D网格的寻路中,也可用于导航网格的寻路中。A星算法应用于2D网格中时,由于其内部需要进行排序,当搜索范围增大时,其搜索性能会急剧下降,导致其不可用于实时环境。
寻路时,业内一般会将2D网格划分为多级的结构(即层次划分),层次划分时,最精细的级别为原始网格信息,往上划分时逐渐降低分辨率,同时维护新的级别之间各个节点的连通关系。但是基于层次划分的方法,很难支持动态场景修改以及不同碰撞大小的寻路需求。
因此,目前亟需一种适用于层次划分且支持动态场景修改以及不同碰撞大小的2D网格寻路方法。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种2D网格寻路方法、装置及存储介质,可以适用于层次划分且支持动态场景修改以及不同碰撞大小。
为实现上述目的,本发明提供的2D网格寻路方法,包括以下步骤:
根据指定的分辨率对2D网格进行规则区块的划分;
基于碰撞大小,构建单个规则区块内的区域并确定邻接规则区块内区域的连通关系;
基于区域的连通关系,在区域之间进行分级分段寻路。
进一步地,所述基于碰撞大小,构建单个规则区块内的区域的步骤是:
依次遍历规则区块内的格子,若某一格子满足碰撞大小,则查找与所述某一格子直接相邻的相同碰撞大小的格子是否已经属于某个区域,是则将所述某一格子加入所述某个区域,否则新建一个区域并将所述某一格子加入新建的区域。
进一步地,以某一格子为中心,若其周围的N×N个格子都可行走,则所述某一格子满足规定的碰撞大小,其中,规定的碰撞大小为N×N个格子,N为正整数。
进一步地,所述确定邻接规则区块内区域的连通关系的步骤是:
搜索规则区块边缘满足碰撞大小的格子与临接的规则区块内的区域是否连通,是则格子所在区域与临接的规则区块内的区域连通。
进一步地,所述基于区域的连通关系,在区域之间进行分级分段寻路的步骤包括以下步骤:
根据区域的连通关系,在区域之间进行粗糙级别的区域寻路;根据区域寻路的结果,分次地对每段区域路线进行细化寻路。
进一步地,所述的2D网格寻路方法,还包括步骤:
若修改的格子导致两个区域之间连通,则将所述两个区域合并,合并前所述两个区域与临接的规则区块内的区域的连通关系也进行合并。
为实现上述目的,本发明提供的计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现2D网格寻路方法的步骤。
为实现上述目的,本发明提供的2D网格寻路装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现2D网格寻路方法的步骤。
本发明的2D网格寻路方法、装置及存储介质,相对于没有层次划分的普通A星算法,在大规模(1024*1024及以上)地图下,采用层次划分从而极大地降低寻路响应时间(从秒级降低到毫秒级),使寻路可用于实时环境中。而相对于采用普通的层次划分的寻路方法,本发明2D网格寻路方法、装置及存储介质,还支持动态场景修改以及不同碰撞大小的寻路需求,并且规划出来的路径更自然。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的2D网格寻路方法流程图;
图2为根据本发明的2D网格划分规则区块的状态示意图;
图3为根据本发明的采用1×1的碰撞大小构建区域的状态示意图;
图4为根据本发明的1×1的碰撞大小构建的区域连通的状态示意图;
图5为根据本发明的5×5的碰撞大小构建区域的状态示意图;
图6为根据本发明的5×5的碰撞大小构建的区域连通的状态示意图;
图7为根据本发明的5×5的碰撞大小的粗糙级别的区域寻路的结果示意图;
图8为根据本发明的动态场景碰撞后区域变化的状态示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明的2D网格寻路方法,适用于2D平面及2级层次划分的地图,用于在目标对象的起始点与目标点之间搜寻路径。
图1为根据本发明的2D网格寻路方法流程图,下面将参考图1,对本发明的2D网格寻路方法进行详细描述。
本实施例支持的碰撞大小为3种,分别为1 × 1、3 × 3和5×5个格子,并且适用但不限于2048*2048及以下分辨率的2D网格。
在步骤110,对2D网格进行规则区块的划分。
该步骤中,如图2所示,将2D网格按32*32分辨率进行规则区块的划分。图2为根据本发明的2D网格划分规则区块的状态示意图,其中,细框线为2D网格中初始格子的划分边界,粗框线为规则区块的划分边界,黑色格子为2D网格内固定的阻挡格子。在图2中一共划分出了4个规则区块:左上角、右上角、左下角和右下角区块。
划分规则区块的目的是为了分级分段寻路,而分级分段寻路的目的是为了减少单次寻路的搜索空间。
在步骤120,基于碰撞大小,构建单个规则区块内的区域并确定邻接规则区块内区域的连通关系。
该步骤中,首先,使用1×1的碰撞大小来构建单个规则区块内的区域,构建规则区块内的区域的步骤如下:
1)取规则区块内的一个未遍历的格子;
2)判断该格子是否满足碰撞大小,若以该格子为中心,其周围的1×1个格子都可行走,则该格子满足碰撞大小;
3)若满足碰撞大小,则查找与该格子直接相邻的相同碰撞大小的格子是否已经属于某个区域,是则将该格子加入某个区域,否则新建一个区域并将该格子加入新建的区域;
4)返回步骤1)。
图3为根据本发明的采用1×1的碰撞大小构建区域的状态示意图,在图3中,Ⓐ、Ⓑ分别代表构建的区域,左下角和右下角区块中构建的区域个数一致。
其次,采用任意搜索算法,确定1×1的碰撞大小构建的区域的连通关系。确定连通关系时,只搜索规则区块边缘满足碰撞大小的格子与临接的规则区块内的区域是否连通(因为同一个规则区块内,连通的格子都属于同一个区域),若连通,则格子所在区域与临接的规则区块内的区域连通。
图4为根据本发明的1×1的碰撞大小构建的区域连通的状态示意图,图4中构建的区域Ⓐ、Ⓑ之间的连通关系通过相连的细线表示。
再次,使用3×3的碰撞大小来构建单个规则区块内的区域,以及采用任意搜索算法,确定3×3的碰撞大小构建的区域的连通关系。其中,判断格子是否满足碰撞大小时,若以该格子为中心,其周围的3×3个格子都可行走,则该格子满足碰撞大小。
然后,使用5×5的碰撞大小来构建单个规则区块内的区域,以及采用任意搜索算法,确定5×5的碰撞大小构建的区域的连通关系。其中,判断格子是否满足碰撞大小时,若以该格子为中心,其周围的5×5个格子都可行走,则该格子满足碰撞大小。
图5为根据本发明的5×5的碰撞大小构建区域的状态示意图,在图5中,左下角和右下角区块中构建的区域(虚线框住的区域)个数不同:左下角区域中构建了3个区域Ⓐ、Ⓑ、Ⓒ,右下角区域中构建了2个区域Ⓐ、Ⓑ。
图6为根据本发明的5×5的碰撞大小构建的区域连通的状态示意图,在图6中,左下角区块中的区域Ⓐ、Ⓒ不连通。
在步骤130,基于区域的连通关系,在区域之间进行分级分段寻路。
该步骤中,当碰撞大小为5×5,目标对象的起始点为点S、目标点为点E时,先根据区域的连通关系,进行粗糙级别的区域寻路,寻路的路线结果为:点S→右下角区块中的区域Ⓐ→左下角区块中的区域Ⓑ→左上角区块中的区域Ⓐ→左下角区块中的区域Ⓐ。
图7为根据本发明的5×5的碰撞大小的粗糙级别的区域寻路的结果示意图,如图7所示,由于5×5的碰撞大小无法通过左下角区块中的阻挡格子形成的狭小的通道,目标对象最终会停留在通道的入口前。
获取到上述路线结果后,再进行分时分段的细化区域寻路,首先在点S和右下角区块中的区域Ⓐ之间进行细化寻路,其次在右下角区块中的区域Ⓐ和左下角区块中的区域Ⓑ之间进行细化寻路,再次在左下角区块中的区域Ⓑ和左上角区块中的区域Ⓐ之间进行细化寻路,然后在左上角区块中的区域Ⓐ和左下角区块中的区域Ⓐ之间进行细化寻路。
下面通过具体的实施例,再次详细地阐述本发明的2D网格寻路方法的技术方案及其有益效果。
采用本发明的2D网格寻路方法,首先,对2048*2048分辨率场景的2D网格,进行规则区块的划分(二级划分),划分为32*32的规则区块,对于2048*2048的分辨率场景,总共有64*64个规则区块,搜索空间为64*64。对于2048*2048分辨率场景的2D网格,如果不做分级划分,单次搜索的空间太大。
其次,基于划分的规则区块,进行粗糙级别的区域寻路,再在规则区块之间进行分时分段的细化区域寻路。寻路时搜索空间的最大值为96*96((32*3) * (32*3),即3*3个大的规则区块)。
进行分时分段的细化区域寻路时,根据粗糙级别的区域寻路的路线结果中区域路线的分段情况,分次地对每段区域路线进行细化寻路,不再需要仅通过一次搜索就完成路线结果中所有的区域路线的细化寻路,从而极大的提高了寻路响应速度。
对于2048*2048分辨率场景的2D网格,若采用原始A星算法进行寻路,单次寻路耗时(目标对象发起寻路到可以行走时的间隔)在3秒以上;而若按照本发明的2D网格寻路方法进行分级分段的寻路,单次寻路耗时在1毫秒(0.001秒)以下。
本发明的2D网格寻路方法,能够支持动态场景修改,例如动态场景碰撞。图8为根据本发明的动态场景碰撞后区域变化的状态示意图,如图8所示,场景碰撞后,区域会发生变化。若修改的格子导致两个区域之间连通,则将该两个区域合并,合并前该两个区域与临接的规则区块内的区域的连通关系也进行合并,之后可以按本发明的2D网格寻路方法继续进行寻路。
基于本发明的2D网格寻路方法,本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述2D网格寻路方法的步骤。
基于本发明的2D网格寻路方法,本发明还提出一种2D网格寻路装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述2D网格寻路方法的步骤。
本发明的2D网格寻路方法、装置及存储介质,相对于没有层次划分的普通A星算法,在大规模(1024*1024及以上)地图下,采用层次划分从而极大地降低寻路响应时间(从秒级降低到毫秒级),使寻路可用于实时环境中。而相对于采用普通的层次划分的寻路方法,本发明2D网格寻路方法、装置及存储介质,还支持动态场景修改以及不同碰撞大小的寻路需求,并且规划出来的路径更自然。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种2D网格寻路方法,其特征在于,包括以下步骤:
根据指定的分辨率对2D网格进行规则区块的划分;
基于碰撞大小,构建单个规则区块内的区域并确定邻接规则区块内区域的连通关系;
基于区域的连通关系,在区域之间进行分级分段寻路。
2.根据权利要求1所述的2D网格寻路方法,其特征在于,所述基于碰撞大小,构建单个规则区块内的区域的步骤是:
依次遍历规则区块内的格子,若某一格子满足碰撞大小,则查找与所述某一格子直接相邻的相同碰撞大小的格子是否已经属于某个区域,是则将所述某一格子加入所述某个区域,否则新建一个区域并将所述某一格子加入新建的区域。
3.根据权利要求2所述的2D网格寻路方法,其特征在于,进一步包括,
以某一格子为中心,若其周围的N×N个格子都可行走,则所述某一格子满足规定的碰撞大小,其中,规定的碰撞大小为N×N个格子,N为正整数。
4.根据权利要求1所述的2D网格寻路方法,其特征在于,所述确定邻接规则区块内区域的连通关系的步骤是:
搜索规则区块边缘满足碰撞大小的格子与临接的规则区块内的区域是否连通,是则格子所在区域与临接的规则区块内的区域连通。
5.根据权利要求1所述的2D网格寻路方法,其特征在于,所述基于区域的连通关系,在区域之间进行分级分段寻路的步骤包括以下步骤:
根据区域的连通关系,在区域之间进行粗糙级别的区域寻路;根据区域寻路的结果,分次地对每段区域路线进行细化寻路。
6.根据权利要求1所述的2D网格寻路方法,其特征在于,还包括步骤:
若修改的格子导致两个区域之间连通,则将所述两个区域合并,合并前所述两个区域与临接的规则区块内的区域的连通关系也进行合并。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任一项所述2D网格寻路方法的步骤。
8.一种2D网格寻路装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6中任一项所述2D网格寻路方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711316317.6A CN108090155A (zh) | 2017-12-12 | 2017-12-12 | 一种2d网格寻路方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711316317.6A CN108090155A (zh) | 2017-12-12 | 2017-12-12 | 一种2d网格寻路方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108090155A true CN108090155A (zh) | 2018-05-29 |
Family
ID=62174755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711316317.6A Withdrawn CN108090155A (zh) | 2017-12-12 | 2017-12-12 | 一种2d网格寻路方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090155A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109685903A (zh) * | 2018-12-29 | 2019-04-26 | 深圳市柠檬互动科技有限公司 | 一种超大地图移动优化方法 |
CN110827303A (zh) * | 2019-11-14 | 2020-02-21 | 珠海金山网络游戏科技有限公司 | 一种虚拟场景的图像编辑方法及装置 |
CN112221144A (zh) * | 2020-11-03 | 2021-01-15 | 网易(杭州)网络有限公司 | 三维场景寻路方法及装置、三维场景地图处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241507A (zh) * | 2008-01-17 | 2008-08-13 | 腾讯科技(深圳)有限公司 | 一种地图寻路方法及系统 |
-
2017
- 2017-12-12 CN CN201711316317.6A patent/CN108090155A/zh not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241507A (zh) * | 2008-01-17 | 2008-08-13 | 腾讯科技(深圳)有限公司 | 一种地图寻路方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109685903A (zh) * | 2018-12-29 | 2019-04-26 | 深圳市柠檬互动科技有限公司 | 一种超大地图移动优化方法 |
CN109685903B (zh) * | 2018-12-29 | 2023-09-29 | 网易(杭州)网络有限公司 | 一种超大地图移动优化方法 |
CN110827303A (zh) * | 2019-11-14 | 2020-02-21 | 珠海金山网络游戏科技有限公司 | 一种虚拟场景的图像编辑方法及装置 |
CN110827303B (zh) * | 2019-11-14 | 2022-07-08 | 珠海金山网络游戏科技有限公司 | 一种虚拟场景的图像编辑方法及装置 |
CN112221144A (zh) * | 2020-11-03 | 2021-01-15 | 网易(杭州)网络有限公司 | 三维场景寻路方法及装置、三维场景地图处理方法及装置 |
CN112221144B (zh) * | 2020-11-03 | 2024-03-15 | 网易(杭州)网络有限公司 | 三维场景寻路方法及装置、三维场景地图处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102496187B (zh) | 一种基于三角形网格的追踪等值线至边界及断层的方法 | |
US10685201B2 (en) | Method and system for recognizing location information in two-dimensional code | |
CN106600697B (zh) | 一种面向3d场景的导航网格地图表示方法 | |
CN106582023B (zh) | 一种游戏寻路方法和装置 | |
CN110322694A (zh) | 一种城市交通控制片区划分的方法及装置 | |
CN108303098B (zh) | 机器人路径规划方法及设备 | |
CN106157341A (zh) | 生成合成图片的方法及装置 | |
CN106730841A (zh) | 一种寻路方法和装置 | |
CN108090155A (zh) | 一种2d网格寻路方法、装置及存储介质 | |
CN109410332A (zh) | 基于点线面的三维空间几何虚拟模型细节层次裁剪方法 | |
Richter et al. | Object class segmentation of massive 3D point clouds of urban areas using point cloud topology | |
CN104239431B (zh) | 三维gis模型显示方法及装置 | |
CN105222793A (zh) | 一种基于矢量地图数据模型的城市层次化区域划分方法 | |
CN112734810B (zh) | 一种障碍物追踪方法及装置 | |
CN108286976A (zh) | 一种点云数据的融合方法和装置、以及混合导航系统 | |
CN116036604B (zh) | 数据处理方法、装置、计算机及可读存储介质 | |
CN102339478B (zh) | 一种从等高线图生成数字高程模型的方法和装置 | |
CN106844089A (zh) | 一种用于恢复树形数据存储的方法与设备 | |
KR20090020924A (ko) | 3차원 광선 추적 시스템에서 적응형 다중 계층 케이디-트리구조 알고리즘을 이용한 광선 추적 방법 및 장치 | |
CN104143214A (zh) | 一种电子地图多边形三角剖分方法与装置 | |
US9645280B2 (en) | Global grid building in reverse faulted areas by an optimized unfaulting method | |
CN110018812A (zh) | 一种图形绘制方法和装置 | |
KR20050078670A (ko) | 라이다 데이터로부터 셰도-그리드를 이용한 건물 외곽선자동추출방법 | |
CN115830207B (zh) | 三维场景漫游方法、装置、设备和介质 | |
CN116010510A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180529 |
|
WW01 | Invention patent application withdrawn after publication |