掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及计算机技术领域,特别是涉及塔楼模型的生成方法、装置、电子设备及存储介质。

背景技术

随着游戏行业的蓬勃发展,游戏世界内所涵盖的内容越来越丰富。在游戏或动画视频场景制作中,会存在各式各样的建筑。

其中,游戏或动画视频场景中常常会出现密集的集装箱塔楼类建筑。集装箱塔楼是由错为堆叠的集装箱房屋与混凝土框架楼之间固定连接构成的巨型整体。若纯粹由人工手动构建塔楼模型,显然需要耗费大量的人力成本,存在构建成本高昂且十分耗时的问题。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

鉴于上述问题,提出了本申请以便提供克服上述问题或者至少部分地解决上述问题的塔楼模型的生成方法、装置、电子设备及存储介质,包括:

一种塔楼模型的生成方法,所述方法包括:

确定与待构建的塔楼模型的建筑区域对应的方形面片;

将所述方形面片划分为多个子方形面片,根据第一预设高度范围设置每个所述子方形面片的高度;

根据每个所述子方形面片的各个顶点,生成连接各所述顶点与地面的柱状模型;所述地面是指所述塔楼模型底面所在的平面;

提取每个所述子方形面片的一条边作为目标边,并生成连接各所述目标边与所述地面的楼梯模型;

将所述建筑模型的底部分别与每个所述子方形面片进行拼接,以生成所述塔楼模型;所述建筑模型是底面为方形的部件模型与立方体类模型的侧面及顶面拼接而成的模型。

一种塔楼模型的生成装置,所述装置包括:

面片获取模块,用于确定与待构建的塔楼模型的建筑区域对应的方形面片;

面片分割模块,用于将所述方形面片划分为多个子方形面片,根据第一预设高度范围设置每个所述子方形面片的高度;

柱状模型生成模块,用于根据每个所述子方形面片的各个顶点,生成连接各所述顶点与地面的柱状模型;所述地面是指所述塔楼模型底面所在的平面;

楼梯模型生成模块,用于提取每个所述子方形面片的一条边作为目标边,并生成连接各所述目标边与所述地面的楼梯模型;

塔楼模型生成模块,用于将所述建筑模型的底部分别与每个所述子方形面片进行拼接,以生成所述塔楼模型;所述建筑模型是底面为方形的部件模型与立方体类模型的侧面及顶面拼接而成的模型。

一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的塔楼模型的生成方法。

一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的塔楼模型的生成方法。

本申请具有以下优点:

在本申请的实施例中,通过确定与待构建的塔楼模型的建筑区域对应的方形面片;将方形面片划分为多个子方形面片,根据第一预设高度范围设置每个子方形面片的高度;子方形面片表征用于建造房屋的平台,使得生成的塔楼模型高低错落,提高生成的塔楼模型的真实性;根据每个子方形面片的各个顶点,生成连接各顶点与地面的柱状模型;柱状模型表征塔楼的钢筋支架;地面是指塔楼模型底面所在的平面;提取每个子方形面片的一条边作为目标边,并生成连接各目标边与地面的楼梯模型;获取底面为方形的部件模型与立方体类模型的侧面及顶面拼接而成的建筑模型,将建筑模型的底部与每个子方形面片进行拼接,以生成塔楼模型;可以实现自动、灵活地生成塔楼模型,提高塔楼模型生成效率,同时可以提高塔楼模型的真实性。

附图说明

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

图1为本申请实施例的一种塔楼模型的生成方法的步骤流程图;

图2为本申请一示例中绘制界面展示的方形面片的示意图;

图3为本申请一示例中方形面片分割的示意图;

图4为本申请一示例中方形面片分割得到多个子方形面片的示意图;

图5为本申请一示例中多个子方形面片间隔设置的示意图;

图6为本申请一示例中生成柱状模型的示意图;

图7为本申请一示例中生成楼梯模型的示意图;

图8为本申请一示例中子方形面片与建筑模型拼接的示意图;

图9为本申请一示例中生成的建筑模型的示意图;

图10为本申请一示例中立方体类模型的侧面与第一部件模型拼接的示意图;

图11为本申请一示例中生成第二部件模型的流程示意图;

图12为本申请一示例中对平面随机分割的示意图;

图13为本申请一示例中提取目标子平面的示意图;

图14为本申请一示例中生成的木板模型的示意图;

图15为本申请一示例中生成的第二横杆模型的示意图;

图16为本申请一示例中生成的支架模型的示意图;

图17为本申请一示例中生成一种包围边模型的示意图;

图18为本申请一示例中生成另一种包围边模型的示意图;

图19为本申请一示例中生成的第二部件模型的示意图;

图20为本申请一示例中生成平台模型的示意图;

图21为本申请一示例中生成第一横杆模型的示意图;

图22为本申请一示例中生成曲线模型的示意图;

图23为本申请一示例中生成的塔楼模型的示意图;

图24为本申请实施例的一种塔楼模型的生成装置的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

密集的集装箱塔楼类建筑常常作为游戏或动画视频场景中的背景出现,例如,当游戏或动画视频的剧情是要体现贫困、落后、人口密集等主题时,常常采用密集的集装箱塔楼类建筑作为相应场景的背景。为了与相应的剧情相匹配以实现较好的视觉效果,游戏或动画视频场景中的密集的集装箱塔楼类建筑一般认为是无规划构建出的建筑产物,因此,常常需要呈现出高低错落的布局,并且,不同的集装箱塔楼建筑也常常呈现出不同的外形。在制作游戏或动画视频场景时,对于此类密集的集装箱塔楼类建筑模型,若采用人工手动方式构建,显然需要耗费大量的人力成本,存在构建成本高昂且十分耗时的问题。

鉴于此,本申请实施例提供了一种塔楼模型的生成方法,通过将塔楼模型的建筑区域对应的方形面片分割成多个子方形面片,以体现塔楼模型密集的特点,然后,对分割得到的多个子方形面片设置高度,以体现塔楼模型高低错落的特点,接着,生成连接子方形面片的各个顶点与地面的柱状模型,作为支撑子方形面片的钢筋支架,以及生成连接各个子方形面片与地面的楼梯模型,同时在每个子方形面片上拼接建筑模型,该建筑模型即为塔楼模型中的集装箱房屋,可以实现快速生成高低错落、形态多样的塔楼模型,提高塔楼模型的生成效率和质量。

参照图1,示出了本申请一实施例提供的一种塔楼模型的生成方法,该方法可以由终端设备执行,也可以由终端设备和服务器共同执行。其中,终端设备和服务器可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在本申请实施例中,该塔楼模型的生成方法,可以包括如下步骤:

步骤101,确定与待构建的塔楼模型的建筑区域对应的方形面片。

在制作塔楼模型时,首先需要根据实际制作需求,确定与待构建的塔楼模型的建筑区域对应的方形面片,以在该方形面片的基础上生成塔楼模型。

步骤102,将所述方形面片划分为多个子方形面片,根据第一预设高度范围设置每个所述子方形面片的高度。

在得到方形面片后,将方形面片划分为多个不同大小的子方形面片,该子方形面片表征塔楼模型中用于建造集装箱房屋的平台。通过根据第一预设高度范围设置每个子方形面片的高度,可以使生成的塔楼模型体现出高低错落的视觉效果。

步骤103,根据每个所述子方形面片的各个顶点,生成连接各所述顶点与地面的柱状模型;所述地面是指所述塔楼模型底面所在的平面。

通过获取每个子方形面片的各个顶点,然后基于每个顶点,生成连接该顶点与地面的柱状模型,该柱状模型表征塔楼模型的钢筋支架,实现支撑子方形面片的效果。其中,地面是指塔楼模型底面所在的平面。

步骤104,提取每个所述子方形面片的一条边作为目标边,并生成连接各所述目标边与所述地面的楼梯模型。

每个子方形面片与地面之间还需要通过楼梯模型来连接,可以通过提取每个子方形面片的一条边作为目标边,生成连接目标与地面的楼梯模型,使得生成的塔楼模型更加真实。

步骤105,获取建筑模型,将所述建筑模型的底部分别与每个所述子方形面片进行拼接,以生成所述塔楼模型。

建筑模型是底面为方形的部件模型与立方体类模型的侧面及顶面拼接而成的模型。该建筑模型表征塔楼模型中的集装箱房屋,将建筑模型的底部与子方形面片进行拼接,并且建筑模型在对应的子方形面片上方,实现在每个子方形面片上建造集装箱房屋的效果,即生成塔楼模型。

当由终端设备执行本申请实施例的塔楼模型的生成方法时,终端设备可以将生成的塔楼模型发送至服务器,服务器可以存储该塔楼模型,以将该塔楼模型发送至其他设备。

具体地,终端设备可以展示用于绘制模型的绘制界面,响应作用于绘制界面中用于构建塔楼模型的绘制操作,生成绘制指令,根据绘制指令来确定与待构建的塔楼模型的建筑区域对应的方形面片;然后,将方形面片划分为多个子方形面片,根据第一预设高度范围设置每个子方形面片的高度;接着,根据各个子方形面片的各个顶点,生成连接各个顶点与地面的柱状模型;同时提取每个子方形面片的一条边作为目标边,并生成连接目标边与地面的楼梯模型;以及通过获取建筑模型,将建筑模型的底部与每个子方形面片进行拼接,以生成塔楼模型。

