地形构造方法、装置、电子设备和存储介质与流程

文档序号:26093112发布日期:2021-07-30 18:02阅读:95来源:国知局
地形构造方法、装置、电子设备和存储介质与流程

本发明涉及计算机领域,具体涉及一种地形构造方法、装置、电子设备和存储介质。



背景技术:

三维虚拟环境中可以包括多种地形元素,例如,在三维游戏中可以包括山脉、河流、森林等地形元素。为了在三维虚拟环境中构造地形,目前常用的方法是由技术人员预先为这些地形元素设计对应的参数,例如山脉的高度、河流的流向、森林的树木密度等等,再由计算机根据这些参数对三维虚拟环境中的地形自动调整,从而生成符合技术人员预期的地形。

然而,上述地形构造方法无法构造出自然真实的地形,因此,目前构造地形的视觉效果较差。



技术实现要素:

本发明实施例提供一种地形构造方法、装置、电子设备和存储介质,可以提升构造的地形的视觉效果。

本发明实施例提供一种地形构造方法,包括:

获取虚拟场景中的预设地表,所述预设地表包括多个单元格,所述单元格具有对应的地形属性;

在所述确定多个目标毗连单元格,所述目标毗连单元格的地形属性为目标属性,且所述目标毗连单元格相互毗连;

基于所述目标毗连单元格之间的毗连方向,确定每个所述目标毗连单元格的单元格类型;

在地形单元集合中选取符合所述目标毗连单元格的单元格类型的目标地形单元;

在所述目标毗连单元格上放置所述目标地形单元,从而在所述预设地表上构造目标地形。

本发明实施例还提供一种地形构造装置,包括:

获取单元,用于获取虚拟场景中的预设地表,所述预设地表包括多个单元格,所述单元格具有对应的地形属性;

毗连单元,用于在所述单元格中确定多个目标毗连单元格,所述目标毗连单元格的地形属性为目标属性,且所述目标毗连单元格相互毗连;

类型单元,用于基于所述目标毗连单元格之间的毗连方向,确定每个所述目标毗连单元格的单元格类型;

选取单元,用于在地形单元集合中选取符合所述目标毗连单元格的单元格类型的目标地形单元;

放置单元,用于在所述目标毗连单元格上放置所述目标地形单元,从而在所述预设地表上构造目标地形。

在一些实施例中,所述目标毗连单元格包括第一目标毗连单元格和第二目标毗连单元格,所述毗连单元,包括:

毗连子单元,用于确定第一目标毗连单元格,以及与所述第一目标毗连单元格毗连的候选单元格,所述候选单元格的地形属性为目标属性;

选取子单元,用于在所述候选单元格中确定第二目标毗连单元格;

确定子单元,用于确定所述第一目标毗连单元格和所述第二目标毗连单元格之间的毗连方向;

循环子单元,用于将所述第二目标毗连单元格作为第一目标毗连单元格,重新执行步骤确定第一目标毗连单元格,直至不存在与所述第一目标毗连单元格毗连的候选单元格为止,将确定出的所有所述第一目标毗连单元格和所述第二目标毗连单元格作为目标毗连单元格。

在一些实施例中,所述毗连子单元,用于:

获取历史迭代信息,所述历史迭代信息记录有多个目标毗连单元格的信息;

确定与所述第一目标毗连单元格毗连的待筛选单元格;

若所述历史迭代信息中未记录所述待筛选单元格,则将所述待筛选单元格作为候选单元格;

所述确定子单元还用于:

将所述第二目标毗连单元格与所述第一目标毗连单元格记录在所述历史迭代信息中。

在一些实施例中,所述选取子单元,用于:

获取密度参数n;

随机选取n-1个候选单元格作为第二目标毗连单元格;

其中,所述单元格为正m边形,所述m为大于二的正整数,所述n为不大于m的正整数。在一些实施例中,所述选取子单元在用于随机选取n-1个候选单元格作为第二目标毗连单元格时,具体用于:

确定所述候选单元的数量k,所述k为正整数;

当k大于n-1时,在所述k个候选单元格中随机选取n-1个候选单元格作为第二目标毗连单元格;

当k不大于n-1时,将所述k个候选单元格全部确定为第二目标毗连单元格。

在一些实施例中,所述目标地形由多个目标地形单元构成,所述目标地形单元包括主体部分和衔接部分,所述目标地形单元的衔接部分用于与所述目标地形中其他的目标地形单元的衔接。

在一些实施例中,所述地形单元集合中包括多种单元格类型的地形单元,每种单元格类型的地形单元均包括一个主体部分和x个衔接部分,所述x为不大于m且不小于0的整数。

在一些实施例中,所述目标属性包括山脉属性,所述目标地形包括山脉地形,所述目标地形单元包括目标山体单元,所述目标山体单元的衔接部分用于与所述山脉地形中其他的目标山体单元衔接。

在一些实施例中,所述单元格为正m边形,所述m为大于二的正整数,所述选取单元,还用于:

类型子单元,用于确定所述正m边形的单元格对应的多种单元格类型;

