一种三维场景生成方法、装置、设备和存储介质制造方法及图纸

技术编号:27719464 阅读:20 留言:0更新日期:2021-03-19 13:07
本发明专利技术实施例公开了一种三维场景生成方法、装置、设备和存储介质,该方法包括:获取三维场景中待生成的每个场景元素对应的元素数据,场景元素包括地形场景元素和非地形场景元素;根据非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素;基于场景底平面,对各个不可交互场景元素进行网格碰撞检测,确定出与地形场景元素可堆叠的不可交互场景元素,作为第一场景元素;基于预设高度投影方式和元素数据,将地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型。通过本发明专利技术实施例的技术方案,可以提高三维场景的生成效率。

【技术实现步骤摘要】
一种三维场景生成方法、装置、设备和存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种三维场景生成方法、装置、设备和存储介质。
技术介绍
随着计算机技术的快速发展,三维场景所包含的场景元素越来越丰富。例如,场景元素可以包括可与用户进行交互的场景元素(比如,可移动的箱子等),以及不可与用户进行交互的场景元素(比如,地形、地上的树木、石头等)。目前,现有的三维场景生成方式是:根据手动输入的地形高度图绘制地形,生成地形模型,再将其余的每个场景元素的元素数据逐个进行加载,在相应位置上生成每个场景元素对应的场景模型,从而完成三维场景的生成。可见,现有的三维场景中的每个场景元素都是单独生成的,大大降低了三维场景生成效率。
技术实现思路
本专利技术实施例提供了一种三维场景生成方法、装置、设备和存储介质,以提高三维场景的生成效率。第一方面,本专利技术实施例提供了一种三维场景生成方法,包括:获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;基于场景底平面,对各个所述不可交互场景元素进行网格碰撞检测,确定出与所述地形场景元素可堆叠的不可交互场景元素,作为第一场景元素;基于预设高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。第二方面,本专利技术实施例还提供了一种三维场景生成装置,包括:元素数据获取模块,用于获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;不可交互场景元素确定模块,用于根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;第一场景元素确定模块,用于基于场景底平面,对各个所述不可交互场景元素进行网格碰撞检测,确定出与所述地形场景元素可堆叠的不可交互场景元素,作为第一场景元素;组合地形模型生成模块,用于基于高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。第三方面,本专利技术实施例还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任意实施例所提供的三维场景生成方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本专利技术任意实施例所提供的三维场景生成方法。上述专利技术中的实施例具有如下优点或有益效果:通过根据三维场景中待生成的每个非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素,并基于场景底平面,对各个不可交互场景元素进行网格碰撞检测,确定出与地形场景元素可堆叠的不可交互场景元素,作为第一场景元素,基于预设高度投影方式和元素数据,将三维场景中的地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型,从而可以将三维场景中部分的不可交互场景元素作为地形的一部分,与地形场景元素一起生成,获得组合地形模型,进而大大提高了三维场景的生成效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一提供的一种三维场景生成方法的流程图;图2是本专利技术实施例二提供的一种三维场景生成方法的流程图;图3是本专利技术实施例三提供的一种三维场景生成方法的流程图;图4是本专利技术实施例三所涉及的一种网格合并过程的示例;图5是本专利技术实施例三所涉及的一种待合并三角面的相交检测过程的示例;图6是本专利技术实施例三所涉及的一种网格重新构造过程的示例;图7是本专利技术实施例三所涉及的一种冗余三角面剔除过程的示例;图8是本专利技术实施例四提供的一种三维场景生成装置的结构示意图;图9是本专利技术实施例五提供的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种三维场景生成方法的流程图,本实施例可适用于任意需要生成三维场景的情况,尤其是可以用于生成游戏关卡对应的三维场景的情况。该方法可以由三维场景生成装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于电子设备中。如图1所示,该方法具体包括以下步骤:S110、获取三维场景中待生成的每个场景元素对应的元素数据,场景元素包括地形场景元素和非地形场景元素。其中,三维场景可以是指需要构建三维模型的场景,比如三维游戏中的游戏关卡。场景元素可以是指三维场景中的每个待构建的三维物体。例如,场景元素可以但不限于地形、石头、树木、墙体等。场景元素对应的元素数据可以包括场景元素数据库中的预设元素数据和用户基于场景构建需求所输入的自定义元素数据。预设元素数据可以包括:每个场景元素对应的网格信息、材质信息和交互信息等。网格信息可以是指场景元素对应的三维模型的结构信息。材质信息可以是指场景元素显示的颜色、纹理、透明度等用于表示物体表面特性的信息。自定义元素数据可以包括:三维场景中需要构建的各个场景元素以及每个场景元素在三维场景中所处于的位置信息。地形场景元素可以是指三维场景中的大地。非地形场景元素可以是指三维场景中除了地形场景元素之外的其余场景元素。具体地,可以预先配置每个预设场景元素的预设元素数据,并将配置的各个预设元素数据存储至场景元素数据库中。当需要生成三维场景时,用户可以基于业务需求输入待生成三维场景所需的各个场景元素以及每个场景元素在三维场景中所处于的位置信息,并基于用户输入的场景元素,从场景元素数据库中可以获取所输入的每个场景元素所对应的预设元素数据,从而可以获得待生成的每个场景元素对应的元素数据。S120、根据非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素。其中,不可交互场景元素可以是指三维场景中不能与用户进行交互的非地形场景元素。例如,地上的树木、石头等。需要说明的是,地形场景元素本身也是一个不可交互场景元素。具体地,可以通过检测每个非地形场景元素对应的元素数据中是否包含交互信息的方式确定出每个非地形场景元素是否为不可交互场景元素。例如,若非地形场景元素对应的元素数据中包含交互信息,则表明该非地形场景元素是可以基于交互信息进行交互的,此时可以确定该非地形场景元素是可交互本文档来自技高网...