当由终端设备和服务器共同执行本申请实施例的塔楼模型时,由终端设备展示用于绘制模型的绘制界面,响应作用于绘制界面中用于构建塔楼模型的绘制操作,生成绘制指令,并向服务器发送塔楼模型的绘制指令。服务器可以响应于绘制指令,确定与待构建的塔楼模型的建筑区域对应的方形面片,并将方形面片随机划分为多个子方形面片,根据第一预设高度范围设置每个子方形面片的高度;接着,根据各个子方形面片的各个顶点,生成连接各顶点与地面的柱状模型;同时提取每个子方形面片的一条边作为目标边,并生成连接目标边与地面的楼梯模型;以及通过获取建筑模型,将建筑模型的底部与每个子方形面片进行拼接,以生成塔楼模型,还可以将生成的塔楼模型返回至终端设备,终端设备可以在绘制界面中展示该塔楼模型。

本申请的实施例通过确定与待构建的塔楼模型的建筑区域对应的方形面片;将方形面片划分为多个子方形面片,根据第一预设高度范围设置每个子方形面片的高度;使得生成的塔楼模型高低错落、大小各异,提高生成的塔楼模型的真实性;根据每个子方形面片的各个顶点,生成连接顶点与地面的柱状模型;提取每个子方形面片的一条边作为目标边,并生成连接目标边与地面的楼梯模型;从资源库中获取建筑模型,将建筑模型的底部与每个子方形面片进行拼接,以生成塔楼模型;可以实现自动、灵活地生成塔楼模型,提高塔楼模型生成效率,同时可以提高塔楼模型的真实性。

下面,将以应用于终端设备为例,对本示例性实施例中塔楼模型的生成方法作进一步地说明。

在步骤101中,确定与待构建的塔楼模型的建筑区域对应的方形面片。

终端设备可以通过运行模型制作软件,在屏幕中展示用于绘制模型的绘制界面。响应于构建塔楼模型的绘制指令,确定与待构建的塔楼模型的建筑区域对应的方形面片,并展示在绘制界面中,如图2所示,为一示例中绘制界面展示的方形面片。本申请实施例中的方形面片和子方形面片均呈长方形。

其中,绘制指令可以由用户作用于绘制界面的绘制操作触发的,该绘制操作可以包括但不限于是鼠标拖动操作,或手势滑动操作,或作用于预设尺寸的矩形框的点击操作等。通过用于构建塔楼模型的绘制操作,可以确定与待构建的塔楼模型的建筑区域对应的方形面片,可以理解,本申请实施例是在该确定的方形面片的基础上生成塔楼模型。

在步骤102中,将所述方形面片划分为多个子方形面片,根据第一预设高度范围设置每个所述子方形面片的高度。

其中,子方形面片表征塔楼模型中用于建造集装箱房屋的平台。通过对方形面片进行划分得到多个子方形面片,使得多个子方形面片具有不同的大小,以体现塔楼模型密集、无规划的特点;通过设置每个子方形面片的高度,还可以体现塔楼模型高低错落的布局。

示例性地,可以对方形面片进行随机划分,得到多个子方形面片,以体现塔楼模型无规划的特点。

示例性地,在根据第一预设高度范围设置每个子方形面片的高度的过程中,多个子方形面片可以沿同一方向设置对应的高度,比如,针对每个子方形面片,从第一预设高度范围中随机选择一个高度,将对应的子方形面片沿竖直向上的方向提升该高度。多个子方形面片也可以沿相对高度方向设置对应的高度,比如,针对每个子方形面片,从第一预设高度范围中随机选择一个高度,将对应的子方形面片竖直向上或向下调整该高度。

在本申请实施例中,为了使得划分得到的子方形面片更加美观,可以限定每次划分是对方形面片或子方形面片的较长边进行分割,得到两个子方形面片。如图3所示,a边、b边是方形面片中较长的对边,c边、d边是方形面片中较短的对边,在对图3所示的方形面片进行划分时,可以从a边中随机获取一个点O,然后确定b边中与该点O对应的点O’,即O和O’的连线垂直于a边和b边;最后,连接点O和点O’将图3所示的方形面片划分为两个子方形面片。

在将方形面片随机划分为多个子方形面片的过程中,涉及到划分次数和每次划分比例范围。其中,每次划分比例范围是指方形面片或子方形面片的较长边分割后的每段与该较长边的比例。划分次数和/或每次划分比例范围可以是预先设置的,也可以是根据需要设置的。

其中,预先设置可以认为是默认设置的,包括默认设置具体的值和默认设置具体的对应关系,例如,默认划分次数为4次,默认每次划分比例范围是[0.2,0.8];可以理解,无论方形面片的面积是多大,均对方形面片划分4次,每次划分比例范围是[0.2,0.8]。又如,通过记录方形面片大小与划分次数、划分比例范围之间关系的关系表,在确定方形面片后,可以通过关系表中记录的方形面片大小与划分次数的关系确定方形面片的划分次数,在每次划分时,通过关系表中记录的方形面片的长边和短边的比例与划分比例范围的关系,确定每次划分比例范围。

其中,根据需要设置可以认为是由用户自行设置,即每次绘制塔楼模型时,需要用户设置方形面片的划分次数和每次划分比例范围。示例性地,可以在绘制界面中展示供用户确定划分次数的预设值编辑区域,以及与每次划分比例相关的预设比例范围编辑区域,预设值编辑区域可以向用户提供设置预设值的功能,预设比例范围编辑区域可以向用户提供设置预设比例范围的功能。终端设备可以接收通过预设值编辑区和预设比例范围编辑区所编辑的信息,根据所编辑的信息确定预设值和预设比例。

类似地,上述预设高度可以是预先设置的,也可以是根据需要设置的。

在确定方形面片的划分次数和每次划分比例范围后,上述将所述方形面片划分为多个子方形面片,根据第一预设高度范围设置每个子方形面片的高度,具体可以包括:

当计数器的计数值小于预设值时,在预设比例范围内对所述方形面片或上一次分割得到的每个子方形面片进行随机分割,得到多个子方形面片;

所述计数器的计数值加1;

当所述计数器的计数值等于预设值时,根据第一预设高度范围设置所述每个子方形面片的高度。

本实施例通过计数器来记录实际划分的次数,预设值可以理解为划分次数。如图4所示,假设预设值为4,在每次绘制操作之前,可以初始化计数器的计数值,例如,初始化后的计数器的计数值可以是0;此时计数器的计数值小于预设值,在预设比例范围内对方形面片进行随机分割,得到两个子方形面片,为便于区分,将第一次分割得到的子方形面片记为第一子方形面片。

执行第一次分割后,计时器的计数值加1,此时,计数器的计数值为1,仍小于预设值,则执行在预设比例范围内对每个第一子方形面片进行随机分割,得到4个第二子方形面片;

执行第二次分割后,计数器的计数值加1,此时,计数器的计数值为2,仍小于预设值,则执行在预设比例范围内对每个第二子方形面片进行随机分割,得到8个第三子方形面片;

执行第三次分割后,计数器的计数值加1,此时,计数器的计数值为3,仍小于预设值,则执行在预设比例范围内对每个第三子方形面片进行随机分割,得到16个第四子方形面片;

执行第四次分割后,计数器的计数值加1,此时,计数器的计数值为4,等于预设值,则执行根据第一预设高度范围设置所述每个子方形面片的高度,即,将随机设置每个第四子方形面片的高度,使得每个第四子方形面片的高度在预设高度范围内。

可选地,如图5所示,上述将所述方形面片随机划分为多个子方形面片,根据第一预设高度范围随机设置每个子方形面片的高度,还可以包括:

将所述多个子方形面片间隔预设距离。

其中,预设距离可以是预先设置的,也可以是根据需要设置的。将多个子方形面片间隔预设距离,再根据预设高度范围设置所述每个子方形面片的高度,可以使后续生成的集装箱房屋存在间隔,使生成的塔楼模型更合理、真实。

在步骤103中,根据每个所述子方形面片的各个顶点,生成连接各所述顶点与地面的柱状模型;所述地面是指所述塔楼模型底面所在的平面。

每个子方形面片表征塔楼模型中用于建造集装箱房屋的平台,因此,需要构建支撑每个子方形面片的钢筋支架,即连接子方形面片与地面的柱状模型表征塔楼模型的钢筋支架。

在本申请实施例中,可以根据每个子方形面片的各个顶点,生成连接各顶点与地面的柱状模型。示例性地,如图6所示,可以提取每个子方形面片的各个顶点,针对每个顶点,从顶点沿高度方向向地面发射射线,将位于顶点与地面之间的线段拓展成柱状模型,可以理解,以射线为中心轴,构建柱状模型,该柱状模型的高度位于对应的顶点与地面之间。其中,柱状模型可以是圆柱模型、棱柱模型等。

如图6所示,为了提高柱状模型的真实性,在本申请一可选实施例中,还可以在柱状模型与地面的连接处设置底座模型,该底座模型表征钢筋支架的底座,底座模型平行于地面的横截面大于柱状模型平行于地面的横截面,以呈现出更加稳固的支撑效果。

在步骤104中,提取每个所述子方形面片的一条边作为目标边,并生成连接各所述目标边与所述地面的楼梯模型。

塔楼模型的每个平台除了有钢筋支架支撑外,还需要有与地面连接的、用于供虚拟角色攀爬或行走的楼梯模型。本实施例通过提取每个子方形面片的一条边作为目标边,生成连接目标与地面的楼梯模型。

