CN104318617B - 一种面向虚拟应急演练的三维地理场景仿真方法 - Google Patents

一种面向虚拟应急演练的三维地理场景仿真方法 Download PDF

Info

Publication number
CN104318617B
CN104318617B CN201410551640.1A CN201410551640A CN104318617B CN 104318617 B CN104318617 B CN 104318617B CN 201410551640 A CN201410551640 A CN 201410551640A CN 104318617 B CN104318617 B CN 104318617B
Authority
CN
China
Prior art keywords
formula
index
vertices
dem
dimensional
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
Application number
CN201410551640.1A
Other languages
English (en)
Other versions
CN104318617A (zh
Inventor
林广发
刘鑫垚
张明锋
李清远
杨城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Normal University
Original Assignee
Fujian Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Normal University filed Critical Fujian Normal University
Priority to CN201410551640.1A priority Critical patent/CN104318617B/zh
Publication of CN104318617A publication Critical patent/CN104318617A/zh
Application granted granted Critical
Publication of CN104318617B publication Critical patent/CN104318617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及一种面向虚拟应急演练的三维地理场景仿真方法。首先,利用GIS软件获得DEM中的高程数据,利用配准过的高分辨率遥感影像解译地表附属物信息,或者利用已有的实测图层获得地物和土地利用信息;接着,在游戏引擎中利用这些具有真实地理意义的信息建立地形地貌,其中的关键技术过程是游戏引擎中的直角坐标系与GIS软件中地理坐标系之间的转换;最后,在游戏引擎平台上组合重构具有真实地理意义的三维地形与地理要素模型,实现逼真三维场景的建立。本发明操作方便,不需要限制区域的形状大小,且保证DEM高程准确性,能自动生成具有真实地理意义的三维场景。

Description

一种面向虚拟应急演练的三维地理场景仿真方法
技术领域
本发明涉及一种面向虚拟应急演练的三维地理场景仿真方法。
背景技术
严肃游戏自20世纪80年代诞生至今,一直被广泛应用于军事、医学、教育、科研等各个领域。严肃游戏是一种不以娱乐为目的的游戏。严肃游戏与娱乐游戏的关键区别在于游戏是否具有真实性和科学性。利用严肃游戏可以对现实中可能发生的一些事故灾害进行模拟,例如地震、火灾、地铁反恐等,并且可以让用户以任意角色的形式进入这些游戏场景中,身临其境地感受事故发生的过程,从而达到对用户进行教育和培训的目的。因此,严肃游戏一直被广泛应用于突发事件和应急推演中,是目前该领域的研究热点,也将是未来应急推演领域的发展趋势。严肃游戏中要求场景贴近真实,游戏逻辑具有科学依据,并且游戏中的角色行为具有真实的物理意义,如行走的速度、距离,角色所处的位置等。而要保证严肃游戏的科学性和真实性的前提是在游戏中用户所处的环境是具有真实意义的,因此,搭建逼真的三维地理场景是进行基于严肃游戏的三维仿真系统的关键步骤和基础工作。
与自然灾害等事件相关的仿真应急演练往往需要建立大区域范围的虚拟场景,这与一般的虚拟现实游戏场景存在很大的差别。而目前的游戏引擎例如Cry Engine, UnrealEngine, Unity3D等都还不像地理信息系统(GIS)软件一样能快速的建立起大区域范围并且具有真实意义的三维地理场景。
在游戏引擎中现有的建立三维地理场景的方法有两种:
第一种方法:利用三维建模软件建立三维地形再导入游戏引擎。首先利用三维建模软件建立三维场景,再导出为游戏引擎中可以支持的文件格式,然后导入游戏引擎中建立三维模型。以Unity3D游戏引擎为例,在《A new method of virtual reality based onUnity3D》, 《The research of making scenic wandering system based on Unity 3D》,《基于Unity3D的虚拟漫游系统》等文献中报道的研究案例均使用了这个方法建立地形。一般模式是利用3D Max建立三维场景后导出成FBX文件;然后将FBX文件导入到Unity3D中;接着,人工在Unity3D中调整每个块的地理位置,使每个块能无缝连接起来;最后,在三维地形上添加房屋等其他的三维模型。
第二种方法:利用灰度图制作三维地形。该方法需要提供灰度图(RAW格式)作为高程数据,而且图片形状必须为正方形,边长必须是2的指数幂,灰度从0到255共256级;区域的高程进行分级,灰度0表示最低处的高程,灰度255表示最高的高程。在文献《试验场三维GIS实现的新方法》,《三维图形引擎大规模场景实时渲染技术研究与应用》和专利《一种自动生成Torque引擎中三维地形的方法》中,均使用了灰度图的方式建立地形。其具体实施步骤为:提取地形图中等高线、高程点数据构建约束Delaunay三角网;根据地形范围确定一个正方形区域以对应长宽均为256象素的高度图,在三角网中内插出每个象素所对应点的高程值,遍历得到高程范围,生成具有256等级的灰度图,0表示最低,255表示最高。
第一种利用三维软件建立三维地形再导入游戏引擎的方法,缺点是:
①操作繁琐;
②需要在引擎中调整每个块地理位置,使每个块能无缝连接起来,这样的方法会带来块之间的接缝误差;
③生成的三维场景不具备真实的地理意义,没有原始坐标。
第二种利用灰度图的方式来制作三维地形的方法,缺点是:
①需要提供灰度图作为高程数据来源,所提供的灰度图有形状和大小的限制,要求形状必须为正方形,边长必须是2的指数幂;
②用灰度值表示高程值,将区域的高程划分为256级,0表示最低,255表示最高,这样的高程数据,其三维地形的误差会随着相对高差的增加而增大,1000米高差即可达近4米,不能符合实际演练(如应急疏散)的需求;
③生成的三维场景不具备真实的地理意义。
针对以上两种方法中存在的缺点,本发明的目的是解决以上两种方法中存在的制作步骤繁琐、数据来源限制多,且不能在真正意义上构建起具有真实地理意义的三维地理场景的问题。
发明内容
本发明的目的在于提供一种操作方便,不需要限制区域的形状大小,且保证DEM高程准确性,能自动生成具有真实地理意义的三维场景的面向虚拟应急演练的三维地理场景仿真方法。
为实现上述目的,本发明的技术方案是:一种面向虚拟应急演练的三维地理场景仿真方法,包括如下步骤,
步骤S1:获取需仿真区域的遥感影像及通过GIS软件获取DEM中的高程数据,并对需仿真区域进行实地考察或找到更大比例尺的地形图、更高精度的几何校正过的遥感影像,以获取用于配准遥感影像的特征控制点坐标;
步骤S2:对步骤S1中的遥感影像和DEM中的高程数据进行预处理:对遥感影像先配准后裁剪,对DEM中的高程数据先裁剪后重采样,以得到空间参考一致、大小匹配、空间分辨率相同的遥感影像和DEM;
步骤S3:以行序优先的方式读取遥感影像和DEM的行列数及分辨率信息,并以List列表文本文件的形式存储行列矩阵,存储格式为List={h1, h2, h3, …, hi, …, hn};其中,hi表示对应第i个DEM网格的高程值;读取顺序是场景西南角第一个网格点的开始为1,以行序优先的方式向东方向逐个读取各个网格点的高程值至文本文件中;
步骤S4:构建具有准确的相对地理位置的网格化三维地形,具体如下:
因DEM网格为正方形,游戏引擎中的地形网格为三角形;以Mesh来表示网格类,并以Mesh.vertices,Mesh.triangles和Mesh.uv这三个数组分别用于存储三角形网格的顶点位置、所有三角形顶点的索引和网格基础纹理坐标;并将DEM的正方形网格的中心点坐标及其高程相应转换为游戏引擎中三角形网格的顶点坐标及其高程值:
设顶点的集合为{ vertices[0], vertices[1], vertices[2], …, vertices[vertices_count]},其中每个顶点均为三维坐标,如式(1)~(5)所示:
Mesh.vertices = vertices 公式(1)
Vector3[] vertices = new Vector3[vertices_count] 公式(2)
vertices[index] = new Vector3(Xindex, Yindex, Zindex) 公式(3)
Xindex- Xindex-1 = CellSize 公式(4)
Zindex- Zindex-1 = CellSize 公式(5)
在公式(1)~(5)中,vertices[index]表示每个顶点的三维坐标数组,index为顶点的索引值,vertices_count表示顶点的个数;Mesh.vertices中的数组由三维向量数组vertices[index]组成;Xindex为经度,Yindex为高程,Zindex为纬度;在建立地形时将Z轴设为指向正北方向,沿X轴或Z轴方向相邻的两个顶点之间的距离与DEM分辨率大小相等;CellSize为DEM的分辨率大小;
Mesh.triangles是一个存储顶点数组索引的三角形列表,该数组的长度只能是3的整数倍,数组中的id和vertices数组中的顶点ID一一对应,triangle数组的表示如下:
int sum = col * row * 6 公式(6)
Mesh.triangles = triangles 公式(7)
int[] triangles = new int[sum] 公式(8)
在公式(6)~(8)中,triangles为整数型数组,sum为triangles数组的长度,row和col表示DEM的行列数,数组储存每个三角形对应的顶点索引ID值;
Mesh.uv是表示网格基础纹理坐标的二维数组,纹理的集合为{UV[0], UV[1], UV[2], …, UV[vertices_count]},UV[i]由二维向量组成;如公式(9)~(13)所示:
Mesh.vertices = UV 公式(9)
Vector2[] UV= new Vector2(VERTICES_COUNT) 公式(10)
UV [index] = new Vector2(j * v, i * u); 公式(11)
u = 1 / row 公式(12)
v = 1 / col 公式(13)
在公式(9)~(13)中,row为DEM的行数,col为DEM的列数;i, j分别表示顶点所在的DEM栅格位置的行、列号;Vector2(j * v, i * u)表示纹理的坐标数组;
步骤S5:根据上述方法将三维地形转换到游戏引擎中,使其具有三维地形层次细节管理功能;
步骤S6:将游戏引擎中的直角坐标系转换为地理坐标系,具体如下:
一般情况下应急演练的场景大小相比于地球而言可以不考虑地球曲率,故此处忽略地球曲率,所以在步骤S4建立完具有相对位置准确的地形后,定义Z轴为正北方向,将场景西南角移动到游戏坐标原点(0,0,0)位置,场景中角色的实际空间位置坐标,根据公式(14)~(16)确定:
player_x = (playercur.x – southwest.x) * x_offset / x_w_offset+ geo _x 公式(14)
player_z = (playercur.z – southwest.z) * z_offset / z_w_offset + geo_z 公式(15)
player_height = playercur.y 公式(16)
在公式(14)~(16)中,player_x, player_z和player_height分别表示角色所在位置的真实世界的经度、纬度和高程值;playercur.x和playercur.z表示角色在游戏引擎的虚拟场景中的X轴和Z轴的坐标值;(southwest.x,southwest.z)表示区域西南角点在游戏虚拟场景坐标中的坐标值,即为(0,0);x_offset和z_offset表示场景对应实际地理区域的经度跨度和纬度跨度;x_w_offset和z_w_offset分别表示游戏虚拟场景的x轴方向的宽度和y轴方向的长度;geo _x和geo _z表示场景的西南角点的真实世界经度和纬度;游戏场景中的高程值与真实世界的高程值不必转换,因此playercur.y表示角色在游戏引擎中的高度值(即Y轴的值),也就是角色在真实世界中的高度值player_height;
步骤S7:在步骤S6建立的具有真实地理意义的三维地形上添加地理要素,完成具有真实地理意义的仿真场景的建立。
在本发明实施例中,所述步骤S2中,对遥感影像和DEM中的高程数据进行预处理的软件包括ENVI、MapInfo、ERDAS和PCI软件。
在本发明实施例中,所述游戏引擎包括Unity3D、Cry Engine和 Unreal Engine引擎。
相较于现有技术,本发明具有以下有益效果:
1、本发明是以实测的DEM信息为基础,在游戏引擎中自动化地创建具有地理位置和区域大小相对准确的网格地形,所以,与利用在三维软件建立完的三维地形导入游戏引擎建立三维地形的方法相比,更加方便,而且可以避免由于软件之间的兼容性问题而产生的在游戏引擎导入的三维地形被切割为很多块的问题;
2、与利用RAW格式高度图制作三维地形的方式相比,由于本发明的方法是利用GIS软件获取实测的DEM数据,没有对高程数据进行分级量化,从而保证地形高程的准确性,并且不需要限定场景的形状大小。
附图说明
图1为本发明的总体技术实现方案。
图2为本发明一实施例技术实现方案。
图3为本发明对遥感影像和DEM数据的处理技术路线图。
图4为本发明经过“Object2Terrain.cs”转换后具有Unity3D地形系统的地形。
图5为本发明道路生成后的场景。
图6为本发明FBX文件导入到Unity3D后的建筑三维模型。
图7为本发明Unity3D中第三人称视角的仿真地理场景。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
如图1所示,一种面向虚拟应急演练的三维地理场景仿真方法,包括如下步骤,
步骤S1:获取需仿真区域的遥感影像及通过GIS软件获取DEM中的高程数据,并对需仿真区域进行实地考察或找到更大比例尺的地形图、更高精度的几何校正过的遥感影像,以获取用于配准遥感影像的特征控制点坐标;
步骤S2:对步骤S1中的遥感影像和DEM中的高程数据进行预处理:对遥感影像先配准后裁剪,对DEM中的高程数据先裁剪后重采样,以得到空间参考一致、大小匹配、空间分辨率相同的遥感影像和DEM;所述步骤S2中,对遥感影像和DEM中的高程数据进行预处理的软件包括ENVI、MapInfo、ERDAS和PCI软件;
步骤S3:以行序优先的方式读取遥感影像和DEM的行列数及分辨率信息,并以List列表文本文件的形式存储行列矩阵,存储格式为List={h1, h2, h3, …, hi, …, hn};其中,hi表示对应第i个DEM网格的高程值;读取顺序是场景西南角第一个网格点的开始为1,以行序优先的方式向东方向逐个读取各个网格点的高程值至文本文件中;
步骤S4:构建具有准确的相对地理位置的网格化三维地形,具体如下:
因DEM网格为正方形,游戏引擎中的地形网格为三角形;以Mesh来表示网格类,并以Mesh.vertices,Mesh.triangles和Mesh.uv这三个数组分别用于存储三角形网格的顶点位置、所有三角形顶点的索引和网格基础纹理坐标;并将DEM的正方形网格的中心点坐标及其高程相应转换为游戏引擎中三角形网格的顶点坐标及其高程值:
设顶点的集合为{ vertices[0], vertices[1], vertices[2], …, vertices[vertices_count]},其中每个顶点均为三维坐标,如式(1)~(5)所示:
Mesh.vertices = vertices 公式(1)
Vector3[] vertices = new Vector3[vertices_count] 公式(2)
vertices[index] = new Vector3(Xindex, Yindex, Zindex) 公式(3)
Xindex- Xindex-1 = CellSize 公式(4)
Zindex- Zindex-1 = CellSize 公式(5)
在公式(1)~(5)中,vertices[index]表示每个顶点的三维坐标数组,index为顶点的索引值,vertices_count表示顶点的个数;Mesh.vertices中的数组由三维向量数组vertices[index]组成;Xindex为经度,Yindex为高程,Zindex为纬度;在建立地形时将Z轴设为指向正北方向,沿X轴或Z轴方向相邻的两个顶点之间的距离与DEM分辨率大小相等;CellSize为DEM的分辨率大小;
Mesh.triangles是一个存储顶点数组索引的三角形列表,该数组的长度只能是3的整数倍,数组中的id和vertices数组中的顶点ID一一对应,triangle数组的表示如下:
int sum = col * row * 6 公式(6)
Mesh.triangles = triangles 公式(7)
int[] triangles = new int[sum] 公式(8)
在公式(6)~(8)中,triangles为整数型数组,sum为triangles数组的长度,row和col表示DEM的行列数,数组储存每个三角形对应的顶点索引ID值;
Mesh.uv是表示网格基础纹理坐标的二维数组,纹理的集合为{UV[0], UV[1], UV[2], …, UV[vertices_count]},UV[i]由二维向量组成;如公式(9)~(13)所示:
Mesh.vertices = UV 公式(9)
Vector2[] UV= new Vector2(VERTICES_COUNT) 公式(10)
UV [index] = new Vector2(j * v, i * u); 公式(11)
u = 1 / row 公式(12)
v = 1 / col 公式(13)
在公式(9)~(13)中,row为DEM的行数,col为DEM的列数;i, j分别表示顶点所在的DEM栅格位置的行、列号;Vector2(j * v, i * u)表示纹理的坐标数组;
步骤S5:根据上述方法将三维地形转换到游戏引擎中,使其具有三维地形层次细节管理功能;
步骤S6:将游戏引擎中的直角坐标系转换为地理坐标系,具体如下:
一般情况下应急演练的场景大小相比于地球而言可以不考虑地球曲率,故此处忽略地球曲率,所以在步骤S4建立完具有相对位置准确的地形后,定义Z轴为正北方向,将场景西南角移动到游戏坐标原点(0,0,0)位置,场景中角色的实际空间位置坐标,根据公式(14)~(16)确定:
player_x = (playercur.x – southwest.x) * x_offset / x_w_offset+ geo _x 公式(14)
player_z = (playercur.z – southwest.z) * z_offset / z_w_offset + geo_z 公式(15)
player_height = playercur.y 公式(16)
在公式(14)~(16)中,player_x, player_z和player_height分别表示角色所在位置的真实世界的经度、纬度和高程值;playercur.x和playercur.z表示角色在游戏引擎的虚拟场景中的X轴和Z轴的坐标值;(southwest.x,southwest.z)表示区域西南角点在游戏虚拟场景坐标中的坐标值,即为(0,0);x_offset和z_offset表示场景对应实际地理区域的经度跨度和纬度跨度;x_w_offset和z_w_offset分别表示游戏虚拟场景的x轴方向的宽度和y轴方向的长度;geo _x和geo _z表示场景的西南角点的真实世界经度和纬度;游戏场景中的高程值与真实世界的高程值不必转换,因此playercur.y表示角色在游戏引擎中的高度值(即Y轴的值),也就是角色在真实世界中的高度值player_height;
步骤S7:在步骤S6建立的具有真实地理意义的三维地形上添加地理要素,完成具有真实地理意义的仿真场景的建立。
所述游戏引擎包括Unity3D、Cry Engine和 Unreal Engine引擎。
以下为本发明的具体实施例。
为了便于本领域技术人员的理解,下面以利用最常用的GIS软件ArcGIS Desktop(美国ESRI公司开发)与游戏引擎Unity3D相结合,构建仿真地理场景为例,对本发明的方法步骤进行详细描述。图2是案例的技术流程图。具体实施步骤如下
1. 图3说明了在ArcGIS Desktop处理遥感影像和DEM数据的技术路线。以实地外业调查得到的GPS数据为参考控制点,利用Georeferencing工具对影像进行配准,将原本偏移的影像校正到正确的位置;将DEM数据重采样成40米分辨率。
2. 读取DEM的行列数和分辨率信息,并将高程数据导入到文本文件中。
3. 在Unity3D中应用Mesh类,根据DEM分辨率、行列数和高程数据确定网格中各个顶点的位置和网格基本纹理坐标,从而创建具有地理位置和区域大小相对准确的网格地形。
4. 利用“Object2Terrain.cs”将网格地形转换为Unity3D地形系统。利用地形编辑器进一步设置遥感影像的解译结果为地形纹理贴图。转换后得到的Unity3D地形系统具有(Level Of Detail, LOD)层次细节管理功能;结果如图4所示。
5. 将游戏引擎中的直角坐标系转换为地理坐标系。在场景不大的情况下,可以不考虑地球曲率,在Unity3D中利用UpDate( )中的方法实时获取角色的位置信息,并实时根据转换公式计算出角色所在位置的真实地理坐标和高程。
6. 对地理要素的建模,主要包括道路、河流、建筑物等。其中道路与河流利用EasyRoad3D插件进行制作,根据遥感影像解译出道路,并设置相应的路面贴图材质,需要适当地将道路模型抬高一定高度,以保证道路完全覆盖在地形表面,效果如图5所示。三维建筑模型在3DS Max2012中完成制作,3DS Max中的单位设置为厘米,将遥感影像作为底图确定每个建筑物的具体位置,对研究区中居民区、工厂、景区等进行建模。以研究区中的古堡建筑为例,在3DMax中完成三维模型后导出成FBX文件,然后再导入到Unity3D中,结果如图6所示。
7. 在具有真实地理意义的三维地形上,根据地理要素在遥感影像中的位置,将相应的地理要素模型整合进来,完成区域三维仿真地理场景的建立。图7是在Unity3D中整合所有数据后的第三人称角色的界面视图,图中右上角为场景的小地图,小地图中的红点为角色所在的位置,左上角是角色的生命值,左下角显示角色的所在的地理坐标、高程值。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (3)

1.一种面向虚拟应急演练的三维地理场景仿真方法,其特征在于:包括如下步骤,
步骤S1:获取需仿真区域的遥感影像及通过GIS软件获取DEM中的高程数据,并对需仿真区域进行实地考察或找到更大比例尺的地形图、更高精度的几何校正过的遥感影像,以获取用于配准遥感影像的特征控制点坐标;
步骤S2:对步骤S1中的遥感影像和DEM中的高程数据进行预处理:对遥感影像先配准后裁剪,对DEM中的高程数据先裁剪后重采样,以得到空间参考一致、大小匹配、空间分辨率相同的遥感影像和DEM;
步骤S3:以行序优先的方式读取遥感影像和DEM的行列数及分辨率信息,并以List列表文本文件的形式存储行列矩阵,存储格式为List={h1, h2, h3, …, hi, …, hn};其中,hi表示对应第i个DEM网格的高程值;读取顺序是场景西南角第一个网格点的开始为1,以行序优先的方式向东方向逐个读取各个网格点的高程值至文本文件中;
步骤S4:构建具有准确的相对地理位置的网格化三维地形,具体如下:
因DEM网格为正方形,游戏引擎中的地形网格为三角形;以Mesh来表示网格类,并以Mesh.vertices,Mesh.triangles和Mesh.uv这三个数组分别用于存储三角形网格的顶点位置、所有三角形顶点的索引和网格基础纹理坐标;并将DEM的正方形网格的中心点坐标及其高程相应转换为游戏引擎中三角形网格的顶点坐标及其高程值:
设顶点的集合为{ vertices[0], vertices[1], vertices[2], …, vertices[vertices_count]},其中每个顶点均为三维坐标,如式(1)~(5)所示:
Mesh.vertices = vertices 公式(1)
Vector3[] vertices = new Vector3[vertices_count] 公式(2)
vertices[index] = new Vector3(Xindex, Yindex, Zindex) 公式(3)
Xindex - Xindex-1 = CellSize 公式(4)
Zindex - Zindex-1 = CellSize 公式(5)
在公式(1)~(5)中,vertices[index]表示每个顶点的三维坐标数组,index为顶点的索引值,vertices_count表示顶点的个数;Mesh.vertices中的数组由三维向量数组vertices[index]组成;Xindex为经度,Yindex为高程,Zindex为纬度;在建立地形时将Z轴设为指向正北方向,沿X轴或Z轴方向相邻的两个顶点之间的距离与DEM分辨率大小相等;CellSize为DEM的分辨率大小;
Mesh.triangles是一个存储顶点数组索引的三角形列表,该数组的长度只能是3的整数倍,数组中的id和vertices数组中的顶点索引值index一一对应,triangles数组的表示如下:
int sum = col * row * 6 公式(6)
Mesh.triangles = triangles 公式(7)
int[] triangles = new int[sum] 公式(8)
在公式(6)~(8)中,triangles为整数型数组,sum为triangles数组的长度,row和col表示DEM的行列数,数组储存每个三角形对应的顶点索引值index;
Mesh.uv是表示网格基础纹理坐标的二维数组,纹理的集合为{UV[0], UV[1], UV[2],…, UV[vertices_count]},UV[i]由二维向量组成;如公式(9)~(13)所示:
Mesh. uv = UV 公式(9)
Vector2[] UV= new Vector2 [vertices_count] 公式(10)
UV [index] = new Vector2(j * v, i * u); 公式(11)
u = 1 / row 公式(12)
v = 1 / col 公式(13)
在公式(9)~(13)中,row为DEM的行数,col为DEM的列数;i, j分别表示顶点所在的DEM网格位置的行、列号;Vector2(j * v, i * u)表示纹理的坐标数组;
步骤S5:根据上述方法将三维地形转换到游戏引擎中,使其具有三维地形层次细节管理功能;
步骤S6:将游戏引擎中的直角坐标系转换为地理坐标系,具体如下:
一般情况下应急演练的场景大小相比于地球而言可以不考虑地球曲率,故此处忽略地球曲率,所以在步骤S4建立完具有相对位置准确的地形后,定义Z轴为正北方向,将场景西南角移动到游戏坐标原点(0,0,0)位置,场景中角色的实际空间位置坐标,根据公式(14)~(16)确定:
player_x = (playercur.x – southwest.x) * x_offset / x_w_offset+ geo _x 公式(14)
player_z = (playercur.z – southwest.z) * z_offset / z_w_offset + geo _z 公式(15)
player_height = playercur.y 公式(16)
在公式(14)~(16)中,player_x, player_z和player_height分别表示角色所在位置的真实世界的经度、纬度和高程值;playercur.x和playercur.z表示角色在游戏引擎的虚拟场景中的X轴和Z轴的坐标值;(southwest.x,southwest.z)表示区域西南角点在游戏虚拟场景坐标中的坐标值,即为(0,0);x_offset和z_offset表示场景对应实际地理区域的经度跨度和纬度跨度;x_w_offset和z_w_offset分别表示游戏虚拟场景的x轴方向的宽度和y轴方向的长度;geo _x和geo _z表示场景的西南角点的真实世界经度和纬度;游戏场景中的高程值与真实世界的高程值不必转换,因此playercur.y表示角色在游戏引擎中的高度值,也就是角色在真实世界中的高度值player_height;
步骤S7:在步骤S6建立的具有真实地理意义的三维地形上添加地理要素,完成具有真实地理意义的仿真场景的建立。
2.根据权利要求1所述的一种面向虚拟应急演练的三维地理场景仿真方法,其特征在于:所述步骤S2中,对遥感影像和DEM中的高程数据进行预处理的软件包括ENVI、MapInfo、ERDAS和PCI软件。
3.根据权利要求1所述的一种面向虚拟应急演练的三维地理场景仿真方法,其特征在于:所述游戏引擎包括Unity3D、Cry Engine和 Unreal Engine引擎。
CN201410551640.1A 2014-10-17 2014-10-17 一种面向虚拟应急演练的三维地理场景仿真方法 Active CN104318617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410551640.1A CN104318617B (zh) 2014-10-17 2014-10-17 一种面向虚拟应急演练的三维地理场景仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410551640.1A CN104318617B (zh) 2014-10-17 2014-10-17 一种面向虚拟应急演练的三维地理场景仿真方法

Publications (2)

Publication Number Publication Date
CN104318617A CN104318617A (zh) 2015-01-28
CN104318617B true CN104318617B (zh) 2017-03-08

Family

ID=52373843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410551640.1A Active CN104318617B (zh) 2014-10-17 2014-10-17 一种面向虚拟应急演练的三维地理场景仿真方法

Country Status (1)

Country Link
CN (1) CN104318617B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045970B (zh) * 2015-07-01 2019-01-25 国家电网公司 基于Unity动态生成三维场景的仿真系统及其实现方法
CN106371603A (zh) * 2016-09-18 2017-02-01 成都动鱼数码科技有限公司 基于位置服务和增强现实技术的角色定位捕捉方法
CN106709994B (zh) * 2017-01-22 2020-10-09 北京航空航天大学 面向航空消防训练的森林火灾三维视景的构建方法
CN106875483A (zh) * 2017-01-26 2017-06-20 北京航空航天大学 一种直升机地震救援仿真场景模块化构建方法和系统
CN106898045B (zh) * 2017-02-24 2020-02-07 郑州大学 一种基于sgog瓦块的大区域真三维地理场景自适应构建方法
CN107133295B (zh) * 2017-04-26 2020-08-07 航天科技控股集团股份有限公司 一种基于记录仪管理平台的加速逆地址解析方法及装置
CN107358649B (zh) * 2017-06-07 2020-11-10 腾讯科技(深圳)有限公司 地形文件的处理方法和装置
CN107564058B (zh) * 2017-08-30 2019-12-31 网易(杭州)网络有限公司 对象位置显示方法及装置
CN107610233A (zh) * 2017-09-15 2018-01-19 中国人民解放军63816部队 一种基于实景的仿真场景构建方法
CN107909538B (zh) * 2017-12-07 2021-05-25 北京像素软件科技股份有限公司 地形数据处理方法及装置
CN109214076B (zh) * 2018-08-28 2022-11-04 太原理工大学 一种支撑综采工作面地理环境及装备的虚拟规划方法
CN111540046B (zh) * 2018-12-27 2023-11-10 北京国网富达科技发展有限责任公司 一种基于虚拟现实的输电通道仿真方法
CN111383349B (zh) * 2018-12-27 2023-09-29 珠海金山数字网络科技有限公司 一种地形场景编辑方法及装置、计算设备及存储介质
CN110196717A (zh) * 2019-06-22 2019-09-03 中国地质大学(北京) 一种Web3D网络交流平台及其建设方法
CN110384926B (zh) * 2019-07-26 2023-05-16 网易(杭州)网络有限公司 位置确定方法及装置
CN112037122A (zh) * 2020-08-31 2020-12-04 四川易利数字城市科技有限公司 一种在游戏引擎中使用地理坐标的方法
CN112286518B (zh) * 2020-12-15 2021-04-13 成都四方伟业软件股份有限公司 一种3d可视化自动化场景构建方法及系统
CN112559665A (zh) * 2020-12-18 2021-03-26 中科三清科技有限公司 空气质量模式预报数据可视化方法及装置
CN112749244A (zh) * 2020-12-30 2021-05-04 苏州美房云客软件科技股份有限公司 基于虚幻引擎的数字孪生城市空间坐标系实现方法、装置及存储介质
CN113750516A (zh) * 2021-08-27 2021-12-07 广州市城市规划勘测设计研究院 一种在游戏引擎中实现三维gis数据加载方法、系统及设备
CN113838199B (zh) * 2021-09-22 2023-07-11 中北大学 一种三维地形生成方法
CN116843843B (zh) * 2023-03-14 2024-08-27 南京宇天智云仿真技术有限公司 一种行军道路沿线三维场景仿真方法
CN115983162B (zh) * 2023-03-20 2023-06-20 水利部珠江水利委员会水文局 一种基于数字孪生的流域建模方法
CN117695633B (zh) * 2023-12-18 2024-05-28 广西壮族自治区地图院 基于游戏引擎与gis三维引擎的同步匹配方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970920A (zh) * 2013-02-05 2014-08-06 周柏贾 地震应急演练虚拟仿真系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8260590B2 (en) * 2009-04-29 2012-09-04 Honeywell International Inc. Method and system for modeling three-dimensional smoke propagation animation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970920A (zh) * 2013-02-05 2014-08-06 周柏贾 地震应急演练虚拟仿真系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Scenario Description for Multi-Agent Simulation;Yohei Murakami等;《Proceedings of the second international joint conference on Autonomous agents and multiagent systems》;20030718;第369-376页 *
Simulation of Emergency Evacuation in Virtual Reality;Ren Aizhu等;《TsingHua science and technology》;20081031;第13卷(第5期);第674-680页 *
The management of a simulated emergency: Better teamwork, better performance;Dimitrios Siassakos等;《Resuscitation》;20110228;第82卷(第2期);第203-206页 *
地震救援演练仿真系统的研究;王杨等;《计算机仿真》;20130131;第30卷(第1期);第404-408页 *
基于GIS的井喷事故可视化应急演练系统的研究与实现;刘骞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110815(第08期);第18-82页 *

Also Published As

Publication number Publication date
CN104318617A (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
CN104318617B (zh) 一种面向虚拟应急演练的三维地理场景仿真方法
CN104766366B (zh) 一种三维虚拟现实演示的建立方法
CN104835202A (zh) 一种三维虚拟场景快速构建方法
CN103065361A (zh) 三维海岛沙盘实现方法
CN101763657A (zh) 一种用于视频制作的三维地形的显示方法
CN103971414A (zh) 一种可视化真三维图的制作方法及系统
CN106355643A (zh) 一种高速公路三维实景道路模型的生成方法
CN110288709A (zh) 野外地质三维综合信息平台及其数据集成与可视化方法
Tobiáš et al. Rapid reconstruction of historical urban landscape: The surroundings of Czech chateaux and castles
Khayyal et al. Creation and spatial analysis of 3D city modeling based on GIS data
Mel et al. Workflows for virtual reality visualisation and navigation scenarios in earth sciences
CN111831778A (zh) 一种三维地理信息系统快速集成展现的方法
Buyukdemircioglu et al. Development of a smart city concept in virtual reality environment
Litwin et al. Improving the Perception in Urban Planning by 3D Modelling and 3D Visualization
US11112264B2 (en) System and method for rendering an overpass object using map and link data
JP3940834B2 (ja) 数値地図情報データを用いた解析作業支援cae装置
Zhang Development of virtual campus system based on ArcGIS
Senyurdusev et al. Exploring the opportunities of open source data use in creation 3d procedural city models
Dinkov Generation of 3D panoramic map for tourism management applications
Efren et al. Procedural Placement of Existing Building Models in Virtual Cities
Ifatimehin et al. Attributes of topographic mapping of a fast urbanising area in Nigeria, using remote sensing and GIS
Punia et al. Three dimensional modelling and rural landscape geo-visualization using geo-spatial science and technology
Sadek et al. The Design and Development of a Virtual 3D City Model
Chandramouli et al. Design and implementation of GIS virtual learning environments for interactive visualization using desktop virtual reality (VR) & iSpace
Beattie 3D visualization models as a tool for reconstructing the historical landscape of the Ballona Creek watershed

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant