一种城市信息模型的高性能渲染方法、装置及存储介质与流程

文档序号:19723947发布日期:2020-01-18 03:11阅读:426来源:国知局
一种城市信息模型的高性能渲染方法、装置及存储介质与流程

本发明涉及地理信息技术领域,尤其涉及一种城市信息模型的高性能渲染方法、装置及存储介质。



背景技术:

bim是一种建筑信息模型,它基于项目建设中的成本、进度、安全质量、材料和设备信息,凭借数据模拟仿真施工项目所具有的工程实体的数据,进行施工建筑模型的模拟、仿真和应用。bim技术在国内的理论和实践不断进步,其在项目实施的应用越来越频繁。然而,随着智慧城市建设的不断推进,对于城市大规模的三维空间信息的表达、分析和管理的需求变得越来越迫切,但基于bim模型的单体建筑工程数据,大多只适用于小范围的建筑工程,其与周边环境信息衔接度低,无法实现大范围下的数据存储、显示和分析。而近期新兴的城市信息模型(cim),结合了bim与3dgis技术,是以城市信息数据为基础,建立起的三维城市空间模型和城市信息的有机综合体。能够对城市地上地下、室内室外各种实体目标及其时空状态的数字化描述和表达。

目前一般是在前端对城市信息模型中的bim数据、地形数据、点云数据和倾斜摄影数据等数据进行渲染。但发明人在实施本发明的过程中发现,由于单一的前端渲染需要从后端调取大量的数据进行处理,而城市信息模型承载了城市规模级别的多种数据,其数据海量,已达到gb、tb级别,当当前渲染窗口的显示比例尺处于大中比例尺时,场景中需要显示更多的细节,但因前端性能的限制,前端的渲染压力大,容易出现渲染瓶颈,造成卡顿或延迟等问题,渲染时间较长,渲染效率较低,无法为用户提供快速的、流畅的使用体验感。



技术实现要素:

本发明实施例提供一种城市信息模型的高性能渲染方法、装置及存储介质,能根据当前渲染窗口中的显示比例尺大小,将可见区范围内的不同数据的渲染过程分别部署在前端和后端进行,从而有效减少渲染时间,提高渲染效率,为用户提供快速的、流畅的使用体验感。

为实现上述目的,本发明实施例提供了一种城市信息模型的高性能渲染方法,包括:

根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据,并将所述瓦片数据存储于存储系统中;其中,所述地理信息数据包括地形数据、点云数据和倾斜摄影数据;

获取当前渲染窗口中的可见区范围和显示比例尺;

获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据;

判断所述显示比例尺、第一阈值和第二阈值之间的大小关系;

当判断到所述显示比例尺小于所述第一阈值时,在前端对所述可见区范围内的bim数据、点云数据、倾斜摄影数据和瓦片数据进行渲染并显示;

当判断到所述显示比例尺在所述第一阈值至所述第二阈值之内时,在所述前端对所述可见区范围内的bim数据和瓦片数据进行渲染并显示,并在后端对所述可见区范围内的点云数据和倾斜摄影数据进行渲染,以得到第一图像数据并传输到所述前端进行显示;

当判断到所述显示比例尺大于所述第二阈值时,在所述前端对所述可见区范围内的bim数据、点云数据和瓦片数据进行渲染并显示,并在所述后端对所述可见区范围内的倾斜摄影数据进行渲染,以得到第二图像数据并传输到所述前端进行显示。

作为上述方案的改进,所述根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据,具体为:

基于mapreduce技术,根据所述城市信息模型中的地理信息数据,并行构建瓦片金字塔,以得到瓦片数据。

作为上述方案的改进,所述将所述瓦片数据存储于存储系统中,具体为:

将所述瓦片数据打包,生成瓦片包文件;其中,每个瓦片包文件存储该层级的瓦片数据;

将所述瓦片包文件存储于hdfs分布式系统中。

作为上述方案的改进,在获取所述可见区范围内的bim数据前,还包括步骤:

将所述城市信息模型中的bim数据转换为gitf格式的bim数据;

则所述在所述前端对所述可见区范围内的bim数据进行渲染并显示,具体为:

将所述可见区范围内的bim数据加载到所述前端;其中,所述可见区范围内的bim数据为gitf格式的bim数据;