示例性地,如图7所示,针对每个子方形面片,可以随机提取该子方形面片的一条边作为目标边,然后从目标边开始,沿高度方向向地面按照固定或随机间距生成多个平行于地面的梯阶结构,以得到楼梯模型。其中,随机间距是指任意两个相邻梯阶结构的间距在设定的间距范围内。可选地,还可以限定梯阶结构的长度在设定的长度范围内,使得楼梯模型中的梯阶结构呈现出参差不齐的效果,更加贴合实际的塔楼模型,提高真实性。

在步骤105中,获取建筑模型,将所述建筑模型的底部分别与每个所述子方形面片进行拼接,以生成所述塔楼模型。

所述建筑模型是底面为方形的部件模型与立方体类模型的侧面及顶面拼接而成的模型。建筑模型表征塔楼模型中的集装箱房屋,在构建出塔楼模型的柱状模型、高低错落、大小不一的子方形面片、以及连接各个子方形面片的楼梯模型后,在子方形面片上拼接建筑模型,即可得到塔楼模型。其中,拼接可以理解为将建筑模型按照对应的子方形面片的大小缩放后,使得建筑模型的底部与对应的子方形面片背离地面的一侧完全一致,即建筑模型在对应的子方形面片之上,并且建筑模型的底部高度与对应的子方形面片的高度一致,以呈现出在子方形面片上建造集装箱房屋的效果。

具体地,如图8所示,针对每个子方形面片,可以先确定子方形面片的中心和子方形面片的边长,然后将提取出的建筑模型的中心与子方形面片的中心重合,最后以子方形面片的边长作为参数,对建筑模型进行缩放,使得建筑模型的底部与子方形面片重合。

在本申请一可选实施例中,上述获取建筑模型,将所述建筑模型的底部分别与每个所述子方形面片进行拼接,以生成所述塔楼模型,可以包括:

获取每个所述子方形面片对应的建筑模型,并将所述建筑模型与对应的子方形面片拼接,以生成所述塔楼模型。

在本实施例中,可以为每个子方形面片获取对应的建筑模型,即获取的建筑模型与子方形面片一一对应,不同的子方形面片对应的建筑模型可以不同,以生成多样化的塔楼模型。

在本申请一可选实施例中,上述获取建筑模型具体可以从资料库获取建筑模型,资料库中可以存储多种建筑模型,在从资料库获取建筑模型的过程中,可以从资料库中随机获取每个子方形面片对应的建筑模型,使得多个子方形面片拼接的建筑模型不完全相同,进一步体现塔楼模型的无规划的特点。

在本申请一可选实施例中,获取的建筑模型也可以通过终端设备生成,下面将对建筑模型的生成过程进行解释说明,可以理解,本实施例在上述获取建筑模型之前,还可以包括:

获取立方体类模型;

针对所述立方体类模型的侧面,将第一部件模型与所述侧面进行拼接;

针对所述立方体类模型的顶面,将第二部件模型与所述顶面进行拼接,生成建筑模型。

立方体类模型包括长方体模型、正方体模型。第一部件模型和第二部件模型可以是底面为方形的部件模型。其中,第一部件模型表征建筑模型的侧面样式,第二部件模型表征建筑模型的顶部样式。如图9所示,本申请实施例通过获取相应的部件模型与立方体类模型进行拼接,使立方体类模型呈现出更加丰富的形态,拼接后的立方体类模型即为表征塔楼模型中的集装箱房屋的建筑模型。

可选地,生成的建筑模型还可以存入资源库中,以便在后续生成塔楼模型的过程中可以直接从资源库中获取相应的建筑模型,提高塔楼模型的生成效率。

具体地,第一组件库可以存储多个第一部件模型,第二组件模型可以存储多个第二部件模型,上述针对所述立方体类模型的侧面,将第一部件模型与所述侧面进行拼接,可以包括:

针对立方体类模型的每个侧面,从第一组件库中随机获取一个第一部件模型,将获取得到的第一部件模型与对应的侧面进行拼接。

在本实施例中,每个侧面拼接的第一部件模型是随机获取到的,使得立方体类模型的4个侧面拼接的第一部件模型不完全相同,进一步体现塔楼模型的无规划的特点。

可选地,上述针对所述立方体类模型的侧面,将第一部件模型与所述侧面进行拼接,可以包括:

将所述立方体类模型的侧面分割为多个方形的子侧面;

获取每个所述子侧面对应的第一部件模型,将所述第一部件模型与对应的子侧面进行拼接。

在本实施例中,还可以对立方体类模型的每个侧面进行分割,再针对分割得到的每个子侧面,获取对应的第一部件模型,将获取到的第一部件模型与对应的子侧面进行拼接,可以进一步提高建筑模型的多样性,进而提高塔楼模型的多样性。

其中,对每个侧面进行分割的过程与上述对方形面片进行分割的过程类似,此处不再赘述。

