CN112562054B - 一种三维场景生成方法、装置、设备和存储介质 - Google Patents
一种三维场景生成方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112562054B CN112562054B CN202011550427.0A CN202011550427A CN112562054B CN 112562054 B CN112562054 B CN 112562054B CN 202011550427 A CN202011550427 A CN 202011550427A CN 112562054 B CN112562054 B CN 112562054B
- Authority
- CN
- China
- Prior art keywords
- scene
- grid
- interactable
- scene element
- combined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 239000004575 stone Substances 0.000 claims description 43
- 239000000463 material Substances 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 17
- 238000009877 rendering Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 7
- 238000012876 topography Methods 0.000 claims description 7
- 239000011159 matrix material Substances 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000009499 grossing Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 244000025254 Cannabis sativa Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明实施例公开了一种三维场景生成方法、装置、设备和存储介质,该方法包括:获取三维场景中待生成的每个场景元素对应的元素数据,场景元素包括地形场景元素和非地形场景元素;根据非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素;检测每个不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素;基于预设高度投影方式和元素数据,将地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型。通过本发明实施例的技术方案,可以提高三维场景的生成效率。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种三维场景生成方法、装置、设备和存储介质。
背景技术
随着计算机技术的快速发展,三维场景所包含的场景元素越来越丰富。例如,场景元素可以包括可与用户进行交互的场景元素(比如,可移动的箱子等),以及不可与用户进行交互的场景元素(比如,地形、地上的树木、石头等)。
目前,现有的三维场景生成方式是:根据手动输入的地形高度图绘制地形,生成地形模型,再将其余的每个场景元素的元素数据逐个进行加载,在相应位置上生成每个场景元素对应的场景模型,从而完成三维场景的生成。可见,现有的三维场景中的每个场景元素都是单独生成的,大大降低了三维场景生成效率。
发明内容
本发明实施例提供了一种三维场景生成方法、装置、设备和存储介质,以提高三维场景的生成效率。
第一方面,本发明实施例提供了一种三维场景生成方法,包括:
获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;
根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;
检测每个所述不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素;
基于预设高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。
第二方面,本发明实施例还提供了一种三维场景生成装置,包括:
元素数据获取模块,用于获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;
不可交互场景元素确定模块,用于根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;
第一场景元素确定模块,用于检测每个所述不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素;
组合地形模型生成模块,用于基于高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。
第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的三维场景生成方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明任意实施例所提供的三维场景生成方法。
上述发明中的实施例具有如下优点或有益效果:
通过根据三维场景中待生成的每个非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素,检测每个不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素,基于预设高度投影方式和元素数据,将三维场景中的地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型,从而可以将三维场景中不存在空洞点的不可交互场景元素作为地形的一部分,与地形场景元素一起生成,获得组合地形模型,进而大大提高了三维场景的生成效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种三维场景生成方法的流程图;
图2是本发明实施例二提供的一种三维场景生成方法的流程图;
图3是本发明实施例三提供的一种三维场景生成方法的流程图;
图4是本发明实施例三所涉及的一种网格合并过程的示例;
图5是本发明实施例三所涉及的一种待合并三角面的相交检测过程的示例;
图6是本发明实施例三所涉及的一种网格重新构造过程的示例;
图7是本发明实施例三所涉及的一种冗余三角面剔除过程的示例;
图8是本发明实施例四提供的一种三维场景生成装置的结构示意图;
图9是本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种三维场景生成方法的流程图,本实施例可适用于任意需要生成三维场景的情况,尤其是可以用于生成游戏关卡对应的三维场景的情况。该方法可以由三维场景生成装置来执行,该装置可以由软件和/或硬件的方式来实现,集成于电子设备中。如图1所示,该方法具体包括以下步骤:
S110、获取三维场景中待生成的每个场景元素对应的元素数据,场景元素包括地形场景元素和非地形场景元素。
其中,三维场景可以是指需要构建三维模型的场景,比如三维游戏中的游戏关卡。场景元素可以是指三维场景中的每个待构建的三维物体。例如,场景元素可以但不限于地形、石头、树木、墙体等。场景元素对应的元素数据可以包括场景元素数据库中的预设元素数据和用户基于场景构建需求所输入的自定义元素数据。预设元素数据可以包括:每个场景元素对应的网格信息、材质信息和交互信息等。网格信息可以是指场景元素对应的三维模型的结构信息。材质信息可以是指场景元素显示的颜色、纹理、透明度等用于表示物体表面特性的信息。自定义元素数据可以包括:三维场景中需要构建的各个场景元素以及每个场景元素在三维场景中所处于的位置信息。地形场景元素可以是指三维场景中的大地。非地形场景元素可以是指三维场景中除了地形场景元素之外的其余场景元素。
具体地,可以预先配置每个预设场景元素的预设元素数据,并将配置的各个预设元素数据存储至场景元素数据库中。当需要生成三维场景时,用户可以基于业务需求输入待生成三维场景所需的各个场景元素以及每个场景元素在三维场景中所处于的位置信息,并基于用户输入的场景元素,从场景元素数据库中可以获取所输入的每个场景元素所对应的预设元素数据,从而可以获得待生成的每个场景元素对应的元素数据。
S120、根据非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素。
其中,不可交互场景元素可以是指三维场景中不能与用户进行交互的非地形场景元素。例如,地上的树木、石头等。需要说明的是,地形场景元素本身也是一个不可交互场景元素。
具体地,可以通过检测每个非地形场景元素对应的元素数据中是否包含交互信息的方式确定出每个非地形场景元素是否为不可交互场景元素。例如,若非地形场景元素对应的元素数据中包含交互信息,则表明该非地形场景元素是可以基于交互信息进行交互的,此时可以确定该非地形场景元素是可交互场景元素。若非地形场景元素对应的元素数据中不包含交互信息,则表明该非地形场景元素不能与用户进行交互,此时可以确定该非地形场景元素是不可交互场景元素,从而可以对各个非地形场景元素进行分类,获得各个非地形场景元素中的所有不可交互场景元素。
S130、检测每个不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素。
其中,空洞点可以是指三维场景中悬空的位置点,也就是不可交互场景元素的底面下方没有其他物体遮挡的位置点。
具体地,通过检测每个不可交互场景元素的底面下方是否存在空洞点,从而可以确定出每个不可交互场景元素是否与地形场景元素的地面完全接触,以便获得后续可以与地形场景元素进行组合投影的其他不可交互场景元素。若检测到某个不可交互场景元素的底面下方不存在空洞点,则表明该不可交互场景元素的底面与地形场景元素的地面完全接触,此时可以将该不可交互场景元素作为第一场景元素。例如,该不可交互场景元素可以为地上的树木、草坪等。
S140、基于预设高度投影方式和元素数据,将地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型。
其中,预设高度投影方式可以是指对地形场景元素与各个第一场景元素所组成的组合体中的每个位置点进行高度投影的方式。组合地形模型可以是指地形场景元素与各个第一场景元素组成的组合体所对应的三维模型。
具体地,由于各个第一场景元素的底面均与地形场景元素的地面完全接触,从而可以将各个第一场景元素作为地形的一部分,与地形场景元素一起组合投影生成,即作为地形(Terrain)一起生成,快速获得相应的组合地形模型,从而可以扩大Terrain系统的适用范围,并且无需单独生成地形场景元素和每个第一场景元素,节省开销,进而大大提高了三维场景的生成效率。
需要说明的是,对于三维场景中的各个可交互场景元素而言,由于每个可交互场景元素都是独立的,不可组合生成的,从而可以基于现有方式,将每个可交互场景元素对应的元素数据进行加载并生成相应的场景模型,以便可以直接生成三维场景中的各个可交互场景元素所对应的场景模型,进而保证三维场景生成的准确性。
本实施例的技术方案,通过根据三维场景中待生成的每个非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素,检测每个不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素,基于预设高度投影方式和元素数据,将三维场景中的地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型,从而可以将三维场景中不存在空洞点的不可交互场景元素作为地形的一部分,与地形场景元素一起生成,获得组合地形模型,进而大大提高了三维场景的生成效率。
在上述技术方案的基础上,S140可以包括:根据地形场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载地形场景元素对应的网格;根据每个第一场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载每个第一场景元素对应的网格;对加载的各个网格进行高度投影,生成地形高度图,并根据地形高度图生成组合地形;根据地形场景元素对应的位置信息和材质信息,以及各个第一场景元素对应的位置信息和材质信息,确定组合地形对应的材质通道图;基于材质通道图,对组合地形进行渲染,生成组合地形模型。
具体地,可以将地形场景元素对应的网格以及每个第一场景元素对应的网格均加载到三维场景中相应的展示位置上,从而可以初步构建出地形场景元素和每个第一场景元素所对应的三维模型。本实施例可以利用一块布,对加载的各个网格做高度投影,取出各个网格所组成的组合网格的表面,从而获得相应的地形高度图。相比于现有技术中的地形高度图的手动输入,本实施例可以自动生成地形高度图,无需手动输入,进一步提高了三维场景的生成效率。本实施例可以通过利用Terrain系统基于自动生成的地形高度图生成相应的组合地形,并且地形场景元素和所有第一场景元素中的交叠部分对于用户是不可见的,从而只需生成该交叠部分所相应的地形表面,无需生成内部具体的交叠构造,进一步也提高了三维场景的生成效率。根据地形场景元素对应的位置信息和材质信息,以及各个第一场景元素对应的位置信息和材质信息,可以确定出组合地形中的每个位置所对应的材质信息并进行拼接,从而可以获得相应的材质通道图,比如组合地形中的土场景是黑色,草场景是红色等。基于材质通道图可以对组合地形进行渲染,生成具有真实感的组合地形模型,从而实现了地形场景元素与各个第一场景元素的组合投影生成,大大提高了三维场景的生成效率。
实施例二
图2为本发明实施例二提供的一种三维场景生成方法的流程图,本实施例在上述各实施例的基础上,对“检测每个不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素”进行了优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例提供的三维场景生成方法具体包括以下步骤:
S210、获取三维场景中待生成的每个场景元素对应的元素数据,场景元素包括地形场景元素和非地形场景元素。
S220、根据非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素。
S230、根据预先设置的每个不可交互场景元素对应的网格标签,对各个不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素。
其中,网格标签可以是预先为场景元素数据库中的每个预设场景元素打上的,用于表征每个预设场景元素是否可以与地形场景元素完全接触。网格标签可以包括基石网格和非基石网格。基石网格可以是指预设场景元素的网格可以作为地面层基石,与地形场景元素完全接触,不会存在空洞点。非基石网格可以是指预设场景元素的网格不能作为地面层基石,与地形场景元素之间存在空洞点。
具体地,可以从场景元素数据库中获取每个不可交互场景元素对应的网格标签,并将网格标签为基石网格的不可交互场景元素作为目标不可交互场景元素,从所有不可交互场景元素中筛选出底面下方可能不存在空洞点的目标不可交互场景元素。由于目标不可交互场景元素可以基于业务需求在三维场景中的任意位置上进行展示,不一定与地面层接触,从而使得目标不可交互场景元素的底面下方可能存在空洞点,也可能不存在空洞点,进而需要进行进一步判断。
需要说明的是,若不可交互场景元素对应的网格标签为非基石标签,则表明该不可交互场景元素无论展示在三维场景中的哪个位置上,该不可交互场景元素的底面下方一定会存在空洞点,此时可以直接将该不可交互场景元素作为存在空洞点的第二场景元素。
示例性地,在S230之前,还可以包括:针对场景元素数据库中的每个预设场景元素而言,根据该预设场景元素对应的网格信息,确定该预设场景元素对应的各个网格顶点位置坐标信息;根据各个网格顶点位置坐标信息,检测该预设场景元素对应的每个网格顶点是否满足预设基石条件;若各个网格顶点均满足预设基石条件,则确定该预设场景元素对应的网格标签为基石网格,并存储该预设场景元素的底面位置信息;若存在至少一个网格顶点不满足预设基石条件,则确定该预设场景元素对应的网格标签为非基石网格。
其中,预设基石条件可以是预先设置的,预设场景元素的底面与地面层完全接触的条件。具体地,对于每个预设场景元素而言,可以根据该预设场景元素对应的网格信息,以网格中心为原点,确定出该网格中的每个网格顶点位置坐标信息。通过检测该预设场景元素的网格中的每个网格顶点是否满足预设基石条件确定出该预设场景元素的网格是否为基石网格。若检测出该网格中的所有网格顶点均满足预设基石条件,则表明该网格的底面可以与地面层完全接触,此时确定该预设场景元素对应的网格标签为基石网格。若检测出该网格中存在至少一个网格顶点不满足预设基石条件,则表明该网格的底面与地面层之间一定存在至少一个空洞点,此时可以确定出该预设场景元素对应的网格标签为非基石网格,从而对场景元素数据库中的每个预设场景元素打上相应的网格标签,以便后续可以更加快速地确定出底面下方不存在空洞点的不可交互场景元素,进而提高三维场景的生成效率。
需要说明的是,在预设场景元素的网格为基石网格时,该网格必然会存在与Z轴相垂直的底面,从而可以获得该底面各个特征点位置信息,并作为该预设场景元素的底面位置信息进行缓存,以便后续可以直接获取网格为基石网格的预设场景元素的底面位置信息,进一步提高场景生成效率。
示例性地,根据各个网格顶点位置坐标信息,检测该预设场景元素对应的每个网格顶点是否满足预设基石条件,可以包括:将该预设场景元素对应的每个网格顶点逐个作为第一网格顶点;检测第一网格顶点的X轴坐标值和Y轴坐标值是否均小于各个第二网格顶点的X轴坐标值和Y轴坐标值,其中,第二网格顶点是指与第一网格顶点处于同一平面象限内的,且Z轴坐标值小于第一网格顶点的Z轴坐标值的网格顶点;若是,则确定第一网格顶点满足预设基石条件,否则确定第一网格顶点不满足预设基石条件。
具体地,若检测到第一网格顶点的X轴坐标值小于每个第二网格顶点的X轴坐标值,并且第一网格顶点的Y轴坐标值也小于每个第二网格顶点的Y轴坐标值,则可以确定该第一网格顶点满足预设基石条件。若存在至少一个第二网格顶点的X轴坐标值大于第一网格顶点的X轴坐标值,或者至少一个第二网格顶点的Y轴坐标值大于第一网格顶点的Y轴坐标值,则可以直接确定出该第一网格顶点不满足预设基石条件。
S240、根据各个目标不可交互场景元素对应的目标网格信息和目标位置信息,确定三维场景的最大尺寸信息。
具体地,可以基于每个目标不可交互场景元素在三维场景中所处于的位置信息和每个目标不可交互场景元素对应的目标网格信息,获得由所有目标不可交互场景元素所组成的三维场景的最大尺寸信息,即三维场景的最大长度X1、最大宽度Y1和最大高度Z1。
S250、根据最大尺寸信息和预设单位尺寸,对三维场景进行划分,获得高度层数和每层中的各个参考点。
其中,预设单位尺寸可以是预先基于业务需求设置的,最小单位尺寸信息。例如,预设单位尺寸包括长度单位尺寸X0、宽度单位尺寸Y0和高度单位尺寸Z0。
具体地,利用预设单位尺寸对最大尺寸信息的三维场景所围成的立方体进行切分,可以获得Z1/Z0个数的高度层数以及每层中由预设单位尺寸组成的各个小立方体,每个小立方体可以视为一个参考点。
S260、检测每层中的每个参考点是否为空洞点,获得空洞点集合。
具体地,可以从最底层开始,逐层检测每层中的每个参考点是否为空洞点,并将所有属于空洞点的参考点进行组合,获得空洞点集合。若某个参考点为空洞点,则位于该参考点正上方的参考点一定也是空洞点,从而可以将位于该参考点正上方的参考点直接添加至空洞点集合中即可,无需对其进行判断,进而提高检测效率。
示例性地,S260可以包括:针对每层中的每个参考点而言,根据该参考点对应的包围盒信息和每个目标不可交互场景元素对应的目标网格信息,检测该参考点是否位于每个目标不可交互场景元素对应的目标网格内部;若该参考点均不位于各个目标不可交互场景元素对应的目标网格内部,则确定该参考点为空洞点。
其中,包围盒信息可以是将物体完全包容起来的一个封闭空间。例如,包围盒信息可以是指所切分的小立方体。具体地,可以将该参考点对应的包围盒信息与每个目标不可交互场景元素对应的目标网格信息进行比较,从所有目标网格中初步筛选出与包围盒存在交叠部分的目标网格,即该参考点所涉及到的目标网格,再进一步检测该参考点是否在每个所涉及到的目标网格内部,若该参考点不在任意一个所涉及到的目标网格内部,则可以确定该参考点为空洞点,从而可以进一步提高检测效率。
S270、基于空洞点集合和每个目标不可交互场景元素的底面位置信息,将底面位置下方不存在空洞点的目标不可交互场景元素确定为第一场景元素。
具体地,可以从缓存中获取每个目标不可交互场景元素的底面位置信息,并检测每个底面位置下方是否存在空洞点集合中的至少一个空洞点。例如,对于每个目标不可交互场景元素而言,可以将空洞点集合中的每个空洞点作为顶点,沿Z轴正方向做一条射线,检测该射线是否与目标不可交互场景元素的底面相交,若所有空洞点对应的所有射线均与目标不可交互场景元素的底面不相交,则表明所以空洞点位于目标不可交互场景元素的底面上方,此时可以确定该目标不可交互场景元素为第一场景元素。若存在至少一个空洞点对应的射线与目标不可交互场景元素的底面相交,则表明存在至少一个空洞点位于目标不可交互场景元素的底面下方,此时可以确定该目标不可交互场景元素为第二场景元素。本实施例中检测每个不可交互场景元素的底面下方是否存在空洞点的方式仅涉及点与面的交点计算,从而对形状分布无规则、交叠程度复杂的场景元素可以更加快速准确地进行检测,进而更加快速准确地获得可以与地形场景元素组合投影的第一场景元素,进一步提高了第一场景元素的生成效率和准确率。
S280、基于预设高度投影方式和元素数据,将地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型。
本实施例的技术方案,通过根据预先设置的每个不可交互场景元素对应的网格标签,对各个不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素,并根据各个目标不可交互场景元素对应的目标网格信息和目标位置信息,确定三维场景的最大尺寸信息;根据最大尺寸信息和预设单位尺寸,对三维场景进行划分,获得高度层数和每层中的各个参考点;检测每层中的每个参考点是否为空洞点,获得空洞点集合;基于空洞点集合和每个目标不可交互场景元素的底面位置信息,将底面位置下方不存在空洞点的目标不可交互场景元素确定为第一场景元素,从而可以更加快速准确地获得可以与地形场景元素组合投影的第一场景元素,进一步提高了第一场景元素的生成效率和准确率。
实施例三
图3为本发明实施例三提供的一种三维场景生成方法的流程图,本实施例在上述各实施例的基础上,对存在空洞点的各个不可交互场景元素所对应的三维组合模型的生成过程进行了详细描述。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例提供的三维场景生成方法具体包括以下步骤:
S310、获取三维场景中待生成的每个场景元素对应的元素数据,场景元素包括地形场景元素和非地形场景元素。
S320、根据非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素。
S330、检测每个不可交互场景元素的底面下方是否存在空洞点,并将存在空洞点的不可交互场景元素作为第二场景元素。
具体地,本实施例中检测每个不可交互场景元素的底面下方是否存在空洞点的检测过程可以参见上述实施例的详细描述。若检测到某个不可交互场景元素的底面下方存在至少一个空洞点,则表明该不可交互场景元素的底面并不会与地形场景元素的地面完全接触,无法将该不可交互场景元素与地形场景元素进行组合投影,此时可以将该不可交互场景元素作为第二场景元素。例如,该不可交互场景元素可以为地上的桥梁等。
S340、根据每个第二场景元素对应的位置信息和网格信息,在相应位置处加载每个第二场景元素对应的网格。
具体地,可以在每个第二场景元素对应的位置信息处加载相应的网格信息,从而获得各个第二场景元素对应的各个网格。
S350、基于预设网格合并方式,对各个第二场景元素对应的网格进行合并,获得目标网格。
其中,预设网格合并方式可以是预先设置的,将各个网格进行合并为一个网格的方式。例如,预设网格合并方式可以是但不限于区域腐蚀方式、边界缝合方式或者面片合并方式。其中,区域腐蚀方式容易切割出大量的碎小三角面。边界缝合方式在删除冗余三角面时容易产生过长的缝合线,导致拓扑结构改变。面片合并方式会容易改变网格特征。本实施例可以结合这三种方式设置一种新的预设网格合并方式,以克服现有合并方式的缺陷。例如,本实施例中的预设网格合并方式可以是以三角面切割为基础,将原三角面重新剖分为核心,根据剖分结果获得点与点关系、线与线关系,据此建立合并后的三角面,从而可以保留线与线的关系,更大程度地保留合并后的网格特征,并且不会产生过多的新点。
具体地,可以基于预设网格合并方式,对所有的第二场景元素对应的网格进行合并,获得合并后的目标网格。通过将各个第二场景元素对应的网格进行合并,可以减少生成第二场景元素的网格数量,从而降低关卡运行时的性能开销,避免出现关卡实际运行时的卡顿现象。
S360、对各个第二场景元素对应的UV坐标信息进行合并,确定目标UV坐标信息。
其中,UV坐标信息可以包括U和V两个坐标轴,用于表征第二场景元素对应的纹理贴图坐标。U代表横向坐标上的分布,V代表纵向坐标上的分布。
具体地,可以对所有第二场景元素对应的UV坐标信息进行合并,获得合并后的目标UV坐标信息,以便后续进行目标网格的统一渲染操作。
S370、根据各个第二场景元素对应的材质信息,对各个第二场景元素对应的贴图进行拼接,获得目标贴图。
具体地,将各个第二场景元素对应的贴图进行拼接为一个大的目标贴图,以便后续进行目标网格的统一渲染操作。
需要说明的是,此处不限定步骤S360和S370执行时的执行顺序,比如步骤S360和S370可以在步骤S350之后顺序执行,也可以在步骤S350之前执行。
S380、根据目标UV坐标信息和目标贴图,对目标网格进行渲染,生成各个第二场景元素对应的三维组合模型。
具体地,可以基于目标UV坐标信息和目标贴图,对目标网格中的每个位置进行渲染,从而获得各个第二场景元素对应的一个三维组合模型,完成了三维场景中的所有第二场景元素的生成操作,并且减少了网格数量,使得关卡实际运行时更加流畅,提升了用户体验。
本实施例的技术方案,通过基于预设网格合并方式,对存在空洞点的各个第二场景元素对应的网格进行合并,获得目标网格,并对各个第二场景元素对应的UV坐标信息进行合并,确定目标UV坐标信息,以及根据各个第二场景元素对应的材质信息,对各个第二场景元素对应的贴图进行拼接,获得目标贴图,根据目标UV坐标信息和目标贴图,对目标网格进行渲染,生成各个第二场景元素对应的三维组合模型,从而可以减少生成第二场景元素的网格数量,降低了关卡运行时的性能开销,使得关卡实际运行时更加流畅,提升了用户体验。
在上述技术方案的基础上,图4给出了一种网格合并过程的示例。如图4所示,步骤S350可以通过如下步骤S410-S490描述的预设网格合并方式,对各个第二场景元素对应的网格进行合并,获得目标网格:
S410、根据每个第二场景元素对应的中心点位置信息,将各个第二场景元素进行排序,获得排序后的第二场景元素序列。
其中,中心点位置信息可以是指在世界坐标系下,第二场景元素对应的网格中心点的位置坐标信息。第二场景元素序列可以用于表征各个第二场景元素对应的网格进行一一合并的顺序。
具体地,可以根据每个第二场景元素对应的中心点位置信息和世界坐标系的原点,确定每个第二场景元素对应的中心点与原点之间的距离,并将各个距离按照从小到大的顺序进行升序排列,获得距离原点从近到远排列的第二场景元素序列,以便按照该序列进行网格的一一合并。
S420、建立一个空网格,并将该空网格更新为第二场景元素序列中的第一个第二场景元素所对应的网格,作为当前第一网格,以及提取出第二场景元素序列中的第二个第二场景元素对应的网格作为当前第二网格。
其中,空网格可以是建立的一个新的网格体,以便存储合并后的网格信息。当前第一网格和当前第二网格可以是指当前待合并的两个网格。
具体地,将建立的空网格更新为第二场景元素序列中的第一个第二场景元素所对应的网格,并将更新后的空网格(即第一个第二场景元素所对应的网格)作为当前第一网格。提取出第二场景元素序列中的第二个第二场景元素对应的网格,并将该网格作为当前第二网格,以便首先对第二场景元素序列中的前两个网格进行合并。
S430、通过包围盒提取当前第一网格与当前第二网格之间的待合并区域。
其中,包围盒可以是将网格完全包容起来的一个封闭空间。例如,可以将复杂的网格封装在简单的包围盒中,从而可以更加便捷地表征网格位置信息。待合并区域可以是指当前第一网格与当前第二网格之间的网格交叠区域。
具体地,可以基于当前第一网格对应的第一包围盒和当前第二网格对应的第二包围盒,检测当前第一网格与当前第二网格之间是否存在待合并区域,若是,则表明当前第一网格与当前第二网格需要进行网格合并,此时基于提取出的待合并区域进行后续合并流程。若否,则表明当前第一网格与当前第二网格不需要进行网格合并,此时可以将当前第二网格作为当前第一网格,以及将基于第二场景元素序列,将下一个第二场景元素对应的网格作为当前第二网格返回执行S430的操作,也就是对第二场景元素序列中的第二个网格和第三个网格进行网格合并。
S440、将待合并区域的三角面均添加至当前第一网格对应的第一待合并三角面序列和当前第二网格对应的第二待合并三角面序列中。
其中,三角面可以是指由三个网格顶点所组成的面。具体地,可以将当前第一网格的待合并区域中的所有待合并的三角面添加至当前第一网格对应的第一待合并三角面序列中,以及将当前第二网格的待合并区域中的所有待合并的三角面添加至当前第二网格对应的第二待合并三角面序列中。
S450、对第一待合并三角面序列中的每个待合并三角面与第二待合并三角面序列中的每个待合并三角面进行相交检测,获得两个待合并三角面序列中的每个待合并三角面对应的相交结果,并根据每个待合并三角面对应的相交结果,在每个待合并三角面中插入待合并顶点。
具体地,可以循环地从第一待合并三角面序列和第二待合并三角面序列中各取出一个待合并三角面,并对每次取出的两个待合并三角面进行相交检测,以筛选出需要合并的三角面,并建立存在相交情况的相交结果与相应的待合并三角面的对应关系,从而获得每个待合并三角面对应的相交结果,并根据相交结果分别处理每个待合并三角面,获得插入的待合并顶点。
示例性地,图5给出了一种待合并三角面的相交检测过程的示例。如图5所示,步骤S450的具体实现过程为:循环地从第一待合并三角面序列和第二待合并三角面序列中各取出一个待合并三角面,并获取所取出的两个三角面所指向的面,并检测所取出的两个面是否共面,若是,则只需进行三角面的二维相交计算,若否,则进行三维相交计算,并检测获得的相交结果是否有交点,若是,则将交点作为待合并三角面中的待合并顶点,若否,则表明两个不相交,此时可以重新提取两个待合并三角面进行相交检测。继续检测相交结果是否为线段或者多边形,若是,则将相交结果拆分为线段结果,并保存线段端点的序号;若否,则可以重新提取两个待合并三角面进行相交检测。
S460、基于第一预设三角剖分方式和待合并顶点,对待合并三角面进行剖分,获得待合并三角面对应的目标三角面序列。
其中,第一预设三角面剖分方式可以是但不限于Delaunay三角剖分Bowyer-Waston方式。
具体地,可以基于第一预设三角剖分方式,通过利用待合并顶点对待合并三角面进行剖分,获得由剖分后的小的三角面所组成的目标三角面序列。
S470、根据线段和三角面相交关系,在目标三角面序列中的每个目标三角面上插入待合并线段序列,并根据目标三角面序列和待合并线段序列,对当前第一网格进行重新构造,获得当前第三网格。
具体地,可以根据线段和三角面相交关系确定出如何在目标三角面序列中的每个目标三角面上插入待合并线段序列。例如,可以用枚举方式分别判断如何选择线段剖分三角面,并将新剖分的面添加至目标三角面序列中,新产生的交点待合并顶点序列中,以同时保留相交结果的点关系和线关系。基于目标三角面序列和待合并顶点序列,可以重新构造当前第一网格,获得构造后的当前第三网格。
示例性地,图6给出了一种网格重新构造过程的示例。如图6所示,步骤S460和S470的具体实现过程为:利用Bowyer-Waston方式对待合并三角进行三角面剖分,并保存剖分后的目标三角面序列。检测线段序列中的每个线段是否存在对应的三角面,若是,则进行三角面的二维相交计算。若不相交且包含线段,则获得三角面内相交线段信息。若相交且为单点,则计算三角面内线段的端点,并获得三角面内相交线段信息。将三角面的顶点分别与线段端点组成六条新的线段,并进行六组线段的相交计算,划分为五个三角面并删除原三角面,从而获得重构合并后的网格数据,即当前第三网格。本实施例将待合并三角面根据相交关系,先以交点剖分三角面,确保电鱼点关系,再与交线作相交判断,相关的三角面中再插入新点,从而完成边关系确定的三角面。
S480、剔除当前第三网格中的不可见三角面和无用网格顶点,并对当前第三网格中的有用网格顶点进行平滑。
具体地,可以利用顶点法线深度检测方式,剔除当前第三网格中的不可见三角面和无用网格顶点。可以利用Laplace光顺方式,对当前第三网格中的网格顶点进行平滑。示例性地,图7给出了一种冗余三角面剔除过程的示例。如图7所示,利用顶点法线深度检测方式剔除当前第三网格中的不可见三角面和无用网格顶点,从而大大简化了网格结构,进一步降低了关卡运行时的性能开销。
S490、基于第二预设三角剖分方式,对当前第三网格进行空洞贴补,并将贴补后的当前第三网格作为当前第一网格,以及基于第二场景元素序列,将下一个第二场景元素对应的网格作为当前第二网格返回执行S430的操作。
其中,第二预设三角面剖分方式可以是但不限于采用最短边优先-不添加辅助点的三角剖分法。具体地,可以通过利用第二预设三角剖分方式,对当前第三网格进行空洞贴补,获得优化后的当前第三网格,从而将当前第一网格与当前第二网格进行网格合并为当前第三网格。通过将当前第三网格作为当前第一网格,并将第二场景元素序列中的下一个第二场景元素对应的网格作为当前第二网格,以对当前第一网格和当前第二网格进行更新,并通过重新执行S430-S490的操作,依次对下一个第二场景元素对应的网格进行网格合并,直到述第二场景元素序列中的各个第二场景元素均进行网格合并为止,从而获得最终的目标网格。
以下是本发明实施例提供的三维场景生成装置的实施例,该装置与上述各实施例的三维场景生成方法属于同一个发明构思,在三维场景生成装置的实施例中未详尽描述的细节内容,可以参考上述三维场景生成方法的实施例。
实施例四
图8为本发明实施例四提供的一种三维场景生成装置的结构示意图,本实施例可适用于任意需要生成三维场景的情况,该装置具体包括:元素数据获取模块810、不可交互场景元素确定模块820、第一场景元素确定模块830和组合地形模型生成模块840。
其中,元素数据获取模块810,用于获取三维场景中待生成的每个场景元素对应的元素数据,场景元素包括地形场景元素和非地形场景元素;不可交互场景元素确定模块820,用于根据非地形场景元素对应的元素数据,确定各个非地形场景元素中的不可交互场景元素;第一场景元素确定模块830,用于检测每个不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素;组合地形模型生成模块840,用于基于高度投影方式和元素数据,将地形场景元素与各个第一场景元素进行组合投影,生成组合地形模型。
可选地,组合地形模型生成模块840,具体用于:
根据地形场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载地形场景元素对应的网格;根据每个第一场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载每个第一场景元素对应的网格;对加载的各个网格进行高度投影,生成地形高度图,并根据地形高度图生成组合地形;根据地形场景元素对应的位置信息和材质信息,以及各个第一场景元素对应的位置信息和材质信息,确定组合地形对应的材质通道图;基于材质通道图,对组合地形进行渲染,生成组合地形模型。
可选地,第一场景元素确定模块830,包括:
筛选单元,用于根据预先设置的每个不可交互场景元素对应的网格标签,对各个不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素;
最大尺寸信息确定单元,用于根据各个目标不可交互场景元素对应的目标网格信息和目标位置信息,确定三维场景的最大尺寸信息;
三维场景划分单元,用于根据最大尺寸信息和预设单位尺寸,对三维场景进行划分,获得高度层数和每层中的各个参考点;
检测单元,用于检测每层中的每个参考点是否为空洞点,获得空洞点集合;
第一场景元素确定单元,用于基于空洞点集合和每个目标不可交互场景元素的底面位置信息,将底面位置下方不存在空洞点的目标不可交互场景元素确定为第一场景元素。
可选地,检测单元,具体用于:针对每层中的每个参考点而言,根据该参考点对应的包围盒信息和每个目标不可交互场景元素对应的目标网格信息,检测该参考点是否位于每个目标不可交互场景元素对应的目标网格内部;若该参考点均不位于各个目标不可交互场景元素对应的目标网格内部,则确定该参考点为空洞点。
可选地,该装置还包括:
坐标信息确定模块,用于在根据预先设置的每个不可交互场景元素对应的网格标签,对各个不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素之前,针对场景元素数据库中的每个预设场景元素而言,根据该预设场景元素对应的网格信息,确定该预设场景元素对应的各个网格顶点位置坐标信息;
网格顶点检测模块,用于根据各个网格顶点位置坐标信息,检测该预设场景元素对应的每个网格顶点是否满足预设基石条件;
第一网格标签确定模块,用于若各个网格顶点均满足预设基石条件,则确定该预设场景元素对应的网格标签为基石网格,并存储该预设场景元素的底面位置信息;
第二网格标签确定模块,用于若存在至少一个网格顶点不满足预设基石条件,则确定该预设场景元素对应的网格标签为非基石网格。
可选地,网格顶点检测模块,具体用于:将该预设场景元素对应的每个网格顶点逐个作为第一网格顶点;检测第一网格顶点的X轴坐标值和Y轴坐标值是否均小于各个第二网格顶点的X轴坐标值和Y轴坐标值,其中,第二网格顶点是指与第一网格顶点处于同一平面象限内的,且Z轴坐标值小于第一网格顶点的Z轴坐标值的网格顶点;若是,则确定第一网格顶点满足预设基石条件,否则确定第一网格顶点不满足预设基石条件。
可选地,该装置还包括:
第二场景元素确定模块,用于将存在空洞点的不可交互场景元素作为第二场景元素;
网格加载模块,用于根据每个第二场景元素对应的位置信息和网格信息,在相应位置处加载每个第二场景元素对应的网格;
网格合并模块,用于基于预设网格合并方式,对各个第二场景元素对应的网格进行合并,获得目标网格;
目标UV坐标信息确定模块,用于对各个第二场景元素对应的UV坐标信息进行合并,确定目标UV坐标信息;
贴图拼接模块,用于根据各个第二场景元素对应的材质信息,对各个第二场景元素对应的贴图进行拼接,获得目标贴图;
目标网格渲染模块,用于根据目标UV坐标信息和目标贴图,对目标网格进行渲染,生成各个第二场景元素对应的三维组合模型。
可选地,网格合并模块,具体用于:
根据每个第二场景元素对应的中心点位置信息,将各个第二场景元素进行排序,获得排序后的第二场景元素序列;建立一个空网格,并将该空网格更新为第二场景元素序列中的第一个第二场景元素所对应的网格,作为当前第一网格,以及提取出第二场景元素序列中的第二个第二场景元素对应的网格作为当前第二网格;通过包围盒提取当前第一网格与当前第二网格之间的待合并区域;将待合并区域的三角面均添加至当前第一网格对应的第一待合并三角面序列和当前第二网格对应的第二待合并三角面序列中;对第一待合并三角面序列中的每个待合并三角面与第二待合并三角面序列中的每个待合并三角面进行相交检测,获得两个待合并三角面序列中的每个待合并三角面对应的相交结果,并根据每个待合并三角面对应的相交结果,在每个待合并三角面中插入待合并顶点;基于第一预设三角剖分方式和待合并顶点,对待合并三角面进行剖分,获得待合并三角面对应的目标三角面序列;根据线段和三角面相交关系,在目标三角面序列中的每个目标三角面上插入待合并线段序列,并根据目标三角面序列和待合并线段序列,对当前第一网格进行重新构造,获得当前第三网格;剔除当前第三网格中的不可见三角面和无用网格顶点,并对当前第三网格中的有用网格顶点进行平滑;基于第二预设三角剖分方式,对当前第三网格进行空洞贴补,并将贴补后的当前第三网格作为当前第一网格,以及基于第二场景元素序列,将下一个第二场景元素对应的网格作为当前第二网格返回执行通过包围盒提取当前第一网格与当前第二网格之间的待合并区域的操作,直到第二场景元素序列中的各个第二场景元素均进行网格合并为止。
本发明实施例所提供的三维场景生成装置可执行本发明任意实施例所提供的三维场景生成方法,具备执行三维场景生成方法相应的功能模块和有益效果。
值得注意的是,上述三维场景生成装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图9是本发明实施例五提供的一种电子设备的结构示意图。参见图9,该电子设备包括:
一个或多个处理器910;
存储器920,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器910执行,使得一个或多个处理器910实现如上述实施例中任意实施例所提供的三维场景生成方法。
图9中以一个处理器910为例;电子设备中的处理器910和存储器920可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器920作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的三维场景生成方法对应的程序指令/模块(例如,三维场景生成装置中的元素数据获取模块810、不可交互场景元素确定模块820、第一场景元素确定模块830和组合地形模型生成模块840)。处理器910通过运行存储在存储器920中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的三维场景生成方法。
存储器920主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器920可进一步包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本实施例提出的电子设备与上述实施例提出的三维场景生成方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行三维场景生成方法相同的有益效果。
实施例六
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的三维场景生成方法。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所提供的三维场景生成方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种三维场景生成方法,其特征在于,包括:
获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;
根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;
检测每个所述不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素;其中,所述空洞点为所述不可交互场景元素的底面下方没有其他物体遮挡的位置点;
基于预设高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。
2.根据权利要求1所述的方法,其特征在于,基于预设高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型,包括:
根据所述地形场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载所述地形场景元素对应的网格;
根据每个所述第一场景元素对应的位置信息和网格信息,在三维场景中相应位置上加载每个所述第一场景元素对应的网格;
对加载的各个网格进行高度投影,生成地形高度图,并根据所述地形高度图生成组合地形;
根据所述地形场景元素对应的位置信息和材质信息,以及各个所述第一场景元素对应的位置信息和材质信息,确定所述组合地形对应的材质通道图;
基于所述材质通道图,对所述组合地形进行渲染,生成组合地形模型。
3.根据权利要求1所述的方法,其特征在于,检测每个所述不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素,包括:
根据预先设置的每个所述不可交互场景元素对应的网格标签,对各个所述不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素;
根据各个所述目标不可交互场景元素对应的目标网格信息和目标位置信息,确定所述三维场景的最大尺寸信息;
根据所述最大尺寸信息和预设单位尺寸,对所述三维场景进行划分,获得高度层数和每层中的各个参考点;
检测每层中的每个参考点是否为空洞点,获得空洞点集合;
基于所述空洞点集合和每个所述目标不可交互场景元素的底面位置信息,将底面位置下方不存在空洞点的目标不可交互场景元素确定为第一场景元素。
4.根据权利要求3所述的方法,其特征在于,检测每层中的每个参考点是否为空洞点,包括:
针对每层中的每个参考点而言,根据该参考点对应的包围盒信息和每个所述目标不可交互场景元素对应的目标网格信息,检测该参考点是否位于每个所述目标不可交互场景元素对应的目标网格内部;
若该参考点均不位于各个所述目标不可交互场景元素对应的目标网格内部,则确定该参考点为空洞点。
5.根据权利要求3所述的方法,其特征在于,在根据预先设置的每个所述不可交互场景元素对应的网格标签,对各个所述不可交互场景元素进行筛选,获得网格标签为基石网格的目标不可交互场景元素之前,还包括:
针对场景元素数据库中的每个预设场景元素而言,根据该预设场景元素对应的网格信息,确定该预设场景元素对应的各个网格顶点位置坐标信息;
根据各个网格顶点位置坐标信息,检测该预设场景元素对应的每个网格顶点是否满足预设基石条件;
若各个网格顶点均满足预设基石条件,则确定该预设场景元素对应的网格标签为基石网格,并存储该预设场景元素的底面位置信息;
若存在至少一个网格顶点不满足预设基石条件,则确定该预设场景元素对应的网格标签为非基石网格。
6.根据权利要求5所述的方法,其特征在于,根据各个网格顶点位置坐标信息,检测该预设场景元素对应的每个网格顶点是否满足预设基石条件,包括:
将该预设场景元素对应的每个网格顶点逐个作为第一网格顶点;
检测第一网格顶点的X轴坐标值和Y轴坐标值是否均小于各个第二网格顶点的X轴坐标值和Y轴坐标值,其中,所述第二网格顶点是指与所述第一网格顶点处于同一平面象限内的,且Z轴坐标值小于所述第一网格顶点的Z轴坐标值的网格顶点;
若是,则确定所述第一网格顶点满足预设基石条件,否则确定所述第一网格顶点不满足预设基石条件。
7.根据权利要求1-6任一所述的方法,其特征在于,所述方法还包括:
将存在空洞点的不可交互场景元素作为第二场景元素;
根据每个所述第二场景元素对应的位置信息和网格信息,在相应位置处加载每个所述第二场景元素对应的网格;
基于预设网格合并方式,对各个所述第二场景元素对应的网格进行合并,获得目标网格;
对各个所述第二场景元素对应的UV坐标信息进行合并,确定目标UV坐标信息;
根据各个所述第二场景元素对应的材质信息,对各个所述第二场景元素对应的贴图进行拼接,获得目标贴图;
根据所述目标UV坐标信息和所述目标贴图,对所述目标网格进行渲染,生成各个所述第二场景元素对应的三维组合模型。
8.根据权利要求7所述的方法,其特征在于,基于预设网格合并方式,对各个所述第二场景元素对应的网格进行合并,获得目标网格,包括:
根据每个所述第二场景元素对应的中心点位置信息,将各个所述第二场景元素进行排序,获得排序后的第二场景元素序列;
建立一个空网格,并将该空网格更新为所述第二场景元素序列中的第一个第二场景元素所对应的网格,作为当前第一网格,以及提取出第二场景元素序列中的第二个第二场景元素对应的网格作为当前第二网格;
通过包围盒提取当前第一网格与当前第二网格之间的待合并区域;
将所述待合并区域的三角面均添加至当前第一网格对应的第一待合并三角面序列和当前第二网格对应的第二待合并三角面序列中;
对所述第一待合并三角面序列中的每个待合并三角面与所述第二待合并三角面序列中的每个待合并三角面进行相交检测,获得两个待合并三角面序列中的每个待合并三角面对应的相交结果,并根据每个待合并三角面对应的相交结果,在每个待合并三角面中插入待合并顶点;
基于第一预设三角剖分方式和所述待合并顶点,对所述待合并三角面进行剖分,获得所述待合并三角面对应的目标三角面序列;
根据线段和三角面相交关系,在所述目标三角面序列中的每个目标三角面上插入待合并线段序列,并根据所述目标三角面序列和所述待合并线段序列,对当前第一网格进行重新构造,获得当前第三网格;
剔除当前第三网格中的不可见三角面和无用网格顶点,并对当前第三网格中的有用网格顶点进行平滑;
基于第二预设三角剖分方式,对当前第三网格进行空洞贴补,并将贴补后的当前第三网格作为当前第一网格,以及基于所述第二场景元素序列,将下一个第二场景元素对应的网格作为当前第二网格返回执行通过包围盒提取当前第一网格与当前第二网格之间的待合并区域的操作,直到所述第二场景元素序列中的各个第二场景元素均进行网格合并为止。
9.一种三维场景生成装置,其特征在于,包括:
元素数据获取模块,用于获取三维场景中待生成的每个场景元素对应的元素数据,所述场景元素包括地形场景元素和非地形场景元素;
不可交互场景元素确定模块,用于根据所述非地形场景元素对应的元素数据,确定各个所述非地形场景元素中的不可交互场景元素;
第一场景元素确定模块,用于检测每个所述不可交互场景元素的底面下方是否存在空洞点,并将不存在空洞点的不可交互场景元素作为第一场景元素;其中,所述空洞点为所述不可交互场景元素的底面下方没有其他物体遮挡的位置点;
组合地形模型生成模块,用于基于高度投影方式和所述元素数据,将所述地形场景元素与各个所述第一场景元素进行组合投影,生成组合地形模型。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的三维场景生成方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的三维场景生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011550427.0A CN112562054B (zh) | 2020-12-24 | 2020-12-24 | 一种三维场景生成方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011550427.0A CN112562054B (zh) | 2020-12-24 | 2020-12-24 | 一种三维场景生成方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112562054A CN112562054A (zh) | 2021-03-26 |
CN112562054B true CN112562054B (zh) | 2024-07-30 |
Family
ID=75033393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011550427.0A Active CN112562054B (zh) | 2020-12-24 | 2020-12-24 | 一种三维场景生成方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112562054B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290222A (zh) * | 2008-06-13 | 2008-10-22 | 北京天下图数据技术有限公司 | 通过真正射影像快速构建三维建筑物场景的方法 |
CN103440682A (zh) * | 2013-08-13 | 2013-12-11 | 北京农业信息技术研究中心 | 一种快速三维成图方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140267273A1 (en) * | 2013-03-15 | 2014-09-18 | Janne Kontkanen | System and method for overlaying two-dimensional map elements over terrain geometry |
CN104835202A (zh) * | 2015-05-20 | 2015-08-12 | 中国人民解放军装甲兵工程学院 | 一种三维虚拟场景快速构建方法 |
CN108499103B (zh) * | 2018-04-16 | 2021-12-21 | 网易(杭州)网络有限公司 | 场景元素的显示方法及装置 |
CN110163970B (zh) * | 2019-06-26 | 2023-06-20 | 深圳飞马机器人科技有限公司 | 一种数字地形模型的生成方法、装置、设备及存储介质 |
-
2020
- 2020-12-24 CN CN202011550427.0A patent/CN112562054B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290222A (zh) * | 2008-06-13 | 2008-10-22 | 北京天下图数据技术有限公司 | 通过真正射影像快速构建三维建筑物场景的方法 |
CN103440682A (zh) * | 2013-08-13 | 2013-12-11 | 北京农业信息技术研究中心 | 一种快速三维成图方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112562054A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109685914B (zh) | 基于三角网格模型的剖切轮廓自动补面方法 | |
CN106683167B (zh) | 复杂建筑物高精度模型自动建模方法 | |
CN109242862B (zh) | 一种实时的数字表面模型生成方法 | |
CN102804231A (zh) | 三维场景的分段平面重建 | |
CN108776993A (zh) | 带有孔洞的三维点云的建模方法及地下电缆工井建模方法 | |
CN110533778B (zh) | 大规模图像点云并行分布式网格化重建方法、系统、装置 | |
CN114627219A (zh) | 三维场景数据的渲染方法及装置、存储介质、电子装置 | |
CN112561788B (zh) | 一种bim模型的二维展开方法及纹理贴图方法、装置 | |
CN106251331A (zh) | 一种倾斜测量场景中地物的提取方法 | |
CN102496179A (zh) | 一种三维场景的裁剪方法 | |
CN112633657A (zh) | 一种施工质量管理方法、装置、设备及存储介质 | |
CN105389850A (zh) | 一种大规模三维场景的新型可见性生成方法 | |
CN115797592B (zh) | 一种基于倾斜摄影三维模型自动生成建筑物体块的方法和装置 | |
CN112516596B (zh) | 一种三维场景生成方法、装置、设备和存储介质 | |
CN118015197B (zh) | 一种实景三维逻辑单体化方法、装置及电子设备 | |
CN114119939A (zh) | 数据轻量化处理方法、装置、存储介质及电子设备 | |
CN111814715A (zh) | 一种地物分类方法及装置 | |
CN115193034A (zh) | 虚拟场景中水流区域的渲染方法、装置以及计算机设备 | |
CN112562054B (zh) | 一种三维场景生成方法、装置、设备和存储介质 | |
CN111476885B (zh) | 考古多源数据融合方法、装置、设备和存储介质 | |
Zhao et al. | Completing point clouds using structural constraints for large-scale points absence in 3D building reconstruction | |
CN112200906B (zh) | 一种面向倾斜三维模型的实体提取方法及其系统 | |
CN117333648A (zh) | 一种gis三维地形与数字信息模型融合的方法及系统 | |
CN112516597B (zh) | 一种三维场景生成方法、装置、设备和存储介质 | |
CN109949421B (zh) | 三角网切割方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |