基于时间序列的三维模型管理方法研究与实现
2017-07-07翟林杨辉
翟林,杨辉
(1.天津市测绘院,天津 300381; 2.武汉大学资源与环境科学学院,湖北 武汉 430079)
基于时间序列的三维模型管理方法研究与实现
翟林1*,杨辉2
(1.天津市测绘院,天津 300381; 2.武汉大学资源与环境科学学院,湖北 武汉 430079)
城市的三维可视化数据作为信息化的基础数据,能够直观地展示城市的原貌,不同时期的三维模型记录了城市的历史变迁。本文针对目前三维历史数据管理较弱的现状,阐述了基于三维模型分层、分区和分级组织方式,设计了“二级更新”和分层、分区更新机制,建立了索引机制,采用了基于时间序列的三维模型管理方法,并基于OSG进行了功能实现,很好地解决了浏览历史三维场景的难题。
三维可视化;历史数据;二级更新;索引机制;时间序列
1 引 言
随着信息技术的不断发展,三维虚拟仿真技术在城市管理和人民生活中得到广泛的应用,现代城市已经进入数字化、信息化时代,城市的三维可视化数据作为信息化的基础数据,能够直观地展示城市的原貌。不同时期的三维模型记录了城市的历史变迁,为城市规划管理提供生动、直观、全面的辅助决策支持,因此有效的管理和展示历史三维模型数据具有重要意义。
2 三维模型数据组织方式
目前,比较主流的三维软件SkyLine、OpenSceneGraph、ArcGIS等都支持以文件方式存储和管理三维数据,因此本文主要讨论基于文件存储方式的三维数据管理。采用文件方式进行管理[3],是指把单个三维模型或者某一区域中的多个三维模型存储在一个模型文件中,模型文件不借助其他数据库系统直接在物理存储器上储存。例如OpenSceneGraph平台,三维模型的几何数据存储在*.ive文件中,纹理作为独立的图片文件进行存储,几何数据和纹理分开存储。
数据组织方式直接影响三维场景的加载速度与渲染效果,高效合理的场景组织方式可以大大提高场景的渲染效率,提高渲染帧率[1]。三维模型数据组织方式从以下3个方面进行组织:模型分层组织、模型分区组织与模型分级组织。
2.1 三维模型分层组织
由于城市三维模型涉及的三维场景非常复杂,因此必须对其进行合理分层。根据数字城市三维模型的形态、分布、数据特征,可将其划分为三维建筑模型、三维地形模型(主要包括景观模型、桥梁模型、树木模型、小品模型及水系模型等场景)、城市规划设计模型、地下管线模型等,它们包含的城市实体分别如下:
(1)三维建筑模型:反映了建筑物外形详细特征,主要包括建(构)筑物主体及其附属物,描述了街区建筑物的空间位置、高度、外观结构、空间形态、立面色彩。
(2)三维地形模型:反映了建模区域地形地貌特征,主要包括:①地形:地块、道路、堤岸、绿地、绿化带等;桥梁:②跨河域桥梁、城市立交桥、人行天桥等;③树木:独立树、保护树、行道树等各类树木;④水系:河流、湖泊、水塘、沟渠、水库、喷泉等。
(3)城市设计模型:反映了城市规划的体块模型,主要包括体块的位置、高度、外形等特征。
(4)地下管线模型:主要包括给水、热力、电力、燃气、排水等管线和管井模型。
依据以上模型分层标准,首先可实现三维场景的分层管理与控制;其次可以实现各层在三维场景中的调度范围控制,达到较为合理的调度效果;最后可方便实现三维特效,如风效的实现。
2.2 三维模型分区组织
对于大范围的数字城市三维模型的制作,必须确定合理的模型制作粒度,传统有两种划分方法:单体对象模型划分制作与区域划分制作。
区域划分制作可以弥补单体划分制作在大范围调度时,磁盘I/O操作频率剧增,场景遍历更新、裁剪、绘制的周期成倍增加,调度加载速度减慢,绘制帧频迅速下降的不足,同时可以方便实现对大范围三维模型数据的管理。但相对于单体模型划分制作,其单个文件的数据量是较大,因此必须同时考虑对模型实行分级制作与分级调度加载。
(1)建筑模型分区原则
为了避免单个文件数据量过大,对建筑数据进行细分,分区原则:建筑体框、建筑物精细模型两层数据按照 1∶2 000图幅分成16等分,每一块对应一个模型文件。分区时保持单体建筑的独立性与唯一性。建筑的十六区排列顺序如图1所示:
12345678910111213141516
图1 建筑的十六区排列顺序
(2)其他数据分区原则
正射影像、规划数据、地形面、树木、独立树木、桥、灯、牌、小品、水面等数据按照 1∶2 000图幅分成4等分,每一区对应一个模型文件。地形的四区排列顺序如图2所示:
1234
图2 地形的四区排列顺序
2.3 三维模型分级组织
对于大场景三维模型的绘制,必须权衡其视觉效果与模型数据量的关系。如果将大范围精细的三维模型进行调度,由于内存大小及应用程序内存寻址空间的限制会导致调度的范围较小。要突破内存对大场景调度的限制必须应用分页细节层次模型技术(PagedLOD),将最精细的三维模型通过纹理压缩与简化减面的方法[4],制作多级别的LOD(level of detail,细节层次)模型。传统的LOD模型制作有两种方式,分述如下。
(1)模型自身含有多个细节层次,各层次随着视点的改变切换显示。该方式可以实现LOD效果,降低显卡的负荷,但由于此方式是将多个细节层次模型集成在一个模型内,因此无法降低内存的消耗。
(2)将模型制作成多个不同细节的文件,通过程序来实现LOD效果。该方式是将不同的细节层次模型单独制作成模型文件,例如把一些不重要的图元(顶点、边、三角形)从模型中移去,在不严重损失物体视觉特征的前提下对物体的网格模型进行简化,通过程序实现动态LOD即分页细节层次模型,不但可实现模型随视点的变化进行细节层次的切换,更能实现模型随视点的改变而动态加载和卸载,从而降低内存的消耗,提高场景的调度范围。
一般情况下三维模型需分为三级LOD:第三级(LOD3)为精细模型,即只对文件内的单个物体进行拆分,不进行纹理压缩,其可视距离不宜大于 800 m;第二级(LOD2)为中等模型,即在第三级的基础上将纹理进行压缩,一般为原始尺寸的1/2或1/4,可视距离根据模型种类的不同视情况设置,建筑一般不大于 2 000 m,地面和道路可适当增加;第一级(LOD1)为一般模型,即在第三级的基础上将纹理压缩为原始尺寸的1/8或1/16,建筑的可视距离一般不大于 3 500 m,地面和道路的可视距离宜根据整个区域的大小决定。
3 基于时间序列的三维模型更新
3.1 模型更新机制
三维数据的现势性是衡量其使用价值的重要标准,因此要求三维数据及时更新。本文提出“进度式”数据更新方式,数据更新依据项目建设进展时间序列进行更新,如图3所示。
三维模型实行“二级更新”机制,即“设计方案—建模;项目竣工—更新”。在项目设计方案阶段,根据项目设计图进行三维建模,录入到数据库中;项目建设完成后,根据实测情况进行三维模型的更新,然后录入到数据库中,更新流程为:①首先利用实测地形图数据、通过外业采集建筑物的平面位置坐标及建筑高程数据,确定建筑物的平面位置及高度信息;②对二维数据进行整理,在3ds Max中建立城市三维模型数据的体块模型数据;③利用外业采集建筑物的侧面纹理,进行城市三维模型数据的纹理贴图,实现三维数据的更新。
图3 “二级更新”机制示意图
3.2 增量模型更新组织方式
由于区域内项目不断增加、基础设施如道路、绿化等不断建设,因此场景变化较快,想要保持三维数据的现势性,需要提高三维数据更新频率。传统的三维模型更新方式采用全区域更新方式,其缺点为:①更新周期较长,导致三维数据的现势性较弱;②数据量较大,占用存储空间。
本文提出根据区域内项目的建设进展情况进行三维数据增量更新,更新方式采用分层、分区更新,增量更新的数据组织以时间序列进行存储。
(1)分层更新
增量模型的分层方式与原始三维数据组织方式保持一致,即按照地形、建筑、道路等进行增量模型的组织。
(2)分区更新
按照本文2.2节中所划分的区域,进行增量模型的组织,对于该区域内有项目新增或建成,则更新整个区域。
采取三维数据增量更新,分层、分区的增量组织方式的优点:
①更新模型数量较少,不需要全区更新,更新周期快。
②后期只存储模型增量,数据量小,节省存储空间。
③以时间序列存储,可直观地查看数据更新记录,便于展示区域历史变迁。
3.3 三维模型文件索引
三维模型以文件的形式存储,因此需要建立文件索引,便于数据的管理和加载。模型数据文件存放在若干不同的逻辑物理位置中,通过建文件索记录文件信息所在的逻辑存储位置,在系统加载模型时通过文件索引获取三维模式的存储位置,读取模型文件进而在系统中显示[5]。
增量模型按照更新时间序列进行存储,例如2016年1月10日更新的模型,文件组织方式如图4所示:
图4 增量模型文件组织方式
建立文件索引需要构建现状信息表和历史信息表,其数据结构如表1、表2所示:
现状信息表 表1
历史信息表 表2
4 基于时间序列的三维模型管理实现
4.1 OpenSceneGraph(OSG)
OSG是一个开源的三维引擎,被广泛应用于可视化仿真、虚拟现实、科学计算、三维重建、地理信息等领域。OSG采用标准C++和OpenGL编写而成,可运行在所有的Windows平台、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD操作系统。OSG在各个行业均有着丰富的扩展,能够与使用OpenGL书写的引擎无缝结合,使用国际上最先进的图形渲染技术,让每个用户都能站在巨人的肩上[7]。
本文在基于OSG平台研发的三维数字城市信息管理平台基础之上,加入三维模型管理模块,实现三维数据的管理和历史展示及对比等功能,如图5所示。
图5 三维数字城市信息管理平台
4.2 模型更新流程
三维模型的更新流程如图6所示,首先构建初始三维模型库,根据初始模型的图层分类、区域划分和物理存储位置生产初始现状信息表;其次,制作增量模型,根据增量模型更新现状信息表和历史库信息表;最后,读取现状信息表,加载三维模型。
图6 模型更新流程
4.3 获取指定时间的三维场景
通过建立三维数据索引便可进行查看指定时间的三维场景,对于任意指定的历史时间T,需要分别在现状和历史空间信息库中检索出符合时间逻辑关系的对象数据。在现状信息表中,按式(1)进行检索:
Tt (1) 其中Tt为现状空间信息表中的日期数据项的数据,而在历史信息表中,按式(2)进行检索: Tq (2) 其中Tq、Th分别为历史表中变化前日期和变化后日期数据项的数据。经过上述的检索操作,便可查找出在指定时间T有效的全部三维模型,然后根据图层划分加载到指定的图层下获取指定时间的三维场景。 随着城市的不断发展,城市的面貌日新月异,因此需要引入一种有效的三维场景更新机制,既能保证三维场景的现势性,又能有效存储和回溯历史场景。本文阐述了三维数据分层、分区和分级的数据组织方式,设计了“二级更新”和分层、分区更新机制,有效保证了三维场景的现实性,建立了三维数据索引,便于利用三维场景查看城市的历史变迁,基于OSG进行了功能实现和应用。 本文提出的三维模型管理方法是基于文件存储方式基础之上的,存在一定的局限性,因此下一步研究实现对数据库管理方式的三维数据管理。 [1] 邓世军,王永杰,窦华成等. 数据分页技术的海量三维数据模型动态调度[J]. 测绘科学,2013,38(4). [2] 朱国敏,马照亭,孙隆祥等. 城市三维地理信息系统中海量数据的数据库组织与管理[J]. 测绘科学,2008,33(1):238~240. [3] 孙卡,程小宁,秦雯. 支持海量三维空间数据存储的文件结构[J]. 南昌航空大学学报·自然科学版[J],2012,21(3).[4] 殷宏,许继恒,张睿等. 保持属性特征的模型简化算法[J]. 计算机应用研究,2009,26(10):3633~3634. [5] 梁建国,李峰. 城市三维GIS中的海量数据组织方法[J]. 测绘科学,2012,37(6). [6] 卢克,谢夜玉,黄鹄. 时空数据模型在行政区划数据管理中的应用[J]. 地理空间信息,2008,6(6). [7] 冯琰,郭容寰,汪旻琦等. 三维城市模型数据组织与管理方法研究[J]. 测绘科学,2011,36(1). Research and Implementation of Three-dimensional Model Management Method Based on Time Series Zhai Lin1,Yang Hui2 (1.Tianjin Institute of Surveying and Mapping,Tianjin 300381,China; 2.School of Resource and Environment SciencesWuhan Univercity,Wuhan 430079,China) The three-dimensional visualization data of city as the basic data of information,can display the original appearance of the city intuitively. The three-dimensional model of different period records the historical vicissitude of the city. Based on the current situation of the weak management of three-dimensional historical data,this paper expounds organization of three-dimensional model by layer region and classification,designs two-level updating and hierarchical and zoning update mechanism,and builds an indexing mechanism based on time series. Use the method of three-dimensional model management based on time Series. Implement this method based on the OSG. This method solves the problem of browsing the history of three-dimensional scene,and has certain research significance. three-dimensional visualization;historical data;two-level updating;index mechanism;time series 1672-8262(2017)03-27-04 P208.1 A 2016—11—10 翟林(1986—),男,工程师,硕士,主要从事地理信息系统开发及工程应用工作。 国家自然科技基金项目(41571395)5 总 结