如图10所示,立方体类模型的一个侧面分割成两个子侧面,即第一子侧面和第二子侧面,每个子侧面拼接不同的第一部件模型,如图10,第一子侧面拼接第一部件模型A,第二子侧面拼接第一部件模型B。

请参见图11所示,在本申请一可选实施例中,第二部件模型可以通过终端设备生成,在获取第二部件模型之前,还可以包括如下步骤:

步骤1101,根据所述立方体类模型的顶面生成与所述顶面匹配的平面,并将所述平面划分成多个子平面。

如图12所示,根据立方体类模型的顶面,生成与该顶面大小相同的平面,然后对该平面进行分割或随机分割,得到多个子平面。

步骤1102,将多个所述子平面按照面积从大到小的顺序排序后,获取顺序靠前的、预设数量的目标子平面。

如图13所示,在得到多个子平面后,可以对多个子平面按照面积从大到小进行排序,将顺序靠前的、预设数量的目标子平面保留,其他子平面剔除。

步骤1103,在第二预设高度范围内拉伸各所述目标子平面,得到对应的木板模型。

由于目标子平面是平面结构,本实施例中需要使建筑模型呈现出正在建造的效果,因此,需要对目标子平面沿高度方向进行拉伸,以得到对应的木板模型,该木板模型表征在塔楼模型的顶部搭建的脚手架的木板。

具体地,可以根据第二预设高度范围对目标子平面进行随机拉伸,使生成的木板模型的厚度控制在第二预设高度范围内,以使得生成的木板模型更加真实。

其中,第二预设高度范围可以是预先设置的,也可以是根据需要进行设置的。

步骤1104,将各所述木板模型沿平行于所述顶面的方向延长第二预设长度,并根据第三预设高度范围设置所述木板模型的高度。

如图14所示,将木板模型沿平行于顶面的方向延长第二预设长度,并根据第三预设高度范围随机设置木板模型的高度,使得木板模型之间呈现出相互堆叠的效果。

步骤1105,从多个所述子平面中随机提取多条子平面边,并以每条子面片边作为中心轴,生成相应的第二横杆模型。

步骤1106,按照第四预设高度范围设置各所述第二横杆模型的高度。

其中,所述第三预设高度范围在所述第四预设高度范围之内。示例性地,假设地面所在平面的高度为0,则所述第四预设高度范围的最大值大于所述第三预设高度范围的最大值,所述第四预设高度范围的最小值小于所述第三预设高度范围的最小值。

对于建造中的建筑,除了木板模型之外,还存在第二横杆模型和支架模型,以构成建造建筑时所需的脚架。可以理解,第二横杆模型表征用于搭建木板模型的横杆,支架模型表征用于支撑横杆的支架。图15所示为生成的第二横杆模型。第二横杆模型的高度在第四预设高度范围内,并且第四预设高度范围中的最大值大于木板模型的高度所对应的第二预设高度范围的最大值,第四预设高度范围的最小值小于所述第三预设高度范围的最小值,使得第二横杆模型可以位于木板模型的上方或下方,以便呈现出更加真实的建筑脚架的效果,

步骤1107,从多个所述子平面的多个顶点中提取出多个目标顶点,生成用于连接各所述目标顶点与所述顶面的支架模型。

如图16所示为生成的支架模型。该支架模型的生成过程可以与前文柱状模型的生成过程类似,此处不再赘述。

步骤1108,根据所述顶面的边生成围设所述顶面的包围边模型。

具体地,如图17所示,可以获取顶面的边框,对顶面的边框中的各边进行分段,扩展成相应的可编辑网格,然后对可编辑网格中的每一段沿高度方向随机挤出一定高度,形成包围边模型。该包围边模型表征塔楼模型顶部的围墙。

可选地,如图18所示,还可以沿顶面所在平面、向顶面中心的方向挤出后,再沿高度方向挤出,形成另一种包围边模型。

可选地,图17所示的包围边模型和图18所示的包围边模型可以进行合并,得到又一种包围边模型。

步骤1109,根据所述木板模型、第二横杆模型、支架模型以及包围边模型生成底面为方形的第二部件。

如图19所示为木板模型、第二横杆模型、支架模型以及包围边模型结合后得到第二部件模型的示意图;生成的建筑模型如图9所示。

进一步地,在本申请一可选实施例中,上述塔楼模型的生成方法还可以包括:

对每个所述子方形面片进行多次复制,得到各所述子方形面片的多个子方形面片副本;

基于多个所述子方形面片副本生成多个平台模型;

将各所述平台模型间隔设置在对应的子方形面片与所述地面之间。

在本实施例中,对每个子方形面片进行多次复制,不同子方形面片复制的次数可以不同,可以得到由子方形面片复制得到的多个子方形面片副本。当然,也可以对多个子方形面片进行相同次数的复制后,在随机删除一些复制得到的子方形面片副本。