根据所述可见区范围内的bim数据中除纹理图片外的信息,在所述前端上加载几何模型。

作为上述方案的改进,当判断到所述显示比例尺大于所述第二阈值时,所述在所述前端上加载几何模型后,还包括步骤:

根据所述可见区范围内的bim数据中的纹理图片,通过异步加载纹理的方式对所述几何模型进行贴图。

作为上述方案的改进,所述将所述城市信息模型中的bim数据转换为gitf格式的bim数据,具体为:

将所述城市信息模型中的bim数据转换为ifc格式的bim数据;

通过xbim.gltf组件,将所述ifc格式的bim数据的数据格式转换为gitf格式的bim数据。

作为上述方案的改进,所述获取所述可见区范围内的瓦片数据,具体为:

根据所述显示比例尺,确定需要调用的瓦片数据的等级;其中,所述瓦片数据预先根据预设条件进行分级;

将所述可见区范围按预设比例扩大,得到扩大后的可见区范围;

根据所述扩大后的可见区范围和所述需要调用的瓦片数据的等级,从所述存储系统中调取瓦片数据存储于缓存中;

则在所述前端对所述可见区范围内的瓦片数据进行渲染并显示,具体为:

在所述缓存中提取所述可见区范围内的瓦片数据,并加载至所述前端;

通过webgl技术,在所述前端对所述可见区范围内的瓦片数据进行渲染并显示。

相应地,本发明实施例还提供了一种城市信息模型的高性能渲染装置,包括:

瓦片生成模块,用于根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据,并将所述瓦片数据存储于存储系统中;其中,所述地理信息数据包括地形数据、点云数据和倾斜摄影数据;

第一获取模块,用于获取当前渲染窗口中的可见区范围和显示比例尺;

第二获取模块,用于获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据;

判断模块,用于判断所述显示比例尺、第一阈值和第二阈值之间的大小关系;

第一渲染模块,用于当判断到所述显示比例尺小于所述第一阈值时,在前端对所述可见区范围内的bim数据、点云数据、倾斜摄影数据和瓦片数据进行渲染并显示;

第二渲染模块,用于当判断到所述显示比例尺在所述第一阈值至所述第二阈值之内时,在所述前端对所述可见区范围内的bim数据和瓦片数据进行渲染并显示,并在后端对所述可见区范围内的点云数据和倾斜摄影数据进行渲染,以得到第一图像数据并传输到所述前端进行显示;

第三渲染模块,用于当判断到所述显示比例尺大于所述第二阈值时,在所述前端对所述可见区范围内的bim数据、点云数据和瓦片数据进行渲染并显示,并在所述后端对所述可见区范围内的倾斜摄影数据进行渲染,以得到第二图像数据并传输到所述前端进行显示。

本发明实施例还提供了一种城市信息模型的高性能渲染装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任意一项所述的城市信息模型的高性能渲染方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任意一项所述的城市信息模型的高性能渲染方法。

与现有技术相比,本发明公开的一种城市信息模型的高性能渲染方法、装置、及存储介质,首先根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据;接着获取当前渲染窗口中的可见区范围和显示比例尺;再获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据;然后根据所述显示比例尺、第一阈值和第二阈值之间的大小关系,将可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据的渲染过程分别部署在前端和后端进行,解决了现有技术中由于单一的前端渲染而造成的渲染时间较长、效率较低的问题,能有效减少渲染时间,提高渲染效率,从而为用户提供快速的、流畅的使用体验感。

附图说明

图1是本发明提供的城市信息模型的高性能渲染方法的一个实施例的流程示意图。

图2是本发明提供的城市信息模型的高性能渲染方法中瓦片金字塔的一个实施例的结构示意图。

图3是本发明提供的城市信息模型的高性能渲染方法中瓦片包换算规律的一个实施例的示意图。

图4是本发明提供的城市信息模型的高性能渲染方法的一个实施例的部分流程示意图。

图5是本发明提供的城市信息模型的高性能渲染装置的一个实施例的结构示意图。

图6是本发明提供的城市信息模型的高性能渲染装置的另一个实施例的结构示意图。

具体实施方式

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

参见图1,是本发明提供的城市信息模型的高性能渲染方法的一个实施例的流程示意图。

本发明实施例提供一种城市信息模型的高性能渲染方法,包括步骤s1至步骤s7,具体如下:

s1、根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据,并将所述瓦片数据存储于存储系统中;其中,所述地理信息数据包括地形数据、点云数据和倾斜摄影数据。

需要说明的是,参见图2,瓦片金字塔模型是一种多分辨率层次模型,指在相同的空间参考下,按照用户需求采用不同分辨率、不同维数进行存储和显示,构建成数据量从小到大、分辨率从粗到细的多层的地形金字塔结构,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。其中,瓦片数据包含多种格式,例如由倾斜摄影数据与点云数据转换成的pnts格式、vctr格式(vectordata,矢量数据)、b3dm格式(batched3dmodels,批量3d模型)、cmpt格式(composite,复合数据)等。

s2、获取当前渲染窗口中的可见区范围和显示比例尺。

需要说明的是,城市信息模型的渲染并不是把所有的数据都调度出来进行渲染可视化,也不是在各比例尺下仍然显示相同的细节。在渲染的实际操作过程中,往往都会使用lod,即根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

其中,当前渲染窗口中的可见区范围是由视锥体决定的,视锥体是指场景中摄像机的可见的一个椎体范围,它有上、下、左、右、近、远等六个面组成,在视锥体内的景物可见,反之则不可见。

其中,显示比例尺计算方法如下:

s表示显示比例尺,gr为地面分辨率,单位为(m/像素),sr为屏幕分辨率,取值为96dpi。

s3、获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据。

s4、判断所述显示比例尺、第一阈值和第二阈值之间的大小关系。

需要说明的是,相对于bim数据、瓦片数据而言,倾斜摄影数据和点云数据需要更多的渲染时间,同时,由于其格式特点,可以是根据显示比例尺的大小,将倾斜摄影数据、点云数据的渲染过程合理地放到后端进行。若显示比例尺小于第一阈值,则执行步骤s5;若显示比例尺在第一阈值至第二阈值之内,则执行步骤s6;若显示比例尺大于第二阈值,则执行步骤s7。

其中,在具体实施时,所述第一阈值和所述第二阈值可以是根据实际情况进行选择,均不影响本发明的有益效果,优选地,所述第一阈值为1:10万,所述第二阈值为1:2.5万。

s5、当判断到所述显示比例尺小于所述第一阈值时,在前端对所述可见区范围内的bim数据、点云数据、倾斜摄影数据和瓦片数据进行渲染并显示。

需要说明的是,以所述第一阈值为1:10万为例,当显示比例尺处于小比例尺(1:10万以上)时,场景加载中更多的是地形数据,此时前端的负荷相对较轻,bim数据、点云数据、倾斜摄影数据和瓦片数据的渲染工作均在前端进行。

其中,倾斜摄影数据和点云数据的渲染成图过程如下:首先从存储系统中调取出数据,接着在webgl中获取前端屏幕的像素,从而确定生成图片的信息,再用setdata()将数据填充到场景中,最后根据场景生成jpeg格式图片。当以上过程在前端进行时,直接将生成的jpeg格式图片显示,当以上过程在后端进行时,后端将生成的jpeg格式图片传输到前端,作为前端可视化资源由前端进行显示。

其中,瓦片数据中的矢量瓦片是将矢量数据通过不同的描述文件来组织和定义,在前端渲染时,实时解析矢量瓦片并完成绘制。瓦片数据中的地形瓦片是栅格瓦片,是预先在server端绘制好固定的png和jpg图片集合。具体的,通过webgl技术,将这些瓦片数据进行渲染。

s6、当判断到所述显示比例尺在所述第一阈值至所述第二阈值之内时,在所述前端对所述可见区范围内的bim数据和瓦片数据进行渲染并显示,并在后端对所述可见区范围内的点云数据和倾斜摄影数据进行渲染,以得到第一图像数据并传输到所述前端进行显示。

需要说明的是,以所述第一阈值为1:10万,所述第二阈值为1:2.5万为例,当显示比例尺处于中比例尺时(1:2.5万-1:10万),场景中不仅需要显示大量模型,同时还要显示模型的细节和地形细节等,对于前端来说,大量的数据计算和处理需要耗费过多的时间,因此,可以是在前端对bim数据和瓦片数据进行渲染并显示,将点云数据和倾斜摄影数据的渲染工作放到后端进行处理,从而降低前端的处理压力,同时使后端计算压力不会过重。运用webgl技术,将前后端资源进行加载和整合显示,达到二三维数据的可视化。

