一种基于三维游戏引擎进行空间模型可视化渲染的方法技术

技术编号:26522518 阅读:21 留言:0更新日期:2020-12-01 13:45
本发明专利技术公开了一种基于三维游戏引擎进行空间模型可视化渲染的方法,包括以下步骤:根据地理坐标,将三维游戏模型进行投影,得到投影地图;定义瓦片结构,并按瓦片结构对投影地图进行划分,得到若干地图瓦片;将地图瓦片逐一进行加载,并将满足精度要求的地图瓦片加载,完成空间模型可视化渲染。本发明专利技术实现了一种空间模型可视化渲染,为现有的游戏引擎提供了地理坐标系统和地图地图显示功能。

【技术实现步骤摘要】
一种基于三维游戏引擎进行空间模型可视化渲染的方法
本专利技术属于可视化
,具体涉及一种基于三维游戏引擎进行空间模型可视化渲染的方法。
技术介绍
现如今GIS(地理信息系统)因其高度可视化的广场,被各行来被大量应用和用于可视化展示,随着技术发展示可视化的技术已从二维向三维发展,这也对开发提出了更高要求。三维展示直接使用现成游戏引擎开发可以降低开发难度,但传统的游戏引擎如Unity3d的目标是进行游戏开发展示并不是为GIS而进行开发的,所以有如下问题:不自带地理坐标系统以及不自带地图底图显示功能。
技术实现思路
针对现有技术中的上述不足,本专利技术提供的一种基于三维游戏引擎进行空间模型可视化渲染的方法解决了现有技术中存在的问题。为了达到上述专利技术目的,本专利技术采用的技术方案为:一种基于三维游戏引擎进行空间模型可视化渲染的方法,包括以下步骤:S1、根据地理坐标,将三维游戏模型进行投影,得到投影地图;S2、定义瓦片结构,并按瓦片结构对投影地图进行划分,得到若干地图瓦片;S3、将地图瓦片逐一进行加载,并将满足精度要求的地图瓦片加载,完成空间模型可视化渲染。进一步地,所述步骤S1包括以下分步骤:S11、将地理坐标的经度lon作为三维游戏引擎中坐标系的Z轴,将纬度lat作为三维游戏引擎中坐标系的X轴,并将地理坐标的高度height作为三维游戏引擎中坐标系的Y轴;S12、以经度lon和纬度lat构成的平面为基础,采用web墨卡托投影将经度lon和纬度lat转换为米,得到投影地图。进一步地,所述步骤S12中采用web墨卡托投影将经度lon和纬度lat转换为米的具体公式为:其中,plon表示转换为米后的经度,plat表示转化为米后的纬度,PI表示圆周率,RADIUS表示地球半径,cos表示求取余弦。进一步地,所述步骤S2中定义瓦片结构具体方法为:A1、将投影地图作为第0层的瓦片;A2、并按照经度进行剖分,将第i-1层的瓦片进行四等分得到4份第i层的瓦片,i=1,2,...,N,所述N表示最终得到的层数。进一步地,所述步骤A1中瓦片的所属层级为level、X轴编号为x以及Y轴编号为y,所述瓦片表示为Tlevel_x_y,level=i;所述第0层的瓦片包括第一根节点T0_0_0和第二根节点T0_1_0。进一步地,所述步骤S3包括以下分步骤:S31、将第0层的瓦片放入待加载队列TileLoadQueue中;S32、判断待加载队列TileLoadQueue中是否存在未加载的瓦片,若是,则将其进行加载,将加载完成的瓦片添加至存储对象Quadtree和已加载瓦片列队TileCurrentShowQueue中,并将存储对象Quadtree的瓦片加载状态设置为已加载,进入步骤S33,否则直接进入步骤S33;S33、根据当前加载瓦片的层级,通过存储对象Quadtree进行三维游戏模型的地图显示;S34、从已加载瓦片列队TileCurrentShowQueue中依次取出每个瓦片,并判断当前取出瓦片TileNode的显示精度是否大于其所属层级精度,若是,则将下一层级的瓦片加入待加载队列TileLoadQueue中,并将当前瓦片TileNode从已加载瓦片列队TileCurrentShowQueue中移除,并返回步骤S32,否则进入步骤S35;S35、判断当前瓦片TileNode的显示精度是否小于其所属层级精度,若是,则将当前瓦片TileNode的上一级瓦片加入待加载队列TileLoadQueue中,并将当前瓦片TileNode的下级瓦片全部移除,返回步骤S32,否则进入步骤S36;S36、判断虚拟摄像机的高度是否发生变化,若是,获取变化后的瓦片层级,并将瓦片层级对应的瓦片加入待加载队列TileLoadQueue中,返回步骤S32,否则完成空间模型可视化渲染。进一步地,所述步骤S34中显示精度的获取步骤具体为:B1、根据当前取出瓦片TileNode,获取其所属层级level、X轴坐标和Y轴坐标;B2、根据步骤B1中得到的所属层级level、X轴坐标XTileNode和Y轴坐标YTileNode,获取当前取出瓦片TileNode的解析度resolution、经度sourceLon和纬度sourceLat为:其中,pow(2,level)表示2的level次方。B3、获取虚拟摄像机的位置为(XH,YH,ZH),并计算当前取出瓦片TileNode与虚拟摄像机之间的距离distance为:B4、根据距离distance,获取当前取出瓦片TileNode的显示精度accuracy为:accuracy=(maxGeometricAccuracy*height)/distance*sseDenominator其中,maxGeometricAccuracy表示分辨率,其通过地球赤道的周长除以屏幕像素数获取,像素数=256,sseDenominator表示虚拟摄像机可视角度的正切值的两倍,height表示显示屏幕的像素高度。进一步地,所述步骤S3中当前取出瓦片TileNode的所属层级精度accuracy_level计算公式为:accuracy_level=D/pow(2,level)其中,D示第0层的最大显示精度。本专利技术的有益效果为:(1)本专利技术实现了一种基于三维游戏引擎进行空间模型可视化渲染的方法,为现有的游戏引擎提供了地理坐标系统和地图地图显示功能。(2)本专利技术复杂度低,加快了地图渲染的速度,节约了使用人员的时间,提高了使用体验。附图说明图1为本专利技术提出的一种基于三维游戏引擎进行空间模型可视化渲染的方法流程图。图2为本专利技术中第0层瓦片四分示意图。具体实施方式下面对本专利技术的具体实施方式进行描述,以便于本
的技术人员理解本专利技术,但应该清楚,本专利技术不限于具体实施方式的范围,对本
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本专利技术的精神和范围内,这些变化是显而易见的,一切利用本专利技术构思的专利技术创造均在保护之列。下面结合附图详细说明本专利技术的实施例。如图1所示,一种基于三维游戏引擎进行空间模型可视化渲染的方法,包括以下步骤:S1、根据地理坐标,将三维游戏模型进行投影,得到投影地图;S2、定义瓦片结构,并按瓦片结构对投影地图进行划分,得到若干地图瓦片;S3、将地图瓦片逐一进行加载,并将满足精度要求的地图瓦片加载,完成空间模型可视化渲染。所述步骤S1包括以下分步骤:S11、将地理坐标的经度lon作为三维游戏引擎中坐标系的Z轴,将纬度lat作为三维游戏引擎中坐标系的X轴,并将地理坐标的高度height作为三维游戏引擎中坐标系的Y轴;S12、以经度lon和纬度lat本文档来自技高网
...