如图20所示,由于子方形面片副本是平面结构,因此,需要基于子方形面片副本构建对应的平台模型,可以理解,平台模型是通过对子方形面片副本拉伸一定高度得到的,具体的拉伸高度可以是预先设置的,也可以是根据需要设置的。该平台模型表征塔楼模型中待建造集装箱房屋的平台。然后,将基于多个子方形面片副本生成的多个平台模型间隔设置在对应子方形面片与地面之间,以使塔楼模型呈现出多层的效果。可以理解,由同一个子方形面片复制得到的子方形面片副本对应的平台模型,间隔设置在该同一个子方形面片与地面之间。其中,多个平台模型的间隔可以是固定的,也可以是随机的。其中,随机是指任意两个相邻平台模型的间距不是固定的,并且是在预设的间距范围内的随机。

可选地,还可以对多个平台模型中的至少部分平台模型拼接子平台模型,以提高塔楼模型的丰富性。具体地,可以在至少部分平台模型的一侧或多侧拼接相同或不同的子平台模型。其中,拼接有子平台模型的平台模型的底面大于其拼接的任意一个子平台模型的底面,以使得整体效果更加美观。其中,子平台模型可以通过对其拼接的平台模型进行分割或缩放得到。

可选地,还可以从多个平台模型中,随机抽取出至少一个目标平台模型,通过获取各个目标平台模型的建筑模型,并将获取得到的建筑模型与对应的目标平台模型进行拼接,使生成的塔楼模型中包含更多的集装箱房屋,体现集装箱塔楼模型密集型的特点。其中,将建筑模型与目标平台模型进行拼接的方式与上述将建筑模型与子方形面片进行拼接的方式类似,不再赘述。

进一步地,在本申请一可选实施例中,上述方法还可以包括:

提取每个所述子方形面片的边和每个所述子方形面片副本的边;

对每个所述子方形面片的边和每个所述子方形面片副本的边分别延长第一预设长度,得到多个延长边;

以各所述延长边作为中心轴,生成相应的第一横杆模型。

在本实施例中,为了体现出塔楼模型处于正在建造的效果,可以提取每个子方形面片的边和每个子方形面片副本的边,具体地,如图21所示,可以提取子方形面片和子方形面片副本的线框,并将每一条边打断,以提取子方形面片和子方形面片副本的边。然后,将提取出的边延长第一预设长度,得到延长边,其中,第一预设长度可以是预先设置的,也可以是根据需要设置的。最后,以每个延长边作为中心轴,生成第一横杆模型,该第一横杆模型的长度即为延长边的长度。第一横杆模型表征用于搭建塔楼模型平台的横杆。例如,可以以延长边作为中心轴,根据预设半径生成第一横杆模型,其中,预设半径可以是预先设置的,也可以是根据需要设置的。第一横杆模型与柱体模型交错,可以呈现出正在建造的效果。

进一步地,在本申请一可选实施例中,上述方法还可以包括:

提取每个所述子方形面片中沿第一方向设置的边;

根据所述沿第一方向设置的边的两个端点,生成连接所述两个端点且向所述地面方向下垂的曲线模型,所述曲线模型表征所述塔楼模型的线缆。

在游戏或动画视频场景中,塔楼模型还具有线缆,例如,为塔楼模型内虚拟人物居住生活供电使用的电缆。如图22所示,可以提取每个子方形面片中沿第一方向设置的边,根据该沿第一方向设置的边的两个端点,生成连接该两个端点且向地面方向下垂的曲线模型,以作为塔楼模型中的线缆,使生成的塔楼模型更加真实。如图23为本申请一实施例生成的塔楼模型示意图。

本申请的一实施例通过确定与待构建的塔楼模型的建筑区域对应的方形面片;将方形面片随机划分为多个子方形面片,根据第一预设高度范围随机设置每个子方形面片的高度;使得生成的塔楼模型高低错落、大小随机,提高生成的塔楼模型的真实性;根据每个子方形面片的各个顶点,生成连接顶点与地面的柱状模型;随机提取每个子方形面片的一条边作为目标边,并生成连接目标边与地面的楼梯模型;获取建筑模型,将建筑模型的底部与每个子方形面片进行拼接,生成塔楼模型;可以实现自动、灵活地生成塔楼模型,提高塔楼模型生成效率,同时可以提高塔楼模型的真实性。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图24,示出了本申请的一种塔楼模型的生成装置实施例的结构框图,与上述塔楼模型的生成方法实施例相对应,在本申请实施例中,该装置可以包括如下模块:

面片获取模块2401,用于确定与待构建的塔楼模型的建筑区域对应的方形面片;

面片分割模块2402,用于将所述方形面片划分为多个子方形面片,根据第一预设高度范围设置每个所述子方形面片的高度;

柱状模型生成模块2403,用于根据每个所述子方形面片的各个顶点,生成连接各所述顶点与地面的柱状模型;所述地面是指所述塔楼模型底面所在的平面;

楼梯模型生成模块2404,用于提取每个所述子方形面片的一条边作为目标边,并生成连接各所述目标边与所述地面的楼梯模型;

塔楼模型生成模块2405,用于获取建筑模型,将所述建筑模型的底部分别与每个所述子方形面片进行拼接,以生成所述塔楼模型;所述建筑模型是底面为方形的部件模型与立方体类模型的侧面及顶面拼接而成的模型。

可选地,所述面片获取模块2401具体用于响应于构建塔楼模型的绘制指令,确定与待构建的塔楼模型的建筑区域对应的方形面片。

可选地,所述面片分割模块2402,包括:

分割子模块,用于当计数器的计数值小于预设值时,在预设比例范围内对所述方形面片或上一次分割得到的每个子方形面片进行随机分割,得到多个子方形面片;

计数子模块,用于将所述计数器的计数值加1;

第一高度调整模块,用于当所述计数器的计数值等于预设值时,根据第一预设高度范围设置每个所述子方形面片的高度。

可选地,所述装置还包括:

副本生成模块,用于对每个所述子方形面片进行多次复制,得到各所述子方形面片的多个子方形面片副本;

平台模型生成模块,用于基于多个所述子方形面片副本生成多个平台模型;

平台模型设置模块,用于将各所述平台模型间隔设置在对应的子方形面片与所述地面之间。

可选地,所述装置还包括:

第一提取模块,用于提取每个所述子方形面片的边和每个所述子方形面片副本的边;

第一延长模块,用于对每个所述子方形面片的边和每个所述子方形面片副本的边分别延长第一预设长度,得到多个延长边;

第一横杆模型生成模块,用于以各所述延长边作为中心轴,生成相应的第一横杆模型。

可选地,所述部件模型包括第一部件模型及第二部件模型,所述装置还包括:

立方体类模型获取模块,用于获取立方体类模型;

初始建筑模型生成模块,用于针对所述立方体类模型的侧面,将所述第一部件模型与所述侧面进行拼接;

第一建筑模型生成模块,用于针对所述立方体类模型的顶面,将所述第二部件模型与所述顶面进行拼接,生成建筑模型。

可选地,所述装置还包括:

顶面划分模块,用于根据所述立方体类模型的顶面生成与所述顶面匹配的平面,并将所述平面划分成多个子平面;

排序模块,用于将多个所述子平面按照面积从大到小的顺序排序后,获取顺序靠前的、预设数量的目标子平面;

模板模型生成模块,用于在第二预设高度范围内拉伸各所述目标子平面,得到对应的木板模型;

第三高度调整模块,用于将各所述木板模型沿平行于所述顶面的方向延长第二预设长度,并根据第三预设高度范围设置所述木板模型的高度;

第二横杆模型生成模块,用于从多个所述子平面中随机提取多条子平面边,并以每条子面片边作为中心轴,生成相应的第二横杆模型;

第四高度调整模块,用于按照第四预设高度范围设置各所述第二横杆模型的高度,所述第三预设高度范围在所述第四预设高度范围之内;

支架模型生成模块,用于从多个所述子平面的多个顶点中提取出多个目标顶点,生成用于连接各所述目标顶点与所述顶面的支架模型;

包围边模型生成模块,用于根据所述顶面的边生成围设所述顶面的包围边模型;

第二建筑模型生成模块,用于根据所述木板模型、第二横杆模型、支架模型以及包围边模型生成底面为方形的第二部件。

可选地,所述初始建筑模型生成模块,包括:

侧面分割子模块,用于将所述立方体类模型的侧面分割为多个方形的子侧面;

侧面拼接模块,用于获取每个所述子侧面对应的第一部件模型,将所述第一部件模型与对应的子侧面进行拼接。

可选地,所述塔楼模型生成模块2405,用于获取每个所述子方形面片对应的建筑模型,并将所述建筑模型与对应的子方形面片拼接,以生成所述塔楼模型。

可选地,所述装置还包括:

第二提取模块,用于提取每个所述子方形面片中沿第一方向设置的边;

曲线模型生成模块,用于根据所述沿第一方向设置的边的两个端点,生成连接所述两个端点且向所述地面方向下垂的曲线模型,所述曲线模型表征所述塔楼模型的线缆。

可选地,所述面片分割模块还用于将多个所述子方形面片间隔预设距离。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请实施例还公开了电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的塔楼模型的生成方法的步骤。

本申请实施例还公开了计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的塔楼模型的生成方法的步骤。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本申请实施例中提出的所有获取信息的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

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

技术分类

06120115686871