制作子单元,用于基于所述单元格类型制作对应的地形单元,并建立映射关系,所述映射关系为所述单元格类型和所述地形单元之间的映射关系;

保存子单元,用于将所述地形单元保存在地形单元集合中。

在一些实施例中,所述选取单元,用于:

根据所述映射关系,确定所述目标毗连单元格的单元格类型所对应的目标地形单元;

从所述地形单元集合中获取所述目标地形单元。

在一些实施例中,所述放置单元,用于:

基于所述目标毗连单元格之间的毗连方向,确定所述目标地形单元的摆放角度;

根据所述摆放角度对所述目标地形单元进行旋转处理,得到旋转后的目标地形单元;

将所述旋转后的目标地形单元摆放在所述目标毗连单元格上。

在一些实施例中,所述放置单元在用于基于所述目标毗连单元格之间的毗连方向,确定所述目标地形单元的摆放角度时,具体用于:

确定所述目标毗连单元格的相邻边;

确定所述目标地形单元的衔接部分;

根据所述目标毗连单元格的相邻边和所述目标地形单元的衔接部分确定所述目标地形单元的摆放角度。

本发明实施例还提供一种电子设备,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本发明实施例所提供的任一种地形构造方法中的步骤。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种地形构造方法中的步骤。

本发明实施例可以获取虚拟场景中的预设地表,预设地表包括多个单元格,单元格具有对应的地形属性;在单元格中确定多个目标毗连单元格,以及确定目标毗连单元格之间的毗连方向,目标毗连单元格的地形属性为目标属性,且目标毗连单元格相互毗连;基于目标毗连单元格之间的毗连方向,确定每个目标毗连单元格的单元格类型;在地形单元集合中选取符合目标毗连单元格的单元格类型的目标地形单元;在目标毗连单元格上放置目标地形单元,从而在预设地表上构造目标地形,以使目标地形在视觉上形成连贯整体。

在本发明中,通过在特定地形属性的单元格中放置特定的地形单元,最终使得由这些地形单元构成的地形在视觉上形成连贯整体,呈现出自然真实的效果。由此,提升了构造的地形的视觉效果。

附图说明

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

图1a是本发明实施例提供的地形构造方法的场景示意图;

图1b是本发明实施例提供的地形构造方法的流程示意图;

图1c是本发明实施例提供的地形构造方法的预设地表的单元格示意图;

图1d是本发明实施例提供的地形构造方法的具有地形属性的单元格示意图;

图1e是本发明实施例提供的地形构造方法的单元格与地形单元的结构示意图;

图1f是本发明实施例提供的地形构造方法的迭代流程示意图;

图1g是本发明实施例提供的地形构造方法的视觉效果示意图;

图1h是本发明实施例提供的地形构造方法的单元格类型示意图;

图2a是本发明实施例提供的地形构造方法应用在山脉构造场景中的流程示意图;

图2b是本发明实施例提供的地形构造方法应用在山脉构造场景中的视觉效果示意图;

图3是本发明实施例提供的地形构造装置的结构示意图;

图4是本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种地形构造方法、装置、电子设备和存储介质。

其中,该地形构造装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(personalcomputer,pc)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。

在一些实施例中,该地形构造装置还可以集成在多个电子设备中,比如,地形构造装置可以集成在多个服务器中,由多个服务器来实现本发明的地形构造方法。

在一些实施例中,服务器也可以以终端的形式来实现。

例如,参考图1a,该电子设备可以是智能手机,该智能手机可以获取预设地表,该图1a中的虚线框中的内容表征了虚拟场景中的预设地表,该预设地表包括了i+j个单元格,每个单元格具有其对应的地形属性;其中,单元格[1]、[i]、[i+1]和[i+2]的地形属性为目标属性,因此,将单元格[1]、[i]、[i+1]和[i+2]都确定为目标毗连单元格。

然后,根据单元格[1]、[i]、[i+1]和[i+2]之间的毗连方向,可以确定单元格[1]、[i]、[i+1]和[i+2]的单元格类型。

因此,可以根据单元格[i+1]的单元格类型,确定符合该批量类型的目标地形单元,然后将该目标地形单元放置在单元格[i+1]上。类似地,可以分别根据单元格[1]、[i]、[i+2]的单元格类型,确定合适的目标地形单元来放置在单元格[1]、[i]、[i+2]上。

最终,在预设地表上所有放置好的地形单元,可以在整体上形成目标地形,以使目标地形在视觉上形成连贯整体。

以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。

在本实施例中,提供了一种地形构造方法,如图1b所示,该地形构造方法的具体流程可以如下:

101、获取虚拟场景中的预设地表,预设地表可以包括多个单元格,单元格具有对应的地形属性。

预设地表即地球表面,在本实施例中,虚拟三维场景中包括了虚拟的预设地表,该预设地表可以包括陆地、海洋等,该预设地表可分割为多个单元格。形象地,预设地表可看作棋盘,可按照预设的分割规则被分割为多个单元格,在一些实施例中,虚拟三维场景中还包括虚拟角色,该虚拟角色可看作棋盘上的棋子,在预设地表上以一个单元格为最小移动单位进行移动。

其中,单元格可以表现为任意形状的几何图形,比如,单元格可以是三角形、正方形、正六边形,等等。例如,参考图1c,预设地表可以由多个正六边形的单元格构成。

由于现实世界中的预设地表可具有多种地形,在本实施例中,为了在预设地表上构造地形,可以以一个单元格为最小的地形构造单位来构造地形。

其中,地形是指地物形状和地貌的总称,具体指预设地表以上分布的固定性物体共同呈现出的高低起伏的各种状态,比如,按形态分类,地形可包括山脉、高原、平原、丘陵和盆地等;按受外力作用分类,地形可包括河流、三角洲、瀑布、湖泊、沙漠等;按生物作用分类,地形可包括地形还可以包括森林、草原、城镇、村庄等。

在本方案中,每个单元格具有预先设定好的地形属性,按照该地形属性可以在该单元格上构造地形。

其中,地形属性具有多种,比如,可以是山脉属性、丘陵属性、河流属性、湖泊属性、森林属性、城镇属性等。

该地形属性用于为单元格构造对应的地形。比如,在本方案的步骤105中,可以在单元格中放置与其地形属性相对应的地形单元,从而使得多个单元格上的地形单元组成一个大的地形整体。

比如,可以在多个相互毗连的单元格上放置山体单元,从而使得这些山体单元形成一个大的山脉;比如,可以在多个相互毗连的单元格上放置河流支流单元,从而使得这些河流支流单元形成一个大的河流水系网;比如,可以在多个相互毗连的单元格上放置道路单元,从而使得这些道路单元形成一个大的交通道路网,等等。

其中,毗连是指两块土地相互连接,在本申请中指两个单元格之间存在相邻边,即两个单元格的任一一边相互连接。

相邻边是两个单元格之间具有相邻关系的边,例如,参考图1d,单元格b1和b2之间具有一条相邻边00,单元格b1和a1之间具有一条相邻边01,等等。

例如,参考图1d,单元格a1、a2、a3的地形属性为山脉属性,因此,可以在单元格a1、a2、a3上均放置山体单元,这些山体单元可以在视觉上组成一个大的山脉。

以下将介绍如何确定在单元格上放置其对应地形属性的地形单元,以及这些地形单元是如何组成一个大的地形整体的:

102、在单元格中确定多个目标毗连单元格,目标毗连单元格的地形属性为目标属性,且目标毗连单元格之间相互毗连。

比如,在单元格中选取多个目标毗连单元格。

当某一单元格与另一个单元格毗连,则这两个单元格相互连接。例如,参考图1d,单元格b2的四条边依次与单元格a1、a2、a3、b1毗连,则单元格b2均与单元格a1、a2、a3、b1相连接。

目标毗连单元格是指其地形属性为目标属性,且与其他的单元格相互连接的单元格。

例如,参考图1d,单元格a1、a2、a3、a4、a5的地形属性为山脉属性,单元格b1、b2的地形属性为湖泊属性,单元格c1、c2、c3、c4、c5的地形属性为森林属性;由图1d可知,a1、a2、a3依次连接;a4、a5相互连接;b1、b2相互连接;c1、c2、c3、c4、c5依次连接。

因此,当目标属性为山脉属性时,a1、a2、a3是一组目标毗连单元格,或者,a4、a5是一组目标毗连单元格;当目标属性为湖泊属性时,b1、b2是一组目标毗连单元格;当目标属性为森林属性时,c1、c2、c3、c4、c5是一组目标毗连单元格。

在一些实施例中,还可以确定目标毗连单元格之间的毗连方向。其中,毗连方向是指单元格之间连接的相对方向。

在一些实施例中,毗连方向可以以毗连的单元格的相邻边来表示。例如,参考图1e,假设单元格为正六边形,则单元格的六条边可标记为边1、边2、边3、边4、边5、边6;参考图1d,a2与a3毗连,a2的边1与a3的边4为相邻边,则a3相对于a2的毗连方向为边1,a2相对于a3的毗连方向为边4。

因此,最终可以确定a2的目标毗连单元格以及这些目标毗连单元格相对于a2的毗连方向[(a3,边1),(a1,边5)]。同理可确定a1的目标毗连单元格以及该目标毗连单元格相对于a2的毗连方向[(a2,边2)],a3的目标毗连单元格以及该目标毗连单元格相对于a3的毗连方向[(a2,边4)]。

当目标毗连单元格的数量过多、占用预设地表的面积较大时,放置了地形单元后所形成的大的地形整体往往会出现重复度高、不够自然美观的问题。

例如,若存在50个目标毗连单元格,这些目标毗连单元格紧密排布为一个近圆的集合,在这些目标毗连单元格上放置了山体单元后会在视觉上出现密集地、重复的山体;而在真实的自然环境中,山脉并不会以该种密集、重复地方式展现。

因此,在下述实施例中,为了还原出真实世界中山脉绵延的形态,可以先在单元格中筛选出候选单元格,再从候选单元格中筛选出一部分作为目标毗连单元格,通过筛选来降低目标毗连单元格的数量,从而减少目标毗连单元格之间的密集度。

