本发明涉及三维虚拟空间技术领域,特别涉及一种三维虚拟空间中的寻路方法。
背景技术:
在三维虚拟空间场景中,经常会对象从起始点到终点。在移动前,需要计算出从起点到终点的路径信息供使用。
在不可变的游戏场景下,可以通过在场景制作时预先摆放路点的方式预先产生路点信息,然后利用路点信息使用搜索算法进行路径规划。或者通过对场景预先生成导航网格,基于导航网格使用搜索算法进行路径规划。
在由体素构成的游戏场景里,由于场景会被玩家修改从而产生变化,使用预先摆放的路点来方式来进行路径规划,生成的路径在场景变化后将不再正确。预先生成导航网格进行路径规划具有同样的问题,同时,实时的利用场景信息生成导航网格速度较慢。
技术实现要素:
为了解决现有技术存在的不足,本发明的目的在于提供一种空间自由寻路方法,在三维体素空间中,利用体素方格进行起点到终点的路径规划。
为实现上述目的,本发明提供的空间自由寻路方法,包括以下步骤,
设置寻路的起点与终点,及寻路对象所占的体素空间;
将所述起点、终点转换成与场景匹配的体素方格;
使用体素方格作为节点进行路径搜索;
对体素方格进行扩展,得到扩展的体素方格节点;
对所述扩展的体素方格节点进行可达性判断,提取扩展的可达节点,进行路径搜索;
将搜索出的体素方格节点反转计算成三维空间中的点作为实际路径点。
进一步地,所述使用体素方格作为节点进行路径搜索的步骤,是使用体素方格作为节点,采用带启发式的广度优先搜索算法进行路径搜索。
进一步地,所述对体素方格进行扩展,得到扩展的体素方格的步骤,包括,向体素方格六个面相邻的方向扩展,得到扩展的体素方格。
更进一步地,所述对所述扩展的体素方格节点进行可达节点的判断,提取扩展的可达节点,进行路径搜索的步骤,进一步包括,
判断所述扩展的体素方格节点下方是否有节点;
判断所述扩展的体素方格节点所在空间与寻路对象所占的体素空间是否相交;
提取节点下方有节点、且所在空间与寻路对象所占的体素空间不相交的扩展的体素方格节点作为扩展的可达节点;
使用扩展的可达节点,采用带启发式的广度优先搜索算法进行路径搜索。为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行上述空间自由寻路方法的步骤。
为实现上述目的,本发明还一种游戏终端设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行空间自由寻路方法的步骤。
本发明的空间自由寻路方法,基于体素的空间具有无需预先摆放路点或预先生成导航网格的优点,且能在场景改变后生成正确的路径,同时具有一定的实时性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的空间自由寻路方法的流程图;
图2为根据本发明的空间自由寻路方法示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的基于体素的空间空间自由寻路方法的流程图,下面将参考图1,对本发明的基于体素的空间空间自由寻路方法进行详细描述。
首先,在步骤101,设置寻路的起点与终点并设置寻路对象所占的体素空间。
在步骤102,将起点与终点转换成与场景匹配的体素方格,使用体素方格节点,预留节点池供用。
在步骤103,使用带启发式的广度优先搜索算法按体素方格作为节点进行搜索。
在步骤104,进行体素方格的扩展,并对扩展的体素方格节点进行可达性判断,得到扩展的可达节点。
在该步骤中,体素方格向六个面相邻的方向扩展进行体素方格的扩展,并对扩展的体素方格节点进行可达性判断。判断包括:是否可以站立、是否相容。是否可以站立的判断条件为目标节点的下方是否有节点,有节点可站立,否则不可站立。是否相容的判断条件为:寻路对象所占的体素空间是否与目标节点所在空间相交,不相交则相容,相交则不相容。相交判断的方法为寻路对象所占的体素空间是否有体素,有体素则判断为相交,无体素则不相交。对于可站立且相容的节点判断为可达节点。
图2为根据本发明的空间自由寻路方法示意图,如图2所示,左图为寻路对象所占的体素空间示例。右图为搜索的体素空间示例。右图中的左边箭头示例的位置在体素对象所占的空间内有体素被判断为相交,右边箭头示例的位置在体素对象所占的空间内无体素配判断为不相交,体素对象可通过此位置。
在步骤105,使用扩展的可达节点进一步进行带启发式的广度优先搜索。如果达到目标节点,则形成完整路径;如果节点池耗尽,但未达到目标节点,则形成部分路径且目标可达性未知。此时可能由于目标位置非常远,同时可能存在完整路径,也可能不存在完整路径,即隔离的。如果无法继续扩展则形成部分路径且目标不可达。
在步骤106,将搜索出的体素方格节点反转计算成三维空间中的点作为实际路径点。
本发明还提供一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行上述空间自由寻路方法的步骤。
本发明还一种游戏终端设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行空间自由寻路方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。