s7、当判断到所述显示比例尺大于所述第二阈值时,在所述前端对所述可见区范围内的bim数据、点云数据和瓦片数据进行渲染并显示,并在所述后端对所述可见区范围内的倾斜摄影数据进行渲染,以得到第二图像数据并传输到所述前端进行显示。

需要说明的是,以所述第二阈值为1:2.5万为例,当显示比例尺处于大比例尺(1:2.5万以下)时,屏幕中需要显示的模型数量减少,细节则需要尽可能多地展现到前端,因此,可以是将倾斜摄影数据放在后端进行渲染,将bim数据、点云数据和瓦片数据放在前端进行渲染。运用webgl技术,将前后端资源进行加载和整合显示,达到二三维数据的可视化。

在一个优选实施例中,所述根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据,具体为:

基于mapreduce技术,根据所述城市信息模型中的地理信息数据,并行构建瓦片金字塔,以得到瓦片数据。

其中,运用mapreduce分布式并行运算框架技术,利用map函数将城市信息模型中的地理信息数据自动分解为成千上百个小数据集,每个(或几个)数据集分别由均衡分配到集群节点进行处理,生成中间结果,再通过reduce函数合并节点,形成最终结果,从而并行构建瓦片金字塔,以得到瓦片数据。

进一步地,所述将所述瓦片数据存储于存储系统中,具体为:

将所述瓦片数据打包,生成瓦片包文件;其中,每个瓦片包文件存储该层级的瓦片数据;

将所述瓦片包文件存储于hdfs分布式系统中。

需要说明的是,对瓦片金字塔中的瓦片数据进行打包,可以减少瓦片的个数,提高寻址效率。每个瓦片包文件存储该层级的瓦片数据,且存放数量固定,在实际应用中根据单个瓦片的大小以512*512进行打包,以每个瓦片文件大小为256kb为基准,一次打包后瓦片包文件大小在[0gb,64gb+3mb]范围内,多次打包瓦片包文件大小在文件系统可以支持的范围内。瓦片数据打包前后的行列号换算规律如图3所示,其中level为瓦片数据的层数,row为瓦片数据打包前的行号,colum为瓦片数据打包前的列号,packrow为瓦片数据打包后的行号,packcolumn为瓦片数据打包后的列号,例如,第n级的瓦片数据打包前的行号为2n+1,列号2n-1,则其打包后的行号为2n-8,列号为2n-7

其中,瓦片包文件中该瓦片数据索引的物理位置计算公式为:

rnew=r-rpack*512

cnew=c-cpack*512

其中[rnew,cnew]为换算后瓦片数据对应的索引位置,[r,c]为瓦片数据打包前的行号和列号,[rpack,cpack]为瓦片数据打包后的行号和列号。

瓦片包结构分为索引区和数据区,索引区以固定长度8*512*512字节记录其物理位置对应瓦片的数据偏移量。偏移量指向的数据区记录对应瓦片的数据:其中前4字节记录数据大小,后面字节记录数据实体。

其中,所述分布式存储系统为hdfs(hadoopdistributedfilesystem)。hdfs(hadoopdistributedfilesystem)作为计算平台hadoop的分布式文件系统,采用主从结构(master-slave结构),由一个namenode和若干个datanode组成。由于元数据全部存于namenode的内存中,过多的小文件存储会最终消耗尽namenode的寻址能力,又hdfs采用分块方式存储文件,故hdfs适合存储大文件。

需要说明的是,由于城市信息模型结合了bim技术和3dgis技术,其所能容纳的信息覆盖整个空间、时间维度,能够制衡各种城市应用,其信息可以描述城市内各种物理、人文实体,具有多时态、多类型、多粒度级别、多来源等特点,因此其涵盖的信息量大,甚至数据量可达到tb级别,单机存储显然已不适合这种大数据的存储,并且在比例尺较大的情况下,瓦片数据均以瓦片地图小文件形式存放在一级目录下,造成存储空间增加,并且在网络传输数据时,传输的数据量大,在海量小文件中检索某个文件磁盘会频繁的操作,时间复杂度高。而在本实施例中,通过采用hdfs分布式存储的方式,将三维瓦片金字塔层级文件打包成瓦片包进行存储,根据hdfs文件存储适合批量处理gb、tb甚至pb级别的大数据,对小文件存储处理较弱的特点,通过打包使瓦片包达到gb级别,便于寻址与存储,由于hdfs具有冗余备份,文件的所有数据块都可以有副本,因此具有对海量数据高性能调度的优点,并且将三维瓦片金字塔与分布式存储结合可以提高城市信息模型渲染中的文件调度速度,作为实时快速渲染的保障,从而进一步减少了渲染时间,提高了渲染效率。

