基于CityGML的三维模型转换与可视化研究

2014-06-26 07:39吴王润刘坡吴堑虹
城市勘测 2014年1期
关键词:插件浏览器语义

吴王润 ,刘坡,吴堑虹

(1.中南大学地球科学与信息物理学院,湖南 长沙 410000; 2.中国科学院遥感与数字地球研究所,北京 100010)

1 引 言

传统的三维城市模型大多是纯几何模型,忽略了语义和拓扑层面,仅用于可视化,对专题查询、分析或空间数据挖掘等支持较差,可重用性有限[1]。CityGML 作为一种三维城市模型的数据存储和交换格式,已经成为一种国际标准,它具有较强的表达、检索和共享三维地理信息的能力,极大地促进了三维地理信息的发展[2]。在国外,随着CityGML 使用的日益增加和成熟,很多城市使用CityGML 作为三维城市建模的格式,如斯图尔特、波恩和柏林。相关学者对CityGML 展开了一系列的研究,如标准的制定、模型的生成、可视化与存储、模型简化等。在国内,目前的研究主要侧重于CityGML 标准的引进、建模方法的介绍、数据查询和可视化,具体的应用案例比较少。CityGML 目前转换方式主要有:FME[3,4],Libcitygml[3],3D City Database Import/Export[5]。本文对相关转换软件进行了总结及分析比较。另外,由于CityGML 是一种存储模型,在可视化方面没有做优化[4],随着HTML5 的出现,浏览器的功能越来越强大,如何将CityGML 数据在浏览器中有效的可视化表达也是一个值得研究的问题。

本文的主要研究内容:①CityGML 格式与特性的研究;②比较分析现有的转换软件及方法,将目前的三维模型转换为CityGML 实现模型的存储与共享;③探讨CityGML 模型在浏览器中的可视化方法。

2 基于CityGML 格式的转换与可视化

2.1 CityGML 三维模型格式

CityGML 是一个开放数据模型,采用XML 作为虚拟三维城市模型存储和交换的数据格式。CityGML 数据模型覆盖了城市对象的几何、语义、拓扑、外观各个方面,具有5 种不同的细节层次描述及专题模块,每个模块均有其属性及相应的描述方法,可根据具体的应用,将理论扩展模型进行任意组合并最终与核心模型连接起来,这给不同应用需求的用户的使用带来了极大地便利,提高了使用的灵活性。

与传统的三维模型相比,CityGML 有其独有的优势与特性:

(1)5 层LOD 模型;对同一物体进行多层次细节的描述。

(2)语义/几何一体化;同一物体在语义和几何层面的描述一致化,如:一个房子有一扇门,则在几何表述上一个房子包含一扇门。

(3)模块化;CityGML 对虚拟城市三维模型中大多重要类型进行了分类定义,根据特别的信息数据选用结构中相应的子集。2012年4月推出的CityGML2.0,包括一个核心模块CityGML Core 及13 个专题拓展模块[7]。

(4)可扩展性;CityGML 提供扩展机制,可针对不同应用领域进行扩展,包括对现有模块定义新属性以及新对象模型的定义,实现在CityGML 框架下的统一建模和信息共享。

CityGML 用 CityModel 表示模型的根节点。CityGML 中每个对象对应一个具有完整的模型结构的CityObjectMember。不含语义信息的模型向CityGML转换通常采用Generic 专题进行存储。面信息用gml:SurfaceMember 标签表示,主要包括多边形面标签gml:Polygon 及线环gml:LinearRing。纹理信息存于app:appearance 的app:surfaceDataMember 中,包括纹理文件及光源信息。

2.2 转换方法及软件比较

目前CityGML 文件转换的方法主要由一些软件及开源的插件支持,如:LandXplorer、FME、FZKViewer、Aristoteles3D、The 3D City Database Importer/Exporter

(以下简称CDIE)、Libcitygml、CityGML Building Export Plugin for SketchUp(以下简称CBEP)等。表1从软件的推出机构、支持转换为CityGML 的格式、CityGML 转换输出的格式和主要特点方面进行比较,满足不同用户和应用的需求。

表1 常用的模型转换软件的比较

从表1可以看出,主要有以下几个特点:①软件格式支持方面:FME 是专业转换软件,支持的格式较多,而其他的软件支持相当较少,开源库需要自定义转换开发;②支持LOD 方面:目前FME、LandXplorer 和CBEP软件都支持LOD 分级存储;③支持数据库方面:LandXplorer 支持Oracle 和ArcSDE,CDIE 支持Oracle 或者PostGIS;④支持Shp 文件:目前LandXplorer 和FME 软件都支持,可以将大量矢量属性数据保留下来,减少语义信息的丢失。⑤可扩展性:相关专业软件,扩展能力较弱,开源软件扩展能力强,需要大量的开发。

另外,大多数软件仅支持几何变换,保证外观特征一致,语义信息很少能做到完整有效的保留。而对于CityGML 来说,语义信息的保留、编辑与存储尤为重要。目前LandXplorer 支持语义编辑,CBEP 只支持建筑物语义编辑,FME 不支持编辑,但支持自定义的语义转换。直接编辑在此就不加赘述,FME 可采用图1方式达到语义转换的目的。以建筑为例,将建筑物各部分拆分至CityGML 标准对应的专题类型,采用自定义的模块CityGMLGeometryCreator 用于CityGML 的几何创建,包括选择几何类型、创建FeatureID、设置LOD、控制几何属性、创建gml_id 等。将输出与AttributeCreator 函数连接,设置citygml_feature_role 与gml_parent_id,同时可加上自己定义的属性值,达到语义转换的目的。

图1 传统模型转换至CityGML 的处理流程图

综上可得出:FME 适用于大多情况下的格式转换,包括语义及LOD 等的支持;LandXplorer 编辑功能较为强大;Aristoteles3D、FZKViewer 更倾向于作为浏览器使用;CDIE 用于CityGML 存储较为合适;CBEP 适合对建筑物的编辑;Libcitygml 扩展性好,适宜开发工作者对CityGML的解析转换。用户应根据不同的应用和自身的开发实力,选择合适的软件和工具来进行相关的转换工作。

2.3 可视化

CityGML 的可视化表达有三种模式:①使用桌面浏览器,如FZKViewer、Aristoteles3D 等。这种方法可视化简单易实现,效果较好,可漫游,具备简单查询功能,但相对可移植性差、无法集成和开发。②利用citygml4j 类库或底层图形类库OpenGL、Direct3D 等开发自己的浏览器[11,12],采用这种方法的缺陷在于工作量大且CityGML 格式在直接可视化方面支持不足[13]。③将CityGML 转至较为有效的可视化格式如VRML、X3D 等在浏览器中可视化。这种方法较为简单且随着三维GIS 向着网络化和分布式的发展,利用普通的浏览器进行三维模型的可视化将是一个重要的方向。

Web 上的3D 图形可视化有众多方式,如Flash,O3D,java3D 等,这些方式均需要使用特定的浏览器且安装插件。所有的插件支持方式都存在安全性、操作系统不兼容以及开发人员不易开发的缺陷。WebGL 绘图标准将JavaScript 与OpenGL ES 2.0 结合,在HTML5 的Canvas 元素中提供GPU 加速功能,解决了现有Web 交互式三维动画的两个问题:①Web 交互式三维动画的制作是通过HTML 脚本本身,所以无需任何浏览器插件支持。②采用统一标准且跨平台的OpenGL 接口实现底层的图形硬件加速进行的图形渲染[14]。

图2 CityGML 属性保存至XML 处理流程图

HTML5 的3D 技术需要通过X3D 来实现。CityGML 转换至X3D 过程中,语义信息的保留可以通过以下两种方式:①使用CDIE 将CityGML 文件存于数据库,CDIE 软件开源且具有CityGML 存储的解决方案,用户可自行建立关联,在转换至X3D 后通过SQL查询得到语义信息。②在转换过程中采用XML 存储语义信息,如图2所示。在实际应用当中,以LOD3 建筑物为例,虽模型本身存储格式并不包含语义信息,但可通过编程同步X3D 文件与XML 文件中的ID,自定义拓扑关系规则,以保证几何结构所对应的属性信息的不丢失,同时也可为项目的应用分析提供支持。

3 案例分析

本文实验案例以SKP 为输入模型,首先进行CityGML 的转换,然后转换至X3D,最后将其使用X3DOM 框架可视化在支持HTML5 的浏览器中。实验采用浙江嘉兴嘉善县丁香花园小区的一栋房屋为例,原始的数据为SKP 格式,采用FME Desktop 2013 进行转换,X3D-Edit 构建X3DOM 框架。