【技术保护点】
1.一种基于三维游戏引擎进行空间模型可视化渲染的方法,其特征在于,包括以下步骤:/nS1、根据地理坐标,将三维游戏模型进行投影,得到投影地图;/nS2、定义瓦片结构,并按瓦片结构对投影地图进行划分,得到若干地图瓦片;/nS3、将地图瓦片逐一进行加载,并将满足精度要求的地图瓦片加载,完成空间模型可视化渲染。/n

【技术特征摘要】
1.一种基于三维游戏引擎进行空间模型可视化渲染的方法,其特征在于,包括以下步骤:
S1、根据地理坐标,将三维游戏模型进行投影,得到投影地图;
S2、定义瓦片结构,并按瓦片结构对投影地图进行划分,得到若干地图瓦片;
S3、将地图瓦片逐一进行加载,并将满足精度要求的地图瓦片加载,完成空间模型可视化渲染。


2.根据权利要求1所述的基于三维游戏引擎进行空间模型可视化渲染的方法,其特征在于,所述步骤S1包括以下分步骤:
S11、将地理坐标的经度lon作为三维游戏引擎中坐标系的Z轴,将纬度lat作为三维游戏引擎中坐标系的X轴,并将地理坐标的高度height作为三维游戏引擎中坐标系的Y轴;
S12、以经度lon和纬度lat构成的平面为基础,采用web墨卡托投影将经度lon和纬度lat转换为米,得到投影地图。


3.根据权利要求2所述的基于三维游戏引擎进行空间模型可视化渲染的方法,其特征在于,所述步骤S12中采用web墨卡托投影将经度lon和纬度lat转换为米的具体公式为:



其中,plon表示转换为米后的经度,plat表示转化为米后的纬度,PI表示圆周率,RADIUS表示地球半径,cos表示求取余弦。


4.根据权利要求1所述的基于三维游戏引擎进行空间模型可视化渲染的方法,其特征在于,所述步骤S2中定义瓦片结构具体方法为:
A1、将投影地图作为第0层的瓦片;
A2、并按照经度进行剖分,将第i-1层的瓦片进行四等分得到4份第i层的瓦片,i=1,2,...,N,所述N表示最终得到的层数。


5.根据权利要求4所述的基于三维游戏引擎进行空间模型可视化渲染的方法,其特征在于,所述步骤A1中瓦片的所属层级为level、X轴编号为x以及Y轴编号为y,所述瓦片表示为Tlevel_x_y,level=i;
所述第0层的瓦片包括第一根节点T0_0_0和第二根节点T0_1_0。


6.根据权利要求1所述的基于三维游戏引擎进行空间模型可视化渲染的方法,其特征在于,所述步骤S3包括以下分步骤:
S31、将第0层的瓦片放入待加载队列TileLoadQueue中;
S32、判断待加载队列TileLoadQueue中是否存在未加载的瓦片,若是,则将其进行加载,将加载完成的瓦片添加至存储对象Quadtree和已加载瓦片列队TileCurrentShowQueue中,并将存储对象Quadtree的瓦片加载状态设置为已加载,进入步骤S33,否则直接进入步骤S33;
S33、根据当前加载瓦片的层级,通过存储对象Quadtr...

【专利技术属性】
技术研发人员:杨斌曹晔刘仁明彭真徐锴周翔曾凡邓廷
申请(专利权)人:四川易利数字城市科技有限公司
类型:发明
国别省市:四川;51

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

1