在另一个优选实施例中,在获取所述可见区范围内的bim数据前,还包括步骤:

将所述城市信息模型中的bim数据转换为gitf格式的bim数据;

则所述在所述前端对所述可见区范围内的bim数据进行渲染并显示,具体为:

将所述可见区范围内的bim数据加载到所述前端;其中,所述可见区范围内的bim数据为gitf格式的bim数据;

根据所述可见区范围内的bim数据中除纹理图片外的信息,在所述前端上加载几何模型。

优选地,可以是运用mapreduce分布式并行运算框架技术,将城市信息模型中的bim数据转换为gitf格式的bim数据,从而进一步减少渲染时间,提高渲染效率。

其中,在gitf格式的bim数据中,scene包含多个不同的节点,每个节点中可能包含多个孩子节点,这些节点通过偏移、旋转、缩放等矩阵组合成父节点中要描述的场景。在整个节点组成的树的叶子节点中包含构成集合体的基本图元(mesh),组成折现图元的顶点信息数据存储在二进制块中,通过accessor、bufferview索引来获取相应的数据。叶子节点中还包含材质(material)、相机(camera)、骨骼(skins)等。在material中还定义了几何体的纹理(texture),纹理中还定义了该纹理使用的纹理图片(image)和采集器(sampler)。

其中,每一gitf格式的bim数据在前端的渲染过程具体为:在cesium中首先加载该gitf格式的bim数据到前端,解析该gitf格式的bim数据的头信息json内容,得到该gitf格式的bim数据的模型结构,再找到secne元素作为父节点,遍历scene下的各个节点,根据mesh中不同的信息生成相对应的图元,通过accessor访问器得到对应的数据块,然后加载着色器中的着色器信息,对模型进行着色、光栅化等操作。当所有的节点都遍历完后,前端上加载出几何模型,该gitf格式的bim数据的场景也就渲染完成。需要说明的是,在此过程中不加载纹理。

需要说明的是,由于目前各种主流软件厂商推出的bim产品具有不同的数据组织结构,异构软件间的数据交流存在数据接口多、数据格式不同的问题,不同格式的bim数据难以整合,因此对bim数据的处理效率较低。在本发明实施例中,通过将城市信息模型中的不同格式的bim数据统一转换为gitf格式的bim数据,能有效提高后续对bim数据的处理效率,从而进一步减少渲染时间,提高渲染效率。

进一步地,当判断到所述显示比例尺大于所述第二阈值时,所述在所述前端上加载几何模型后,还包括步骤:

根据所述可见区范围内的bim数据中的纹理图片,通过异步加载纹理的方式对所述几何模型进行贴图。

需要说明的是,在gltf格式文件的存储方式中,节点关系、坐标和索引、纹理图片以及着色器是分开存储的,在三维场景的加载中,这种存储方式具有一定的优势。在前端先加载出几何模型,再根据当前渲染窗口的显示比例尺大小,也即视锥体的大小决定是否加载纹理,在当前渲染窗口的显示比例尺小于第二阈值时,场景处于小比例尺下,前端不需要加载纹理;在当前渲染窗口的显示比例尺大于第二阈值时,场景处于大比例尺下,通过异步加载纹理的方式对几何模型进行贴图,进一步减少了渲染时间,提高了渲染效率。

进一步地,所述将所述城市信息模型中的bim数据转换为gitf格式的bim数据,具体为:

将所述城市信息模型中的bim数据转换为ifc格式的bim数据;

通过xbim.gltf组件,将所述ifc格式的bim数据的数据格式转换为gitf格式的bim数据。

需要说明的是,ifc文件格式不属于任何一家bim软件厂商,是开放性的属性交换共享格式。由于各家bim软件均可导出ifc文件格式且有效的保留图形及非图形属性数据,因此,可以是以ifc文件作为中间格式,将有效的ifc文件通过xbim.gltf组件转换为gltf格式文件。

在又一个优选实施例中,参见图4,所述获取所述可见区范围内的瓦片数据,包括步骤s31至s33,具体如下:

s31、根据所述显示比例尺,确定需要调用的瓦片数据的等级;其中,所述瓦片数据预先根据预设条件进行分级。

需要说明的是,所述瓦片数据预先根据预设条件进行分级,其中,所述预设条件可以为公共服务电子地图瓦片数据规范中的分级标准,也可以是其他标准,在实际应用中可以是根据实际情况进行选择,均不影响本发明的有益效果。

其中,根据当前渲染窗口的显示比例尺,可以确定需要调用的瓦片数据的等级。瓦片数据的等级与当前渲染窗口的显示比例尺之间的关系为:

此处的l表示瓦片数据的等级级数,s0为第0级瓦片的比例尺倒数,取值442943842.5,s为当前渲染窗口的显示比例尺。

s32、将所述可见区范围按预设比例扩大,得到扩大后的可见区范围。

其中,在确定视锥大小,也即确定当前渲染窗口的可见区范围后,将当前渲染窗口的可见区范围按一定的比例向外扩充,从而得到新的视锥体,也即扩大后的可见区范围。

s33、根据所述扩大后的可见区范围和所述需要调用的瓦片数据的等级,从所述存储系统中调取瓦片数据存储于缓存中。

其中,按照新视锥体大小,也即扩大后的可见区范围,以及需要调用的瓦片数据的等级,对存储于存储系统中的瓦片数据进行调取并存储到缓存当中,因此后续在前端视角改变时,附近的瓦片数据已存储在缓存中,只需在缓存中提取加载即可,同时,新的数据又会加载到缓存中。通过这种渐进式缓存的方法,可提高模型的渲染速度,保持渲染的连贯性。

则在所述前端对所述可见区范围内的瓦片数据进行渲染并显示,具体为:

在所述缓存中提取所述可见区范围内的瓦片数据,并加载至所述前端;

通过webgl技术,在所述前端对所述可见区范围内的瓦片数据进行渲染并显示。

在本实施例中,由于可见区范围内的瓦片数据已经存储于缓存中,因此在前端渲染时,仅需在缓存中提取可见区范围内的瓦片数据,并加载至所述前端,然后通过webgl技术,在前端对加载的可见区范围内的瓦片数据进行渲染并显示,解决了前端渲染时海量数据的加载和计算造成渲染瓶颈的问题,进一步减少了渲染时间,提高了渲染效率。

本发明实施例提供的一种城市信息模型的高性能渲染方法,首先根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据;接着获取当前渲染窗口中的可见区范围和显示比例尺;再获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据;然后根据所述显示比例尺、第一阈值和第二阈值之间的大小关系,将可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据的渲染过程分别部署在前端和后端进行,解决了现有技术中由于单一的前端渲染而造成的渲染时间较长、效率较低的问题,能有效减少渲染时间,提高渲染效率,从而为用户提供快速的、流畅的使用体验感。

本发明实施例还提供了一种城市信息模型的高性能渲染装置,能够实施上述城市信息模型的高性能渲染方法的所有流程。

参见图5,是本发明提供的城市信息模型的高性能渲染装置的一个实施例的结构示意图。

本发明实施例提供的一种城市信息模型的高性能渲染装置,包括:

瓦片生成模块21,用于根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据,并将所述瓦片数据存储于存储系统中;其中,所述地理信息数据包括地形数据、点云数据和倾斜摄影数据;

第一获取模块22,用于获取当前渲染窗口中的可见区范围和显示比例尺;

第二获取模块23,用于获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据;

判断模块24,用于判断所述显示比例尺、第一阈值和第二阈值之间的大小关系;

第一渲染模块25,用于当判断到所述显示比例尺小于所述第一阈值时,在前端对所述可见区范围内的bim数据、点云数据、倾斜摄影数据和瓦片数据进行渲染并显示;