需要注意的是,该方法除了可以应用在山脉地形的生成上,还可以应用在多种地形的生成上,例如河流、村庄、森林等地形中。

在一些实施例中,可通过迭代的方式来实现步骤102,因此,在每次迭代过程中,目标毗连单元格可以包括第一目标毗连单元格和第二目标毗连单元格,步骤102可以包括如下步骤:

(1)确定第一目标毗连单元格,以及与第一目标毗连单元格毗连的候选单元格,候选单元格的地形属性为目标属性;

(2)在候选单元格中确定第二目标毗连单元格;

(3)确定第一目标毗连单元格和第二目标毗连单元格之间的毗连方向;

(4)将第二目标毗连单元格作为第一目标毗连单元格,重新执行步骤确定第一目标毗连单元格,直至不存在与第一目标毗连单元格毗连的候选单元格为止,将确定出的所有所述第一目标毗连单元格和所述第二目标毗连单元格作为目标毗连单元格,即若不存在与第一目标毗连单元格毗连的候选单元格则停止迭代。

第一目标毗连单元格是指第一迭代过程中的第二目标毗连单元格。

在本实施例中,候选单元格是指所有与第一目标毗连单元格毗连,且地形属性为目标属性的单元格;而目标毗连单元格是从候选单元格中选出的,即目标毗连单元格是指一部分与第一目标毗连单元格毗连,且地形属性为目标属性的单元格。

在迭代过程中,第二目标毗连单元格可能在之前迭代过程中已经被处理过,无需再对其进行重复的处理,因此,在一些实施例中,可以将每次迭代过程中处理过的单元格记录在历史迭代信息中,以便之后不再对该表中记录过的单元格进行重复的处理,从而降低计算量,提高计算效率。

故在一些实施例中,步骤“(1)确定第一目标毗连单元格,以及与第一目标毗连单元格毗连的候选单元格,候选单元格的地形属性为目标属性”可以包括如下步骤:

获取历史迭代信息,以及确定第一目标毗连单元格;

确定与第一目标毗连单元格毗连的待筛选单元格;

若历史迭代信息中未记录待筛选单元格,则将待筛选单元格作为候选单元格;

在步骤“(3)在确定第一目标毗连单元格和第二目标毗连单元格之间的毗连方向”之后,还可以将第二目标毗连单元格与第一目标毗连单元格记录在历史迭代信息中,该历史迭代信息记录有多个目标毗连单元格的信息。

比如,上一次迭代过程中选取的多个第二目标毗连单元格,在此次迭代过程中均为第一目标毗连单元格,对每个第一目标毗连单元格进行处理。

若历史迭代信息中存某一目标毗连单元格,则不处理该目标毗连单元格,而是处理其他的目标毗连单元格。

在一些实施例中,若此次迭代中所有的目标毗连单元格均被记录在历史迭代信息中,则停止迭代。

其中,在候选单元格中确定第二目标毗连单元格的方式具有多种,例如,可以在候选单元格中随机地选取一部分候选单元格作为第二目标毗连单元格,再例如,可以按照一定的预设规则在候选单元格中随机地选取一部分候选单元格作为第二目标毗连单元格。

比如,在一些实施例中,步骤“(2)在候选单元格中选取第二目标毗连单元格”可以是:

获取密度参数n;

随机选取n-1个候选单元格作为第二目标毗连单元格。

其中,单元格为正m边形,m为大于二的正整数,n为不大于m的正整数,密度参数n是用于限制在地表上放置地形单元的密度的参数,n具体的数值可由技术人员设定,也可以在构造地形时人工调整,等等。

例如,在一些实施例中,m为6,单元格为正六边形,n为3,在执行步骤“随机选取n个候选单元格作为第二目标毗连单元格”时,具体可以是在候选单元格中随机选取3个候选单元格作为第二目标毗连单元格。

其中,n越小,则最终选取得到的目标毗连单元格所形成的集合的密度越小;n越大,则最终选取得到的目标毗连单元格所形成的集合的密度越大。

在一些实施例中,某次迭代的过程中选取出的候选单元格较少,而设定的n数值较大,则往往会出现即使选取所有的候选单元格作为第二目标毗连单元格后,第二目标毗连单元格的数量都无法等于或大于n,因此在执行步骤“随机选取n个候选单元格作为第二目标毗连单元格”时,具体可以执行如下步骤:

确定候选单元的数量k,k为正整数;

当k大于n-1时,在k个候选单元格中随机选取n-1个候选单元格作为第二目标毗连单元格;

当k不大于n时,将k个候选单元格全部确定为第二目标毗连单元格。

比如,预先设定n=3,若在某次迭代中选取出了2个候选单元格,则将该2个候选单元格全部选取,作为第二目标毗连单元格;若在另一次迭代中选取出了5个候选单元格,则在该5个候选单元格中随机选取3个作为第二目标毗连单元格。

例如,参考图1f,以单元格p为初始的单元格进行迭代,n=3,其步骤如下:

(1)首次迭代:

与p毗连的候选单元格为p11、p1、p2、p3;

从p11、p1、p2、p3中随机选取n个第二目标毗连单元格,假设随机选取到的3个单元格为p1、p2、p3;

确定p与p1、p2、p3之间的毗连方向,并将p、p1、p2、p3记录在历史迭代信息中。

注:此时的历史迭代信息记录了{p、p1、p2、p3}。

(2)第二次迭代:

(2.1)处理p1:

与p1毗连的待筛选单元格为p、p11、p12和p13,由于历史迭代信息中存在p,则与p1毗连的候选单元格为p11、p12、p13;

与p1毗连的候选单元格的数量为3,由于3>n-1,则在p11、p12、p13中随机选取2个作为p1对应的第二目标毗连单元格,假设随机选取的结果为p11和p12;

确定p1与p11、p12之间的毗连方向,并将p1、p11、p12记录在历史迭代信息中。

注:此时的历史迭代信息记录了{p、p1、p11、p12、p2、p3}。

(2.2)处理p2:

与p2毗连的候选单元格为p、p21、p22和p3,由于历史迭代信息中存在p和p3,则将p和p3从中剔除,故最终与p2毗连的候选单元格为p21、p22;

最终与p2毗连的候选单元格的数量为2,由于2<n,则将p21、p22均作为p2对应的第二目标毗连单元格;

确定p2与p21、p22之间的毗连方向,并将p2、p21、p22记录在历史迭代信息中。

注:此时的历史迭代信息记录了{p、p1、p11、p12、p2、p21、p22、p3}。

(2.3)处理p3:

与p3毗连的候选单元格为p、p2、p22、p31和p32,由于历史迭代信息中存在p、p2和p22,则将p、p2和p22从中剔除,故最终与p2毗连的候选单元格为p31、p32;

最终与p3毗连的候选单元格的数量为2,由于2<n,则将p31、p32均作为p3对应的第二目标毗连单元格;

确定p3与p31、p32之间的毗连方向,并将p3、p31、p32记录在历史迭代信息中。

注:此时的历史迭代信息记录了{p、p1、p11、p12、p2、p21、p22、p3、p31、p32}。

(3)第三次迭代:

同理,再对p11、p12、p21、p22、p31、p32进行处理,但由于p11、p12、p21、p22、p31、p32均不存在对应的候选单元格,故结束迭代。

103、基于目标毗连单元格之间的毗连方向,确定每个目标毗连单元格的单元格类型。

以下首先将引入地形单元的概念,以便理解步骤103~105:

在本实施例中,地形单元是一种虚拟的三维地形模型,比如虚拟的山体模型、虚拟的河流模型、虚拟的村庄模型,等等。

若通过在预设地表上放置相同视觉表现的地形单元来构造地形,则会导致构造的地形重复、不够真实自然的问题。因此,在本实施例中,提出一种地形单元,该地形单元可以放置在单元格上。

因此,在一些实施例中,目标地形由多个目标地形单元构成,目标地形单元包括主体部分和衔接部分,目标地形单元的衔接部分用于与目标地形中其他的目标地形单元的衔接。

在一些实施例中,地形单元集合中包括多种单元格类型的地形单元,每种单元格类型的地形单元均包括一个主体部分和x个衔接部分,x为不大于m且不小于0的整数。

即地形单元集合中包括多种单元格类型的地形单元,每种单元格类型的地形单元的视觉表现不同。其中,地形单元的三维地形模型可分为一个主体部分和x个衔接部分。

例如,参考图1e,该单元格上放置有一个地形单元,该地形单元可以包括一个主体部分和两个衔接部分。

在一些实施例中,每个地形单元的衔接部分之间都可以进行无缝衔接,从而使得这两个地形单元在视觉上形成整体。

需要注意的是,主体部分和衔接部分的形状、高度和大小等视觉表现的参数并不固定,其具体的视觉表现可以按照实际需求进行放置。

在一些实施例中,目标属性包括山脉属性,目标地形包括山脉地形,目标地形单元包括目标山体单元,目标山体单元的衔接部分用于与山脉地形中其他的目标山体单元衔接。

例如,参考图1g,单元格上设有三个地形单元:山体11、山体12和山体13,其中,山体11和山体12的衔接部分00可以在视觉上无缝衔接,从而将山体11和山体12的主体部分连接在一起。同理,山体12和山体13的衔接部分也可以在视觉上无缝衔接,最终构成的山脉自然完整,符合真实世界中山脉的视觉表现。

在本实施例中,毗连方向可以以毗连的单元格的相邻边来表示,毗连方向和单元格类型之间可以具有预设的映射关系。因此,在一些实施例中,根据每个目标毗连单元格所具有的相邻边的集合,可以确定该目标毗连单元格的单元格类型。

在一些实施例中,不同单元格类型的单元格可以具有不同的相邻边,例如,参考图1h,图1h所示的是正六边形单元格的全部14种单元格类型。

参考图1e,假设该目标毗连单元格所具有的相邻边为边2、边6,则该目标毗连单元格的相邻边的集合为[2,6],通过预设的映射关系,可以确定相邻边的集合为[2,6]所对应的单元格类型为图1h种的类型[4]。

104、在地形单元集合中选取符合目标毗连单元格的单元格类型的目标地形单元。

地形单元集合中的地形单元的视觉表现可以预先设计制作,故在一些实施例中,单元格为正m边形,m为大于二的正整数,步骤104之前,还可以包括如下步骤:

(1)确定正m边形的单元格对应的多种单元格类型;

(2)基于单元格类型制作对应的地形单元,并建立映射关系,映射关系为单元格类型和地形单元之间的映射关系;

(3)将地形单元保存在地形单元集合中。

在一些实施例中,可以通过排列组合的方式来确定正m边形的单元格对应的多种单元格类型。例如,参考图1h,分别对相邻边的数量等于0、1、2、3、…m时,正m边形的单元格对应的多种单元格类型进行列举,从而确定0条相邻边时单元格对应类型[1],1条相邻边时单元格对应类型[2],2条相邻边时单元格对应类型[3]、[4]和[5],3条相邻边时单元格对应类型[6]、[7]、[8]和[9],4条相邻边时单元格对应类型[10]、[11]和[12],5条相邻边时单元格对应类型[13],6条相邻边时单元格对应类型[14]。

因此,步骤104可以是根据映射关系,确定目标毗连单元格的单元格类型所对应的目标地形单元;从地形单元集合中获取目标地形单元。

105、在目标毗连单元格上放置目标地形单元,从而在预设地表上构造目标地形,以使目标地形在视觉上形成连贯整体。

参考图1g通过在目标毗连单元格上放置目标地形单元,最终可以使得构造的目标地形在视觉上形成连贯整体。

在一些实施例中,在目标毗连单元格上摆放目标地形单元时,需要旋转目标地形单元,使得目标地形单元的衔接部分与目标毗连单元格的相邻边契合,故步骤105可以包括如下步骤:

基于目标毗连单元格之间的毗连方向,确定目标地形单元的摆放角度;

根据摆放角度对目标地形单元进行旋转处理,得到旋转后的目标地形单元;

将旋转后的目标地形单元摆放在目标毗连单元格上。

具体地,步骤“基于目标毗连单元格之间的毗连方向,确定目标地形单元的摆放角度”可以包括如下步骤:

确定所述目标毗连单元格的相邻边;

确定所述目标地形单元的衔接部分;

根据所述目标毗连单元格的相邻边和所述目标地形单元的衔接部分确定所述目标地形单元的摆放角度。

例如,参考图1g,假设目标毗连单元格22具有两条相邻边221和222,根据图1e对边的划分可知,目标毗连单元格22具有的两条相邻边分别为边6和边3;参考图1h,假设目标地形单元为类型[3],根据图1e对边的划分可知,其衔接部分对应的相邻边为边5和边2。因此,可知目标地形单元只需正时针旋转60°,或者逆时针旋转120°后,就可以摆放在目标毗连单元格上,该目标地形单元的衔接部分与目标毗连单元格的相邻边契合。

由上可知,本发明实施例可以获取虚拟场景中的预设地表,预设地表可以包括多个单元格,单元格具有对应的地形属性;在单元格中确定多个目标毗连单元格,以及目标毗连单元格之间的毗连方向,目标毗连单元格的地形属性为目标属性,且目标毗连单元格之间相互毗连;基于目标毗连单元格之间的毗连方向,确定每个目标毗连单元格的单元格类型;在地形单元集合中选取符合目标毗连单元格的单元格类型的目标地形单元;在目标毗连单元格上放置目标地形单元,从而在预设地表上构造目标地形,以使目标地形在视觉上形成连贯整体。

由此,本方案可以在虚拟场景中自动地在特定地形属性的单元格中放置特定的地形单元,使得地形单元之间相互衔接,最终使得由这些地形单元构成的地形在视觉上形成连贯整体,从而呈现出自然真实的效果。由此,提升了构造的地形的视觉效果。

根据上述实施例所描述的方法,以下将作进一步详细说明。

本发明实施例提供的地形构造方案可以应用在各种三维场景中。比如,在本实施例中,将以策略类游戏(simulationgame,slg)的山脉地形构建为例,对本发明实施例的方法进行详细说明。

slg中颗粒最小的地理坐标是单元格,游戏内的角色都以单元格到另外一个单元格的形式进行移动,游戏内的建筑、地形等也都被放置在单元格上。在本实施例中,单元格均为正六边形,每个单元格都以其中心点的位置命名。

如图2a所示,一种在slg中基于正六边形单元格来构建地形构造的方法具体流程如下:

(一)美术制作各种连通类型的山体模型。

美术人员可以根据自然世界中山脉的特征将山脉拆分为多个山体,为每个山体制作清晰、精美的山体单元。

(二)通过多次迭代来确定山体布点。

山体布点即目标毗连单元格,迭代过程可参考步骤102,在此不做赘述。

(三)确定每个山体布点的连通类型,从而在对应的山体布点上放置山体模型。

连通类型即单元格类型。该步骤可以参考步骤103~105,在此不做赘述。

参考图2b,最终构造的山脉连绵自然。因此,本发明能够利用高精度的模型形成类似于高度图生成的连绵山脉,保证了精细度的同时因为随机选取的存在,能够生成种类繁多的山体造型,满足了项目对于还原原作山脉的需求

由上可知,相比于直接在场景中放置大型的山脉模型,本方案可以省去制作山脉模型的步骤,自动地在游戏中生成连绵的山脉,且山体之间的连接更加自然、随机,采用本方案的slg可支持玩家自定义设计游戏预设地表,降低了用户门槛,提高了游戏可玩性。

此外,相比于根据高度图生成山脉的常见构造方案,本方案可以有效降低构造所需的计算量,提高构造效率,且生成的山脉地形更加自然真实,视觉重复度低。

由此,本发明实施例可以提升构造的地形的视觉效果。

为了更好地实施以上方法,本发明实施例还提供一种地形构造装置,该地形构造装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。

比如,在本实施例中,将以地形构造装置具体集成在智能手机中为例,对本发明实施例的方法进行详细说明。

例如,如图3所示,该地形构造装置可以包括获取单元301、毗连单元302、类型单元303、选取单元304以及放置单元305,如下:

(一)获取单元301:

获取单元301可以用于获取虚拟场景中的预设地表,预设地表可以包括多个单元格,单元格具有对应的地形属性。

(二)毗连单元302:

毗连单元302可以用于在单元格中确定多个目标毗连单元格,目标毗连单元格的地形属性为目标属性,且目标毗连单元格相互毗连。

在一些实施例中,目标毗连单元格可以包括第一目标毗连单元格和第二目标毗连单元格,毗连单元302可以包括毗连子单元、选取子单元、确定子单元以及循环子单元,如下:

(1)毗连子单元:

毗连子单元,可以用于确定第一目标毗连单元格,以及与第一目标毗连单元格毗连的候选单元格,候选单元格的地形属性为目标属性。

在一些实施例中,毗连子单元,可以用于:

获取历史迭代信息,历史迭代信息记录有多个目标毗连单元格的信息;

确定与所述第一目标毗连单元格毗连的待筛选单元格;

若所述历史迭代信息中未记录所述待筛选单元格,则将所述待筛选单元格作为候选单元格。

(2)选取子单元:

选取子单元,可以用于在候选单元格中选取第二目标毗连单元格。

在一些实施例中,选取子单元可以用于获取密度参数n;

随机选取n-1个候选单元格作为第二目标毗连单元格;其中,单元格为正m边形,m为大于二的正整数,n为不大于m的正整数。

在一些实施例中,m为6,单元格为正六边形,n为3,选取子单元在用于随机选取n-1个候选单元格作为第二目标毗连单元格时,具体可以用于在候选单元格中随机选取2个候选单元格作为第二目标毗连单元格。

在一些实施例中,选取子单元在用于随机选取n-1个候选单元格作为第二目标毗连单元格时,具体可以用于:

确定候选单元的数量k,k为正整数;

当k大于n-1时,在k个候选单元格中随机选取n-1个候选单元格作为第二目标毗连单元格;

当k不大于n-1时,将k个候选单元格全部确定为第二目标毗连单元格。

(3)确定子单元:

确定子单元,可以用于确定第一目标毗连单元格和第二目标毗连单元格之间的毗连方向。

所述确定子单元还用于:

将所述第二目标毗连单元格与所述第一目标毗连单元格记录在所述历史迭代信息中。(4)循环子单元:

循环子单元,可以用于将第二目标毗连单元格作为第一目标毗连单元格,重新执行步骤确定第一目标毗连单元格,直至不存在与第一目标毗连单元格毗连的候选单元格为止,将确定出的所有所述第一目标毗连单元格和所述第二目标毗连单元格作为目标毗连单元格。

(三)类型单元303:

类型单元303可以用于基于目标毗连单元格之间的毗连方向,确定每个目标毗连单元格的单元格类型。

(四)选取单元304:

选取单元304可以用于在地形单元集合中选取符合目标毗连单元格的单元格类型的目标地形单元。

在一些实施例中,地形单元集合可以包括至少一个地形单元,选取单元304可以用于:

获取预设的单元格类型与地形单元之间的映射关系;

基于映射关系,确定目标毗连单元302格的单元格类型所对应的目标地形单元。

在一些实施例中,单元格为正m边形,m为大于二的正整数,选取单元304还可以包括类型子单元、制作子单元以及保存子单元,如下:

(1)类型子单元:

类型子单元可以用于确定所述正m边形的单元格对应的多种单元格类型。

(2)制作子单元:

制作子单元可以用于基于单元格类型制作对应的地形单元,并建立映射关系,所述映射关系为所述单元格类型和所述地形单元之间的映射关系;

将所述地形单元保存在地形单元集合中。

在一些实施例中,选取单元304可以用于:

根据所述映射关系,确定所述目标毗连单元格的单元格类型所对应的目标地形单元;

从所述地形单元集合中获取所述目标地形单元。

