游戏中虚拟路网的构建方法及装置与流程

文档序号:19056174发布日期:2019-11-06 01:18阅读:248来源:国知局
游戏中虚拟路网的构建方法及装置与流程

本申请涉及计算机技术领域,尤其是涉及一种游戏中虚拟路网的构建方法及装置。



背景技术:

越来越多的游戏,包括手机游戏,正在朝着大世界,开放世界,丰富细节,真实还原的游戏体验方向发展,换句话说,越来越多的游戏地图越来越大,内容也越来越丰富。

目前的方式主要是开发人员来实现游戏地图中的每一个元素,但是,这种方式面临以下困难:构建地图所需要资源数量极其庞大,人力成本越来越高。同时开发周期长,特别是项目初期,影响了产品上线的时间。



技术实现要素:

有鉴于此,本申请提供了一种游戏中虚拟路网的构建方法及装置,以降低游戏中路网的构建成本,提高游戏中虚拟路网的构建的效率,进而缩短开发周期。

第一方面,本申请实施例提供了一种游戏中虚拟路网的构建方法。包括:获取第一路网的编辑信息,所述第一路网的编辑信息包括第一路网的路口描述和第一路网的道路描述,所述第一路网的路口描述包括第一点的位置和对应于第一点的路口属性,所述第一路网的道路描述包括第一线段组位置和对应于第一线段组的道路属性;按照预设的切点设置规则和所述第一路网的道路属性,将所述第一线段组切分为第一路网的道路线段组和第一路网的路口线段组,并确定第一路网的路口的切分信息和第一路网的道路的切分信息,所述第一路网的路口的切分信息包括第一点和第一路网的路口线段组,所述第一路网的道路的切分信息包括第一路网的道路线段组;根据所述第一路网的每个路口的切分信息、对应于第一点的路口属性和对应于第一路网的路口线段组的道路属性,生成所述第一路网的每个路口对应的虚拟路口;根据所述第一路网的每条道路的切分信息和对应于第一路网的道路线段组的道路属性,生成所述第一路网的每条道路对应的虚拟道路;将所述第一路网对应的虚拟路口和虚拟道路组合,生成所述第一路网的虚拟路网。

在一个可能的实现中,所述获取第一路网的编辑信息,包括:获取第二路网的编辑信息,所述第二路网的编辑信息包括第二路网的路口描述和第二路网的道路描述;按照预设的修正规则修正第二路网的编辑信息,得到修正的第二路网的编辑信息;将修正的所述第二路网的编辑信息按照预设的划分规则,划分为多个第一路网的编辑信息;其中,所述预设的划分规则包括:相邻的第一路网的编辑信息之间包括重叠的部分。

在一个可能的实现中,所述方法还包括:将所述第二路网对应的每个第一路网对应的虚拟路网合并,得到所述第二路网的虚拟路网。

在一个可能的实现中,所述第二路网的路口描述包括第二点的位置和对应于第二点的路口属性,所述第二路网的道路描述包括第二线段组位置和对应于第二线段组的道路属性;所述预设的修正规则包括下述一项或多项:判断相交的第二线段组之间的交汇处是否存在第二点,如果不存在,增加交汇处对应的第二点;修正第二线段组的走向,使得同一段道路对应的线段走向一致;对第二点和第二线段进行合并或拆分,使得第二点之间通过单独的第二线段连接。

在一个可能的实现中,根据所述第一路网的每个路口的切分信息、对应于第一点的路口属性和对应于路口线段组的道路属性,生成所述第一路网的每个路口对应的虚拟路口的步骤,包括:从所述第一路网的路口的切分信息中,分离出路口属性为环岛路口的切分信息;对于每个环岛路口的切分信息,均执行以下步骤:根据所述环岛路口的路口线段组的位置关系和对应于该路口线段组的道路属性,每两个相邻的路口线段生成一个u型外框;

根据所述环岛路口对应的多个u型外框生成外围道路的交汇部分;根据所述环岛路口的第一点位置以及路口属性,生成所述环岛路口的内部圈线部分;将所述环岛路口的外围道路的交汇部分和内部圈线部分进行合并,并进行路面贴图得到虚拟环岛。

在一个可能的实现中,根据所述第一路网的每个路口的切分信息、对应于第一点的路口属性和对应于路口线段组的道路属性,生成所述第一路网的每个路口对应的虚拟道路的步骤,包括:从所述第一路网的路口的切分信息中,分离出路口属性为通用路口的切分信息;根据所述通用路口的路口线段组的位置关系和对应于该路口线段组的道路属性,每两条相邻的路口线段向外平移路的指定宽度,获得一个通用路口交点,所述指定宽度根据每两条相邻的路口线段对应的道路属性确定;根据每个所述通用路口对应的交点的切点,确定所述通用路口的外轮廓,基于所述通用路口的外轮廓进行路面和路沿贴图;在所述通用路口的路面贴图上,所述切点对应的位置生成斑马线,得到虚拟通用路口。

在一个可能的实现中,所述第一路网的道路属性包括第一路网的道路宽度;根据所述第一路网的每条道路的切分信息和对应于道路线段组的道路属性,生成所述第一路网的每条道路对应的虚拟道路的步骤,包括:根据所述第一路网的每条道路的道路线段组对应的道路宽度,生成每条道路的外框;依次根据所述第一路网的每条道路的道路描述判断是否存在弯道部分;对于所述第一路网中存在弯道部分的道路,将该道路的道路描述分离为弯道部分和直道部分;根据预设的弯道路面贴图规则,基于道路的外框沿弯道走向进行弯道部分的路面贴图;根据预设的直道路面贴图规则,基于道路的外框进行直道部分的路面贴图;将所述存在弯道部分的道路的弯道部分的路面和直道部分的路面合并,并根据所述存在弯道部分的道路的对应的道路属性生成路沿和标线,得到该所述存在弯道部分的道路的虚拟道路。

在一个可能的实现中,根据所述第一路网的每条道路的切分信息和对应于道路线段组的道路属性,生成所述第一路网的每条道路对应的虚拟路口的步骤,还包括:对于不存在弯道部分的道路,根据预设的直道路面贴图规则,基于该道路的外框进行直道部分的路面贴图,并根据该道路的道路线段组对应的道路属性生成路沿和标线,得到该道路的虚拟道路。

在一个可能的实现中,根据预设的弯道路面贴图规则,基于道路的外框沿弯道走向进行弯道部分的路面贴图的步骤,包括:判断所述弯道部分对应的转弯幅度是否符合道路运行要求;如果不符合,将所述弯道部分的道路的外框进行平滑处理,并基于平滑处理后的外框,按照道路的外框沿弯道走向进行路面贴图。

在一个可能的实现中,还包括:在第一路网的虚拟路网对应的虚拟路口和虚拟道路的衔接处生成人行道或排水沟。

在一个可能的实现中,还包括:基于所述第一路网的虚拟路网的道路外框,按照预设虚拟附属物生成规则,生成所述第一路网的路边的虚拟附属物。

在一个可能的实现中,还包括:确定虚拟地形;将所述第一路网的虚拟路网投射到相同位置的虚拟地形上,并对所述虚拟地形进行平滑处理。

在一个可能的实现中,所述方法应用于开发终端,所述开发终端可显示图形用户界面,所述图形用户界面包括所述虚拟路网,所述虚拟路网对应有第一属性,所述第一属性包括第一路网的路口属性和/或第一路网的道路属性,所述方法还包括:响应于针对所述虚拟路网的属性修改触发操作,显示属性修改工具面板;响应于针对所述属性修改工具面板中的第一属性的修改触发操作,修改所述第一属性。

在一个可能的实现中,所述方法应用于开发终端,所述开发终端可显示图形用户界面,所述图形用户界面包括所述虚拟路网,所述虚拟路网包括虚拟模块,所述虚拟模块为虚拟路口和/或虚拟道路,所述方法还包括:响应于针对第一虚拟模块的属性修改触发操作,显示待采样的第二虚拟模块;响应针对第二虚拟模块的属性采样操作,将所述第二虚拟模块的属性应用于所述第一虚拟模块。

在一个可能的实现中,第一路网的编辑信息包括编辑的道路合围区域,所述编辑的道路合围区域对应有属性,该方法还包括:确定第一路网的虚拟路口和虚拟道路的外框信息;根据第一路网的虚拟路口和虚拟道路的外框信息,生成待定的道路合围区域;按照预设匹配规则,匹配所述待定的道路合围区域和所述编辑的道路合围区域,将所述编辑的道路合围区域的属性继承给与其匹配的待定的道路合围区域。

第二方面,提供了一种游戏中虚拟路网的构建装置。该装置包括:获取单元,用于获取第一路网的编辑信息,所述第一路网的编辑信息包括第一路网的路口描述和第一路网的道路描述,所述第一路网的路口描述包括第一点的位置和对应于第一点的路口属性,所述第一路网的道路描述包括第一线段组位置和对应于第一线段组的道路属性;切分单元,用于按照预设的切点设置规则和所述第一路网的道路属性,将所述第一线段组切分为第一路网的道路线段组和第一路网的路口线段组,并确定第一路网的路口的切分信息和第一路网的道路的切分信息,所述第一路网的路口的切分信息包括第一点和第一路网的路口线段组,所述第一路网的道路的切分信息包括第一路网的道路线段组;生成单元,用于根据所述第一路网的每个路口的切分信息、对应于第一点的路口属性和对应于第一路网的路口线段组的道路属性,生成所述第一路网的每个路口对应的虚拟路口;生成单元还用于,根据所述第一路网的每条道路的切分信息和对应于第一路网的道路线段组的道路属性,生成所述第一路网的每条道路对应的虚拟道路;组合单元,用于将所述第一路网对应的虚拟路口和虚拟道路组合,生成所述第一路网的虚拟路网。

第三方面,本申请实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面或第二方面所述方法。

本发明实施例带来了以下有益效果:

本发明实施例提供的一种游戏中虚拟路网的构建方法及装置。能够获取第一路网的编辑信息,该第一路网的编辑信息包括第一路网的路口描述和第一路网的道路描述,该第一路网的路口描述包括第一点的位置和对应于第一点的路口属性,该第一路网的道路描述包括第一线段组位置和对应于第一线段组的道路属性,以此通过点和线来描述路网,降低了路网的编辑信息的编辑难度,以及运行时需要的资源;通过按照预设的切点设置规则和第一路网的道路属性,将第一线段组切分为道路线段组和路口线段组,并基于路口的切分信息和道路的切分信息分别生成每个路口对应的虚拟路口和每条道路对应的虚拟道路;最终将虚拟路口和虚拟道路组合,生成虚拟路网,以此可以将虚拟路网按照生成逻辑的复杂程度进行划分,并分别进行处理,降低了路网的编辑信息的复杂度,减少了处理过程中数据的相互干扰,提高了虚拟路网的构建效率,降低了成本的同时,虚拟路网的准确率更高。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种游戏中虚拟路网的构建方法流程示意图;

图2为本申请实施例提供的游戏中虚拟路网的构建方法中,路网的编辑信息的一个示例;

图3为本申请实施例提供的游戏中虚拟路网的构建方法中,路网的编辑信息的另一个示例;

图4为本申请实施例提供的游戏中虚拟路网的构建方法中,增加第一点过程的一个示例;

图5为本申请实施例提供的游戏中虚拟路网的构建方法中,路网的编辑信息的另一个示例;

图6为本申请实施例提供的游戏中虚拟路网的构建方法中,路网的编辑信息的另一个示例;

图7为本申请实施例提供的游戏中虚拟路网的构建方法中,路网的编辑信息的另一个示例;

图8为本申请实施例提供的游戏中虚拟路网的构建方法中,分块过程的一个示例;

图9为本申请实施例提供的游戏中虚拟路网的构建方法中,切分信息的另一个示例;

图10为本申请实施例提供的游戏中虚拟路网的构建方法中,分块环岛生成过程的一个示例;

图11为本申请实施例提供的游戏中虚拟路网的构建方法中,分块环岛生成过程的另一个示例;

图12为本申请实施例提供的游戏中虚拟路网的构建方法中,分块环岛生成过程的另一个示例;

图13为本申请实施例提供的游戏中虚拟路网的构建方法中,通用路口切分信息的一个示例;

图14为本申请实施例提供的游戏中虚拟路网的构建方法中,通用路口生成过程的另一个示例;

图15为本申请实施例提供的游戏中虚拟路网的构建方法中,通用路口生成过程的另一个示例;

图16为本申请实施例提供的游戏中虚拟路网的构建方法中,通用路口生成过程的另一个示例;

图17为本申请实施例提供的游戏中虚拟路网的构建方法中,通用路口生成过程的另一个示例;

图18为本申请实施例提供的一种游戏中虚拟路网的构建装置结构示意图;

图19为本申请实施例提供的一种计算机设备结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例的条目中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面结合附图对本发明实施例进行进一步地介绍。

图1为本发明实施例提供的一种游戏中虚拟路网的构建方法流程示意图。如图1所示,该方法包括:

s110,获取第一路网的编辑信息。

该第一路网的编辑信息包括第一路网的路口描述和第一路网的道路描述。该第一路网的路口描述包括第一点的位置和对应于第一点的路口属性;该第一路网的道路描述包括第一线段组位置和对应于第一线段组的道路属性。

s120,按照预设的切点设置规则和第一路网的道路属性,将第一线段组切分为第一路网的道路线段组和第一路网的路口线段组,并确定第一路网的路口的切分信息和第一路网的道路的切分信息。

该第一路网的路口的切分信息包括第一点和第一路网的路口线段组;该第一路网的道路的切分信息包括第一路网的道路线段组。

s130,根据第一路网的每个路口的切分信息、对应于第一点的路口属性和对应于第一路网的路口线段组的道路属性,生成第一路网的每个路口对应的虚拟路口。

s140,根据第一路网的每条道路的切分信息和对应于第一路网的道路线段组的道路属性,生成第一路网的每条道路对应的虚拟道路。

s150,将第一路网对应的虚拟路口和虚拟道路组合,生成第一路网的虚拟路网。

下面对上述步骤s110-s150进行详细介绍。

在上述步骤s110中,路网的编辑信息可以通过点和线来表示的路网信息。其中,点用来确定位置,例如,可以通过点的经纬度或坐标来表示位置。线可以通过点之间的连接关系来表示,该线可以用来标识道路;根据该线和与该线对应的点的位置,可以确定道路的位置。在一些示例中,点或线都可以有属性,该属性可以通过标签的方式进行标识。在所有的点中,可以包括一些用于标识道路交汇的点,该用于指示道路交汇的点可以称为路口标识点。其中,交汇点之间的线,可以称为道路标识线段。

例如,图2示出的路网的编辑信息可以包括多个点和多条线。其中,点200和点204为路口;点200和点204之间的线段组为“200,201,202,203,204”,该线段组为道路。

在具体实现时,可以由开发者来编辑路网的编辑信息。作为一个示例,开发者可以将地图作为参考,来编辑路网的编辑信息,例如,可以将osm作为编辑路网的参考信息。另外,为了应对大型的路网的编辑,可以搭建一个osm开发服务器以方便多人协作编辑路网的编辑信息。开发终端可以通过开发服务器来获取路网的编辑信息,也可以编辑路网的编辑信息。

在一些实施例中,第一路网的编辑信息可以由开发人员直接编辑得到,也可以是根据开发人员编辑的第二路网的编辑信息进行划分得到。

作为一个示例,上述步骤s110可以通过如下步骤实现:

步骤1.1),获取第二路网的编辑信息。该第二路网的编辑信息包括第二路网的路口描述和第二路网的道路描述;

步骤1.2),按照预设的修正规则修正第二路网的编辑信息,得到修正的第二路网的编辑信息;

步骤1.3),将修正的第二路网的编辑信息按照预设的划分规则,划分为多个第一路网的编辑信息。其中,该预设的划分规则可以包括:相邻的第一路网的编辑信息之间包括重叠的部分。

对于上述步骤1.1),上述第二路网的路口描述包括第二点的位置和对应于第二点的路口属性。上述第二路网的道路描述包括第二线段组位置和对应于第二线段组的道路属性。

对于上述步骤1.2),该步骤可以是一个检错流程,第二路网的编辑信息的编辑过程中,一般只能保证格式正确,却无法检查数据是否符合标准。通过修正方案可以确保后续算法可以得到正确的数据。修正方案有两种,一种是直接提示开发人员第二路网的编辑信息有问题,以便开发人员重新进行编辑。另外一种是依据预设的修正规则进行自动修正数据。具体采用哪种取决于自动修复实现的难度。

上述预设的修正规则可以包括下述一项或多项:

判断相交的第二线段之间的交汇处是否存在第二点,如果不存在,增加交汇处对应的第二点;

修正第二线段组的走向,使得同一段道路对应的线段走向一致;

对第二点和第二线段进行合并或拆分,使得第二点之间通过单独的第二线段连接。

例如,如图3所示,用于表示道路的线段组“12,13,14,15”和“3,4,5,6”交汇,但是不存在交汇点。

在增加交汇处对应的第二点时,可以先对线段“13,14”和线段“4,5”在交汇点附近打断,然后再进行顶点融合得到交汇点。如图4所示,可以将用于表示道路的线段组“12,13,14,15”和“3,4,5,6”向上挤出,以及在顶点附近生成一个圆,并向上挤出,使之用于表示道路的线段组“12,13,14,15”和“3,4,5,6”的挤出和圆的挤出相交,在进行相减操作,并保留底部的线后,实现对线段“13,14”和线段“4,5”在交汇点附近打断,再将打断点进行顶点融合得到交汇点。

再例如,如图5所示,用于表示道路的线段组“51,52,53,54”为同一段道路,但是,线段“51,52”和线段“53,54”的走向不一致。此时,可以调整线段走向。例如,如图6所示,通过调整线段“53,54”的走向使得用于表示道路的线段组“51,52,53,54”的走向一致。

对于上述步骤1.3),在一些实施例中,组成城市的构件(例如,道路或路口等)间存在着很强的关联性。随着空间的增大,构件的种类也不断增加,构件之间相互关联的网络复杂度将以几何级的速度增加。通过拆分这些关联,可以降低对硬件的需求。

当整个场景的尺寸超过一定大小以后,整体加载几乎是不可能的。空间上的分割就成了必然的选择。按一定的单位大小划分格子是一个比较常用的预设的划分规则。另外,该预设的划分规则还可以包括:分块的时候要保持关联的完整性,相互关联的内容即使超出区域也应该被分在一个块里面;为了避免分块时遇到困难,尽量避免超大的物件的产生。比如一条很长的没有分割的跨越好几个块的道路。这个对游戏性能也是不利的。

在一个示例中,对于如图7所示的第二路网的编辑信息,可以按照预先设定大小的网格,对第二路网的布局图进行初步划分。结合图8所示,可以将第二路网中的线段和点,向上挤出;并且拷贝一个立方体在需要分块的网格上,该立方体的变成可以为网格的边长的两倍。使用该立方体对网格上挤出的图形进行切割,保留底部线段和点,得到第一路网的线段和点。依次对每个网格进行上述操作,可以得到各个第一路网的线段和点。在具体实现时,可以一次切割完成,然后依次执行上述步骤s110-s150,也可以是,每次针对一个网格进行切割,得到一个分块后,执行上述步骤s110-s150,执行完成后,再进行下一分块的切割。另外,可以通过并行执行的方式,针对每个分块执行上述步骤s110-s150。

另外,针对每个分块得到虚拟路网后,需要进行合并以得到最终结果。基于此,该方法还包括:将第二路网对应的每个第一路网的虚拟路网合并,得到第二路网的虚拟路网。

对于修正完的路网的编辑信息,可以方便的区分路口以及连接路口的道路。以这些为依据,进一步把路口分离出来,以便分别进行处理。

在一个示例中,对于一些特殊的路口,可以生成特殊的环岛类型的虚拟路口。基于此,上述步骤s130具体可以包括:

步骤2.1),从第一路网的路口的切分信息中,分离出路口属性为环岛路口的切分信息。

例如,如图9所示,切分信息可以包括,第一点91,以及第一线段“91,92”、“91,93”、“91,94”、“91,95”和“91,96”构成的第一线段组。

对于每个环岛路口的切分信息,均执行以下步骤2.2)-步骤2.5):

步骤2.2),根据环岛路口的路口线段组的位置关系和对应于该路口线段组的道路属性,每两个相邻的路口线段生成一个u型外框。

例如,如图10所示,根据第一线段“91,92”和“91,93”的位置关系,和第一线段“91,92”和“91,93”各自对应的路宽,生成u型外框1001。

步骤2.3),根据环岛路口对应的多个u型外框生成外围道路的交汇部分。

例如,如图11所示,根据环岛路口对应的多个u型外框生成外围道路的交汇部分1101。

步骤2.4),根据环岛路口的第一点位置以及路口属性,生成环岛路口的内部圈线部分。

例如,如图12所示,根据环岛路口的第一点91位置以及第一路网的路口的大小,生成环岛路口的内部圈线部分1201。

步骤2.5),将环岛路口的外围道路的交汇部分和内部圈线部分进行合并,并进行路面贴图得到虚拟环岛。

在一个示例中,上述步骤s130具体可以包括如下步骤,以实现虚拟通用路口的生成:

步骤3.1),从第一路网的路口的切分信息中,分离出路口属性为通用路口的切分信息。

如图13所示,通用路口切分信息可以包括,第一点131,以及第一线段“131,132”、“131,133”、“131,134”和“131,135”构成的第一线段组。

步骤3.2),根据通用路口的路口线段组的位置关系和对应于该路口线段组的道路属性,每两条相邻的路口线段向外平移路的指定宽度,获得一个通用路口交点。该指定宽度根据对应于每两条相邻的路口线段的道路属性确定。

例如,如图14所示,根据通用路口的第一路网的路口线段“132,134”和“133,135”的位置关系和道路宽度,每两条相邻的路口线段向外平移路的指定宽度(例如,道路宽度的一半),分别获取通用路口交点141、142、143和144。

步骤3.3),根据每个通用路口对应的交点和切点,确定通用路口的外轮廓,基于通用路口的外轮廓进行路面和路沿贴图。

其中,切点可以为前述s120中,按照预设的切点设置规则确定的切点。

在一个示例中,基于如图15所示的交点151、152、153和154,该交点可以基于图14所示的方法发确定,每个交点向原道路做垂线,最多得到两个垂线交点(也可能只有一个或者没有,如图16所示三条道路交汇,点161即没有对应的垂点,对于4条道路交汇,如果垂线在交汇点的另一边,视为于原来道路没有垂线交点),例如,交点151和152在同一道路上的垂点155和156,取离道路交汇点最远的点155,作为切点(没有垂线交点时,则取交汇点)。

切点外推一定距离后与道路线段做垂线段,该垂线段的宽度等于道路宽度。顺序连接垂线端点和交点就得到了路口的外轮廓,例如,如图17所示的1701。在切点处做圆滑,得到圆滑的转角。

步骤3.4),在通用路口的路面贴图上,切点对应的位置生成斑马线,得到虚拟通用路口。

其中,斑马线有两种形态,一种是垂直于切点的,多用于t字型路口,角度比较正交的十字路口等。另一种是两个交点连线方向,多用于倾斜角度较大的路口。该斑马线的设置方式可以预先设定,例如,可以编辑在路口的属性中。

每一条道路都是一个线段组,遍历这些线段组,生成每一条道路。在生成道路时,可以单独处理弯道的部分。在一个示例中,上述步骤s140具体可以包括:

步骤4.1),根据第一路网的每条道路的道路线段组对应的道路宽度,生成每条道路的外框;

步骤4.2),依次根据第一路网的每条道路的道路描述判断是否存在弯道部分;

步骤4.3),对于第一路网中存在弯道部分的道路,将该道路的道路描述分离为弯道部分和直道部分;

步骤4.4),根据预设的弯道路面贴图规则,基于道路的外框沿弯道走向进行弯道部分的路面贴图;

步骤4.5),根据预设的直道路面贴图规则,基于道路的外框进行直道部分的路面贴图;

步骤4.6),将存在弯道部分的道路的弯道部分的路面和直道部分的路面合并,并根据存在弯道部分的道路的对应的道路属性生成路沿和标线,得到该存在弯道部分的道路的虚拟道路。

步骤4.7),对于不存在弯道部分的道路,根据预设的直道路面贴图规则,基于该道路的外框进行直道部分的路面贴图,并根据该道路的道路线段组对应的道路属性生成路沿和标线,得到该道路的虚拟道路。

在步骤4.2)中,可以通过邻接点的角度把弯道分离出来单独处理。中每个点可以得到他的邻接的点是哪些。每个顶点的邻接点是一个或者两个。如果是一个说明他是道路的端点,不需要计算。如果有两个邻接点,说明他是道路的中间部分。邻接点和当前顶点可以组成两条边,计算一下这两条边形成的角度。如果角度小于第一阈值,则可以认为是弯道,其中,该设定值可以预定义。

在一些实施例中,上述步骤4.4)具体可以包括如下步骤:

判断弯道部分对应的转弯幅度是否符合道路运行要求;

如果不符合,将弯道部分的道路的外框进行平滑处理,并基于平滑处理后的外框,按照道路的外框沿弯道走向进行路面贴图;

如果符合,基于道路的外框沿弯道走向进行弯道部分的路面贴图。

其中,道路运行要求可以为转弯幅度不能过大。例如,邻接点和当前顶点可以组成两条边,计算一下这两条边形成的角度。如果角度小于第二阈值,则可以认为是不符合道路运行要求,其中,该设定值可以预定义,该第一阈值可以大于第二阈值。另外,道路运行要求还可以包括其他的要求,具体可以根据实际道路运行中的要求进行设定。

在步骤4.7)中,将弯道部分和直道部分合并在一起,路面的生成就完成了,然后再加上路沿和标线。路面的uv(贴图坐标系)分割跟随路面走向,以便在添加车轮轨迹等时,更方便。另外,贴图的uv还可以按一定长度分割,保证每段的uv都处于0~1区间。

其中,uv是指贴图的坐标系。例如,顶点的uv是指顶点按一定规则投影到贴图的坐标系中的坐标。这个投影是把三维的模型平展到二维的贴图的一种变换。他决定了贴图如何覆盖到模型上。生成顶点的时候我们就需要计算它对应的uv值,才能保证贴图正确的贴在模型上。

本发明实施例提供的一种游戏中虚拟路网的构建方法及装置。能够获取第一路网的编辑信息,该第一路网的编辑信息包括第一路网的路口描述和第一路网的道路描述,该第一路网的路口描述包括第一点的位置和对应于第一点的路口属性,该第一路网的道路描述包括第一线段组位置和对应于第一线段组的道路属性,以此通过点和线来描述路网,降低了路网的编辑信息的编辑难度,以及运行时需要的资源;通过按照预设的切点设置规则和第一路网的道路属性,将第一线段组切分为道路线段组和路口线段组,并基于第一路网的路口的切分信息和第一路网的道路的切分信息分别生成第一路网的每个路口对应的虚拟路口和第一路网的每条道路对应的虚拟道路;最终将将虚拟路口和虚拟道路组合,生成虚拟路网,以此可以将虚拟路网按照复杂程度进行划分,并分别进行处理,降低了路网的编辑信息的复杂度,减少了处理过程中数据的相互干扰,提高了虚拟路网的构建效率,降低了成本的同时,虚拟路网的准确率更高。

本发明实施例,还可以通过提供的路网的编辑信息的修正规则,实现依据精度不高的路网的编辑信息,生成精度较高的虚拟路网,并且具有较高的准确率,同时降低了路网的编辑信息的编辑难度。另外,通过对第二路网修正的编辑信息,按块进行划分,并分别进行处理,可以降低处理过程对硬件的要求,以及提高虚拟路网的生成速度。

另外,在虚拟路网的构建过程中,还可以对路口和道路按照复杂度进行进一步的细分,并分别进行处理,路网的编辑信息的复杂度更低,处理过程中数据的相互干扰的情况更少,虚拟路网的构建效率更高,成本更低,虚拟路网的准确率更高。

在一些实施例中,在贴图时,路口如果遇到大转角时会有一些接缝出现。在路网的编辑信息的编辑以及修正时,可以保持路口结合处的法线一致可以有效的避免路口接缝。另外,还可以通过如下步骤进行修正:

作为一个示例,在第一路网的虚拟路网对应的虚拟路口和虚拟道路的衔接处生成人行道或排水沟。以便使用人行道或排水沟等方式遮盖接缝。

作为另一个示例,如果遇到小的缝隙,可以把接口处分组,然后顶点融合到一起可以很好的解决接缝问题。

另外,在路沿和地面也会有接缝问题,在贴图时可以重叠一部分面积。单是,可以尽量避免平面重叠,如果遇到重叠的情况,上下错开一些,并在邻接边缘生成一个垂直的面,避免镜头水平时看到空隙。

在一些实施例中,该方法还包括:基于虚拟路网的道路外框,按照预设虚拟附属物生成规则,生成路边的虚拟附属物。

其中,道路的外框提取出来的点可以用来生成路边的附属物。可以根据虚拟路网的道路外框,分离出路面部分;根据附属物属性(例如,间距,头尾裁剪等等)处理点分布,载入调整参数(例如,随机旋转、随机大小、随机位置偏移等);对于间隔较大的附属物(例如,垃圾桶),在头尾裁剪较大时可以自动做点的合并。

多层附属物生成时有时会出现附属物重合的问题,本发明实施例还可以提供一些碰撞规则。

作为一个示例:碰撞规则--移除:被优先级更高的附属物点覆盖到的附属物移除;

作为另一个示例:碰撞规则--挤开:离优先级更高的附属物一定距离内的附属物被挤开。

在一些实施例中,虚拟路网可以支持根据地形起伏。路面曲线的高度通过采集地形的高度获得。由于之前所有虚拟路网的实现都是在一个平面上完成的,采集到的高度不能直接存到p.y(p是表示位置的变量,y代表垂直方向。)中,而需要临时存在另外的变量中。直到最后构建路面的时候才把高度存到p.y补上。

在另一些实施例中,为了解决路网每个采样点之间可以通过差值补齐的,与地形实际情况不符合,容易出现穿插现象的情况。该方法具体还可以包括如下步骤:确定虚拟地形;将该虚拟路网投射到相同位置的虚拟地形上,并对虚拟地形进行平滑处理。

在一些实施例中,还可以对虚拟路网进行编辑。

例如,可以使用一套通过道路和路口的索引,来设置每条道路和路口的属性,以及相应附件属性的工具面板。每条道路,每个路口都可以设置单独的属性。每个索引有其对应的几何结构,用来存储相应数据。索引可以使用与道路对应的唯一标识来表示,从而可以在路网迭代时保留未改变的路网的编辑信息。

作为一个示例,该方法应用于开发终端,该开发终端可显示图形用户界面,该图形用户界面包括虚拟路网,该虚拟路网对应有第一属性,该第一属性包括第一路网的路口属性和/或第一路网的道路属性,该方法还包括:

步骤5.1),响应于针对虚拟路网的属性修改触发操作,显示属性修改工具面板;

步骤5.2),响应于针对属性修改工具面板中的第一属性的修改触发操作,修改第一属性。

在一些实施例中,在处理的过程中,属性基本上都是点或线对应的。由于流程中有很多合并,切分,重建的操作。属性很难直接传递下去。本发明实施例可以通过重采样原始数据的办法,在需要使用属性之前采集一次原始数据的属性,达到直接传递属性的目的,方便快捷,适用性强。

作为一个示例,该方法应用于开发终端,该开发终端可显示图形用户界面,该图形用户界面包括虚拟路网,该虚拟路网包括虚拟模块,该虚拟模块为虚拟路口和/或虚拟道路,该方法还包括:

步骤6.1),响应于针对第一虚拟模块的属性修改触发操作,显示待采样的第二虚拟模块;

步骤6.2),响应针对第二虚拟模块的属性采样操作,将所述第二虚拟模块的属性应用于所述第一虚拟模块。

另外,在一些示例中,虚拟模块也可以替换为路网的编辑信息,例如,路口属性或道路属性等等。

通过本发明实施例,可以实时对生成的虚拟路网进行修改,并能够通过图形用户界面,来提供更直观的效果,提升了用户体验。

另外,在一些实施例中,构建过程往往比较耗时,避免重复的计算可以大大及提升构建效率。前面提到的分块的方法,可以避免大量的重复计算,并且可以保持中间结果重复利用。

在另一个示例中,可以进行分时计算。例如,可以合理设置中间节点来分离每个步骤,或者存储某些中间结果,来避免大量重复计算。还可以在遇到构建错误时,这些中间节点可以很好的帮助构建过程在最近的正确的节点开始继续构建。这些中间节点有的时候也可以用来作为数据的传递方式。

在另一个示例中,还可以创建预览。其中,构建规则的过程,往往伴随着多次数值或者节点的迭代。如果只是为了看某个调整的结构,其实并不需要走完整个构建流程。这个时候可以创建计算量小但可以快速得到结果的预览流程,可以极大的加快迭代速度。预览流程可以和虚拟路网的构建流程分离,可以通过一个切换功能实现预览流程和虚拟路网的构建流程的切换。

在另一个示例中,还可以对构建规则细化可以优化产生更适合的资源。构建产生的资源其实是非常灵活的,比如弯道到底需要分多少段,完全可以由角度和长度决定,避免面数上的浪费。

在另外一些实施例中,路网的编辑信息还可以包括编辑的道路合围区域。

但是,在数据编辑过程中,很难对实际生成的道路的路宽考虑周全,所以这些编辑的道路合围区域有时远离道路,有时又和道路重合。

可以根据在路口和道路生成过程中的外框信息,来生成待定的道路合围区域,结合编辑的道路合围区域和待定的道路合围区域,可以确定待定的合围区域的功能生成相应的功能和具体形状。在一个示例中,第一路网的编辑信息包括编辑的道路合围区域,所述编辑的道路合围区域对应有属性,该方法还包括:

确定第一路网的虚拟路口和虚拟道路的外框信息;

根据上述外框信息,生成待定的道路合围区域;

按照预设匹配规则,匹配待定的道路合围区域和编辑的道路合围区域,将编辑的道路合围区域的属性继承给与其匹配的待定的道路合围区域。

其中,预设匹配规则可以包括位置相同;或者位置相同且形状接近;或者位置接近且形状接近等等。

图18提供了一种游戏中虚拟路网的构建装置结构示意图。如图18所示,该装置包括:

获取单元1801,用于获取第一路网的编辑信息,所述第一路网的编辑信息包括第一路网的路口描述和第一路网的道路描述,所述第一路网的路口描述包括第一点的位置和对应于第一点的路口属性,所述第一路网的道路描述包括第一线段组位置和对应于第一线段组的道路属性;

切分单元1802,用于按照预设的切点设置规则和所述第一路网的道路属性,将所述第一线段组切分为第一路网的道路线段组和第一路网的路口线段组,并确定第一路网的路口的切分信息和第一路网的道路的切分信息,所述第一路网的路口的切分信息包括第一点和第一路网的路口线段组,所述第一路网的道路的切分信息包括第一路网的道路线段组;

生成单元1803,用于根据所述第一路网的每个路口的切分信息、对应于第一点的路口属性和对应于第一路网的路口线段组的道路属性,生成所述第一路网的每个路口对应的虚拟路口;

生成单元1803还用于,根据所述第一路网的每条道路的切分信息和对应于第一路网的道路线段组的道路属性,生成所述第一路网的每条道路对应的虚拟道路;

组合单元1804,用于将所述第一路网对应的虚拟路口和虚拟道路组合,生成所述第一路网的虚拟路网。

在一些实施例中,获取单元1801具体用于:

获取第二路网的编辑信息,所述第二路网的编辑信息包括第二路网的路口描述和第二路网的道路描述;

按照预设的修正规则修正第二路网的编辑信息,得到修正的第二路网的编辑信息;

将修正的所述第二路网的编辑信息按照预设的划分规则,划分为多个第一路网的编辑信息;其中,所述预设的划分规则包括:相邻的第一路网的编辑信息之间包括重叠的部分。

在一些实施例中,生成单元1803还用于:

将所述第二路网对应的每个第一路网对应的虚拟路网合并,得到所述第二路网的虚拟路网。

在一些实施例中,所述第二路网的路口描述包括第二点的位置和对应于第二点的路口属性,所述第二路网的道路描述包括第二线段组位置和对应于第二线段组的道路属性;

所述预设的修正规则包括下述一项或多项:

判断相交的第二线段之间的交汇处是否存在第二点,如果不存在,增加交汇处对应的第二点;

修正第二线段组的走向,使得同一段道路对应的线段走向一致;

对第二点和第二线段进行合并或拆分,使得第二点之间通过单独的第二线段连接。

在一些实施例中,生成单元1803具体用于:

从所述第一路网的路口的切分信息中,分离出路口属性为环岛路口的切分信息;对于每个环岛路口的切分信息,均执行以下步骤:

根据所述环岛路口的路口线段组的位置关系和对应于该路口线段组的道路属性,每两个相邻的路口线段生成一个u型外框;

根据所述环岛路口对应的多个u型外框生成外围道路的交汇部分;

根据所述环岛路口的第一点位置以及路口属性,生成所述环岛路口的内部圈线部分;

将所述环岛路口的外围道路的交汇部分和内部圈线部分进行合并,并进行路面贴图得到虚拟环岛。

在一些实施例中,生成单元1803具体用于:

从所述第一路网的路口的切分信息中,分离出路口属性为通用路口的通用路口切分信息;

根据所述通用路口的路口线段组的位置关系和对应于该路口线段组对应的道路属性,每两条相邻的路口线段向外平移路的指定宽度,获得一个通用路口交点,所述指定宽度根据每两条相邻的路口线段对应的道路属性确定;

根据每个所述通用路口对应的交点和切点,确定所述通用路口的外轮廓,基于所述通用路口的外轮廓进行路面和路沿贴图;

在所述通用路口的路面贴图上,所述切点对应的位置生成斑马线,得到虚拟通用路口。

在一些实施例中,所述第一路网的道路属性包括第一路网的道路宽度;生成单元1803具体用于:

根据所述第一路网的每条道路的道路线段组对应的道路宽度,生成每条道路的外框;

依次根据所述第一路网的每条道路的道路描述判断是否存在弯道部分;

对于所述第一路网中存在弯道部分的道路,将该道路的道路描述分离为弯道部分和直道部分;

根据预设的弯道路面贴图规则,基于道路的外框沿弯道走向进行弯道部分的路面贴图;

根据预设的直道路面贴图规则,基于道路的外框进行直道部分的路面贴图;

将所述存在弯道部分的道路的弯道部分的路面和直道部分的路面合并,并根据所述存在弯道部分的道路的对应的道路属性生成路沿和标线,得到该所述存在弯道部分的道路的虚拟道路。

在一些实施例中,生成单元1803具体用于:

对于不存在弯道部分的道路,根据预设的直道路面贴图规则,基于该道路的外框进行直道部分的路面贴图,并根据该道路的道路线段组对应的道路属性生成路沿和标线,得到该道路的虚拟道路。

在一些实施例中生成单元1803具体用于:

判断所述弯道部分对应的转弯幅度是否符合道路运行要求;

如果不符合,将所述弯道部分的道路的外框进行平滑处理,并基于平滑处理后的外框,按照道路的外框沿弯道走向进行路面贴图。

在一些实施例中,生成单元1803还用于:

在第一路网的虚拟路网对应的虚拟路口和虚拟道路的衔接处生成人行道或排水沟。

在一些实施例中,生成单元1803还用于:

基于所述第一路网的虚拟路网的道路外框,按照预设虚拟附属物生成规则,生成所述第一路网的路边的虚拟附属物。

在一些实施例中,生成单元1803还用于:

确定虚拟地形;

将所述第一路网的虚拟路网投射到相同位置的虚拟地形上,并对所述虚拟地形进行平滑处理。

在一些实施例中,所述装置应用于开发终端,所述开发终端可显示图形用户界面,所述图形用户界面包括所述虚拟路网,所述虚拟路网对应有第一属性,所述第一属性包括第一路网的路口属性和/或第一路网的道路属性,还包括:

显示单元,用于响应于针对所述虚拟路网的属性修改触发操作,显示属性修改工具面板;

生成单元1803还用于,响应于针对所述属性修改工具面板中的第一属性的修改触发操作,修改所述第一属性。

在一些实施例中,所述装置应用于开发终端,所述开发终端可显示图形用户界面,所述图形用户界面包括所述虚拟路网,所述虚拟路网包括虚拟模块,所述虚拟模块为虚拟路口和/或虚拟道路,还包括:

显示单元,用于响应于针对第一虚拟模块的属性修改触发操作,显示待采样的第二虚拟模块;

生成单元1803还用于,响应针对第二虚拟模块的属性采样操作,将所述第二虚拟模块的属性应用于所述第一虚拟模块。

在一些实施例中,所述第一路网的编辑信息包括编辑的道路合围区域,所述编辑的道路合围区域对应有属性。生成单元1803还用于:

确定第一路网的虚拟路口和虚拟道路的外框信息;

根据第一路网的虚拟路口和虚拟道路的外框信息,生成待定的道路合围区域;

按照预设匹配规则,匹配所述待定的道路合围区域和所述编辑的道路合围区域,将所述编辑的道路合围区域的属性继承给与其匹配的待定的道路合围区域。

如图19所示,本申请实施例提供的一种计算机设备1900,包括:处理器1901、存储器1902和总线,所述存储器1902存储有所述处理器1901可执行的机器可读指令,当电子设备运行时,所述处理器1901与所述存储器1902之间通过总线通信,所述处理器1901执行所述机器可读指令,以执行如上述游戏中虚拟路网的构建方法的步骤。

具体地,上述存储器1902和处理器1901能够为通用的存储器和处理器,这里不做具体限定,当处理器1901运行存储器1902存储的计算机程序时,能够执行上述游戏中虚拟路网的构建方法。

对应于上述游戏中虚拟路网的构建,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述游戏中虚拟路网的构建的步骤。

本申请实施例所提供的游戏中虚拟路网的构建装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,开发终端,或者网络设备等)执行本申请各个实施例所述移动控制方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1