第二渲染模块26,用于当判断到所述显示比例尺在所述第一阈值至所述第二阈值之内时,在所述前端对所述可见区范围内的bim数据和瓦片数据进行渲染并显示,并在后端对所述可见区范围内的点云数据和倾斜摄影数据进行渲染,以得到第一图像数据并传输到所述前端进行显示;

第三渲染模块27,用于当判断到所述显示比例尺大于所述第二阈值时,在所述前端对所述可见区范围内的bim数据、点云数据和瓦片数据进行渲染并显示,并在所述后端对所述可见区范围内的倾斜摄影数据进行渲染,以得到第二图像数据并传输到所述前端进行显示。

本发明实施例提供的一种城市信息模型的高性能渲染装置,首先根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据;接着获取当前渲染窗口中的可见区范围和显示比例尺;再获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据;然后根据所述显示比例尺、第一阈值和第二阈值之间的大小关系,将可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据的渲染过程分别部署在前端和后端进行,解决了现有技术中由于单一的前端渲染而造成的渲染时间较长、效率较低的问题,能有效减少渲染时间,提高渲染效率,从而为用户提供快速的、流畅的使用体验感。

参见图6,是本发明提供的城市信息模型的高性能渲染装置的另一个实施例的结构示意图。

本发明实施例提供的一种城市信息模型的高性能渲染装置,包括处理器31、存储器32以及存储在所述存储器中且被配置为由所述处理器31执行的计算机程序,所述处理器31执行所述计算机程序时实现如上任一实施例所述的城市信息模型的高性能渲染方法。

另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任一实施例所述的城市信息模型的高性能渲染方法。

所述处理器31执行所述计算机程序时实现上述各个城市信息模型的高性能渲染方法实施例中的步骤,例如图1所示的城市信息模型的高性能渲染方法的所有步骤。或者,所述处理器31执行所述计算机程序时实现上述各城市信息模型的高性能渲染装置实施例中各模块/单元的功能,例如图5所示的城市信息模型的高性能渲染装置的各模块的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器32中,并由所述处理器31执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述城市信息模型的高性能渲染装置中的执行过程。例如,所述计算机程序可以被分割成瓦片生成模块、第一获取模块、第二获取模块、判断模块、第一渲染模块、第二渲染模块和第三渲染模块,各模块具体功能如下:瓦片生成模块,用于根据城市信息模型中的地理信息数据构建瓦片金字塔,以得到瓦片数据,并将所述瓦片数据存储于存储系统中;其中,所述地理信息数据包括地形数据、点云数据和倾斜摄影数据;第一获取模块,用于获取当前渲染窗口中的可见区范围和显示比例尺;第二获取模块,用于获取所述可见区范围内的瓦片数据、点云数据、倾斜摄影数据和bim数据;判断模块,用于判断所述显示比例尺、第一阈值和第二阈值之间的大小关系;第一渲染模块,用于当判断到所述显示比例尺小于所述第一阈值时,在前端对所述可见区范围内的bim数据、点云数据、倾斜摄影数据和瓦片数据进行渲染并显示;第二渲染模块,用于当判断到所述显示比例尺在所述第一阈值至所述第二阈值之内时,在所述前端对所述可见区范围内的bim数据和瓦片数据进行渲染并显示,并在后端对所述可见区范围内的点云数据和倾斜摄影数据进行渲染,以得到第一图像数据并传输到所述前端进行显示;第三渲染模块,用于当判断到所述显示比例尺大于所述第二阈值时,在所述前端对所述可见区范围内的bim数据、点云数据和瓦片数据进行渲染并显示,并在所述后端对所述可见区范围内的倾斜摄影数据进行渲染,以得到第二图像数据并传输到所述前端进行显示。

所述城市信息模型的高性能渲染装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述城市信息模型的高性能渲染装置可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,所述示意图仅仅是城市信息模型的高性能渲染装置的示例,并不构成对城市信息模型的高性能渲染装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述城市信息模型的高性能渲染装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器31可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器31是所述城市信息模型的高性能渲染装置的控制中心,利用各种接口和线路连接整个城市信息模型的高性能渲染装置的各个部分。

所述存储器32可用于存储所述计算机程序和/或模块,所述处理器31通过运行或执行存储在所述存储器32内的计算机程序和/或模块,以及调用存储在存储器32内的数据,实现所述城市信息模型的高性能渲染装置的各种功能。所述存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述城市信息模型的高性能渲染装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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