在一些实施例中,地形单元可以包括主体部分和衔接部分,制作子单元可以用于:

生成所有地形单元的主体部分;

基于单元格类型,生成地形单元的衔接部分。

(3)保存子单元:

保存子单元可以用于将地形单元保存在地形单元集合中。

(五)放置单元305:

放置单元305可以用于在目标毗连单元格上放置目标地形单元,从而在预设地表上构造目标地形,以使目标地形在视觉上形成连贯整体。

在一些实施例中,放置单元305可以用于:

基于目标毗连单元格之间的毗连方向,确定目标地形单元的摆放角度;

根据摆放角度对目标地形单元进行旋转处理,得到旋转后的目标地形单元;

将旋转后的目标地形单元摆放在目标毗连单元格上。

在一些实施例中,放置单元305基于所述目标毗连单元格之间的毗连方向,确定所述目标地形单元的摆放角度时,具体可以用于:

确定所述目标毗连单元格的相邻边;

确定所述目标地形单元的衔接部分;

根据所述目标毗连单元格的相邻边和所述目标地形单元的衔接部分确定所述目标地形单元的摆放角度。

在一些实施例中,目标地形由多个目标地形单元构成,目标地形单元可以包括主体部分和衔接部分,所述目标地形单元的衔接部分用于与所述目标地形中其他的目标地形单元的衔接。

在一些实施例中,所述地形单元集合中包括多种单元格类型的地形单元,每种单元格类型的地形单元均包括一个主体部分和x个衔接部分,所述x为不大于m且不小于0的整数。

在一些实施例中,目标属性可以包括山脉属性,目标地形可以包括山脉地形,目标地形单元可以包括目标山体单元,所述目标山体单元的衔接部分用于与所述山脉地形中其他的目标山体单元衔接。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

由上可知,本实施例的地形构造装置由获取单元获取虚拟场景中的预设地表,预设地表可以包括多个单元格,单元格具有对应的地形属性;由毗连单元在单元格中确定多个目标毗连单元格,以及确定目标毗连单元格之间的毗连方向,目标毗连单元格的地形属性为目标属性,且目标毗连单元格相互毗连;由类型单元基于目标毗连单元格之间的毗连方向,确定每个目标毗连单元格的单元格类型;由选取单元在地形单元集合中选取符合目标毗连单元格的单元格类型的目标地形单元;由放置单元在目标毗连单元格上放置目标地形单元,从而在预设地表上构造目标地形,以使目标地形在视觉上形成连贯整体。

由此,本发明实施例可以提升构造的地形的视觉效果。

本发明实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。

在一些实施例中,该地形构造装置还可以集成在多个电子设备中,比如,地形构造装置可以集成在多个服务器中,由多个服务器来实现本发明的地形构造方法。

在本实施例中,将以本实施例的电子设备是智能手机为例进行详细描述,比如,如图4所示,其示出了本发明实施例所涉及的智能手机的结构示意图,具体来讲:

该智能手机可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403、输入模块404以及通信模块405等部件。本领域技术人员可以理解,图4中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。在一些实施例中,处理器401可包括一个或多个处理核心;在一些实施例中,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

智能手机还包括给各个部件供电的电源403,在一些实施例中,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该智能手机还可包括输入模块404,该输入模块404可用于接收输入的数字或字符信息,以及产生与用户放置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

该智能手机还可包括通信模块405,在一些实施例中通信模块405可以包括无线模块,智能手机可以通过该通信模块405的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块405可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。

尽管未示出,智能手机还可以包括显示单元等,在此不再赘述。具体在本实施例中,智能手机中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取虚拟场景中的预设地表,所述预设地表包括多个单元格,所述单元格具有对应的地形属性;

在所述单元格中确定多个目标毗连单元格所述目标毗连单元格的地形属性为目标属性,且所述目标毗连单元格相互毗连;

基于所述目标毗连单元格之间的毗连方向,确定每个所述目标毗连单元格的单元格类型;

在地形单元集合中选取符合所述目标毗连单元格的单元格类型的目标地形单元;

在所述目标毗连单元格上放置所述目标地形单元,从而在所述预设地表上构造目标地形。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

由上可知,本方案可以提升构造的地形的视觉效果。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本发明实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种地形构造方法中的步骤。

例如,该指令可以执行如下步骤:

获取虚拟场景中的预设地表,所述预设地表包括多个单元格,所述单元格具有对应的地形属性;

在所述单元格中确定多个目标毗连单元格所述目标毗连单元格的地形属性为目标属性,且所述目标毗连单元格相互毗连;

基于所述目标毗连单元格之间的毗连方向,确定每个所述目标毗连单元格的单元格类型;

在地形单元集合中选取符合所述目标毗连单元格的单元格类型的目标地形单元;

在所述目标毗连单元格上放置所述目标地形单元,从而在所述预设地表上构造目标地形。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中提供的地形构造方面或者游戏中山脉地形构造方面的各种可选实现方式中提供的方法。

由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种地形构造方法中的步骤,因此,可以实现本发明实施例所提供的任一种地形构造方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本发明实施例所提供的一种地形构造方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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