【技术保护点】
1.一种三维场景生成方法,其特征在于,包括:/n获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;/n根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;/n基于场景底平面,对各个所述不可交互场景元素进行网格碰撞检测,确定出与所述地形场景元素可堆叠的不可交互场景元素,作为第一场景元素;/n基于预设高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。/n

【技术特征摘要】
1.一种三维场景生成方法,其特征在于,包括:
获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;
根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;
基于场景底平面,对各个所述不可交互场景元素进行网格碰撞检测,确定出与所述地形场景元素可堆叠的不可交互场景元素,作为第一场景元素;
基于预设高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。


2.根据权利要求1所述的方法,其特征在于,基于预设高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型,包括:
根据所述地形场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载所述地形场景元素对应的网格;
根据每个所述第一场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载每个所述第一场景元素对应的网格;
对加载的各个网格进行高度投影,生成地形高度图,并根据所述地形高度图生成组合地形;
根据所述地形场景元素对应的位置信息和材质信息,以及各个所述第一场景元素对应的位置信息和材质信息,确定所述组合地形对应的材质通道图;
基于所述材质通道图,对所述组合地形进行渲染,生成组合地形模型。


3.根据权利要求1所述的方法,其特征在于,基于场景底平面,对各个所述不可交互场景元素进行网格碰撞检测,确定出与所述地形场景元素可堆叠的不可交互场景元素,作为第一场景元素,包括:
根据预先设置的每个所述不可交互场景元素对应的网格标签,对各个所述不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素;
检测每个所述目标不可交互场景元素对应的目标网格是否与场景底平面存在网格碰撞,并将存在网格碰撞的目标不可交互场景元素添加至当前列表中;
检测当前剩余的各个目标不可交互场景元素中是否存在与当前列表中的至少一个目标不可交互场景元素存在网格碰撞的目标不可交互场景元素;
若是,则将存在网格碰撞的当前剩余的目标不可交互场景元素添加至当前列表中,并基于更新后的当前剩余的目标不可交互场景元素和当前列表,返回执行所述检测当前剩余的各个目标不可交互场景元素中是否存在与当前列表中的至少一个目标不可交互场景元素存在网格碰撞的目标不可交互场景元素的操作;
若否,则将当前列表中的每个目标不可交互场景元素确定为与所述地形场景元素可堆叠的第一场景元素。


4.根据权利要求3所述的方法,其特征在于,检测当前剩余的各个目标不可交互场景元素中是否存在与当前列表中的至少一个目标不可交互场景元素存在网格碰撞的目标不可交互场景元素,包括:
针对当前剩余的每个目标不可交互场景元素而言,若检测到当前剩余的目标不可交互场景元素与当前列表中的至少一个目标不可交互场景元素存在网格交叠,则检测当前剩余的该目标不可交互场景元素的底面是否处于当前列表中存在网格交叠的目标不可交互场景元素的网格内部;
若是,则确定当前剩余的该目标不可交互场景元素存在网格碰撞。


5.根据权利要求3所述的方法,其特征在于,在根据预先设置的每个所述不可交互场景元素对应的网格标签,对各个所述不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素之前,还包括:
针对场景元素数据库中的每个预设场景元素而言,根据该预设场景元素对应的网格信息,确定该预设场景元素对应的各个网格顶点位置坐标信息;
根据各个网格顶点位置坐标信息,检测该预设场景元素对应的每个网格顶点是否满足预设基石条件;
若各个网格顶点均满足预设基石条件,则确定该预设场景元素对应的网格标签为基石网格,并存储该预设场景元素的底面位置信息;
若存在至少一个网格顶点不满足预设基石条件,则确定该预设场景元素对应的网格标签为非基石网格。


6.根据权利要求5所述的方法,其特征在于,根据各个网格顶点位置坐标信息,检测该预设场景元素对应的每个网格顶点是否满足预设基石条件,包括:
将该预设场景元素对应的每个网格顶点逐个作为第一网格顶点;
检测第一网...

【专利技术属性】
技术研发人员:王杰
申请(专利权)人:上海米哈游网络科技股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1