图3 三维模型向CityGML 转换

原始模型如图3(a)所示,转换方法如2.2 节所述,转换后的CityGML 标准模型如图3(b)所示,在Browser Toolbar 栏可以看到模型已经分为窗户、门等专题。由于不同软件的环境光照的不同,小区显示明暗程度有所不同,但不影响数据整体显示的效果。整个转换除去光照效果,模型的几何结构及纹理信息均保持完好。对于光照问题可采用将相关的光照及阴影信息直接渲染到纹理上,以便更好还原原始模型显示效果。

CityGML 转至X3D 默认背景颜色为黑色,在X3D- Editor 中添加Background 节点并将模型嵌入X3DOM 框架后可实现无插件浏览器可视化且便于开发者开发。由于X3D 模型本身不带语义。本实验在模型转换过程中采用2.3 节所述方式使用XML 存储语义信息,在具体项目应用时,用户可利用X3DOM 的射线相交得到图形ID,并与XML 相连,通过HTML5的开发对图形属性进行查询分析等操作。最终模型的显示效果如图4所示。

图4 X3D 文件在浏览器中显示

4 结 语

本文针对CityGML 格式转换及可视化问题,分析了CityGML 的文件结构,总结并比较现有模型转换软件且提出了可行的转换方法,最后探讨了CityGML 在浏览器中可视化及案例验证。通过本文的研究,可以为相关的三维模型制作单位和研究人员提供一定的参考。

[1]柳翠明.三维城市模型CityGML 初探[J].城市勘测,2010(zl):5 ~7,42.

[2]陈引川.对城市地理标记语言(CityGML)的探讨[J].测绘科学,2009,34(5):145 ~146,135.

[3]Gröger G,Plümer L.CityGML -Interoperable semantic 3D city models[J].ISPRS Journal of Photogrammetry and Remote Sensing,2012,71:12 ~33.

[4]孙小涛.基于CityGML 的城市三维建模和共享研究[D].重庆:重庆师范大学,2011.

[5]胡波.基于CityGML 三维城市模型的语义查询与共享研究[D].重庆:重庆师范大学,2012.

[6]Thomas H.Kolbe.Representing and Exchanging 3D City Models with CityGML[M].Berlin:Springer Berlin Heidelberg,2009.

[7]Gröger G,Thomas H.Kolbe,Angela Czerwinski,et al.City Geography Markup Language(CityGML)Encoding Standard[EB/OL].http://www.opengeospatial.org/standards/citygml,2012 -4 -4.

[8]Gerhard Juen,Ulrich Kaiser.CityGML - Toolchain[EB/OL].http://www.citygml.de,2013.

[9]Thomas H.Kolbe,König G,Claus Nagel,et al.3D -Geo -Database for CityGML[EB/OL].http://www.3dcitydb.net,2009.

[10]张帆.三维城市环境下语义信息可视化之注记配置研究[D].武汉:武汉理工大学,2012.

[11]王志红,张晓东,韩立钦等.CityGML 三维建模及其应用研究[J].矿山测量,2012,(3):26 ~29.

[12]许娇龙,李军,景宁等.基于CityGML 的三维城市模型实时可视化研究[J].系统仿真学报,2012,(6):1243 ~1246.

[13]Prieto I,Izkara J L,Delgado del H,et al.Efficient Visualization of the Geometric Information of CityGML:Application for the Documentation of Built Heritage[M].Berlin:Springer Berlin Heidelberg,2012:529 ~544.

[14]Behr J,Eschler P,Jung Y,et al.X3DOM -A DOM -based HTML5/X3D Integration Model[J].Web3D '09 Proceedings of the 14th International Conference on 3D Web Technology,2009:127 ~135.

猜你喜欢
插件浏览器语义
语言与语义
自编插件完善App Inventor与乐高机器人通信
反浏览器指纹追踪
基于jQUerY的自定义插件开发
“上”与“下”语义的不对称性及其认知阐释
环球浏览器
基于Revit MEP的插件制作探讨
认知范畴模糊与语义模糊
语义分析与汉俄副名组合
插件体系结构软件的原理和实现