城市三维景观可视化研究与应用
hanni07
hanni07 Lv.4
2015年05月29日 14:51:07
只看楼主

  摘 要:概述了城市三维景观可视化的过程及关键技术,给出了一个基于两种流行3DAPI的系统框架,讨论了基于网络的城市三维景观发布技术,并提供了一个城市三维景观实例系统M3DView。  关键词:三维可视化;数码城市;  1 引言  城市三维景观系统也称作城市三维地理信息系统(ThreeDimensionaiUrbanGeographicInformationSystem,3DUGIS)是指能对城市区域内空间对象进行真三维描述和分析的GIS系统,是一个可视现实和虚拟现实集成的系统。它可广泛应用于城市规划、住宅小区综合管理、市政管理、公共交通、环境保护、资源调查、区域开发规划、旅游等多种领域。




  摘 要:概述了城市三维景观可视化的过程及关键技术,给出了一个基于两种流行3DAPI的系统框架,讨论了基于网络的城市三维景观发布技术,并提供了一个城市三维景观实例系统M3DView。

  关键词:三维可视化;数码城市;

  1 引言

  城市三维景观系统也称作城市三维地理信息系统(ThreeDimensionaiUrbanGeographicInformationSystem,3DUGIS)是指能对城市区域内空间对象进行真三维描述和分析的GIS系统,是一个可视现实和虚拟现实集成的系统。它可广泛应用于城市规划、住宅小区综合管理、市政管理、公共交通、环境保护、资源调查、区域开发规划、旅游等多种领域。

  近年来,随着数字城市的提出、研究、发展,作为数字城市基础的数字城市景观模型,简称数码城市(CyberCity),它在城市规划、设施管理、电信与旅游应用等方面的优势为人们所关注。另一方面,随着真实感计算机图形显示技术的发展和硬件的快速发展,为人们描述现实中的三维世界提供了很大的方便和可能性。这些使得城市三维景观系统的理论、应用研究成为了目前国际上GIS及其相关学科研究的热点,有关这方面的实践也已经展开。近年来,武汉中地信息工程有限公司基于原有的二维GIS和地形模拟研究成果和产品,由笔者参与研制和开发了公司的城市三维景观系统。

  2 城市三维景观可视化过程概述

  一个完整的三维可视化过程如图1所示,包括模型化过程、映射过程、交互过程三个过程。其中模型化过程是将现实世界各种各样的三维可视化对象映射成计算机可接收的数据格式,从而产生可视化数据对象;映射过程的含义是将模型化后所得到的数据映射成一种易于理解的表示形式,包括可视化方案的设计,即需要决定在最后的图像中应该看到什么,又如何将其表现出来;交互过程就是通过灵活、高效的交互界面使用户高效地与可视化对象打交道,从不同观察角度和详细程度观察可视化对象。城市三维景观系统本质上是一个三维可视化系统,其系统构造也是基于上述几个过程。

2013052717140159925.jpg


  2.1 城市三维景观数据建模

  构建3D城市模型所需要的数据包括:建筑物的高度数据,建筑物的几何要素数据(表示建筑物的三维几何外形特征的数据),建筑物及地面的影像纹理数据,DEM数据,其他数据(如植被、树木等有关数据)、语义特征及拓扑数据等,重点是城市空间对象的几何、纹理数据和DEM数据。

  目前对于地形模型的构造有多种方法,如规则格网法(GRID)、不规则三角网(TIN)和混合法(GRID-TIN)等多种方法。这些方法都在实际的地形模拟中得到了广泛应用,相对于建筑物构模已经非常成熟。对于建筑物模型。人们不仅关心其外形的描述并且要求知道其几何结构和每一层的属性特征,以便能够对其进行空间分析和不同层的属性查询。

  针对三维空间数据模型的研究早已成为3DUGIS研究领域首要解决的问题而展开,国际国内对三维空间数据模型的研究,大致可归纳为四类:①三维矢量模型,即基于矢量(Vector)或边界面表示的模型。它是用一些基元及其组合来表示三维空间对象,如格网(Grid)、不规则三角网(TIN)、边界表示(BR)、参数函数、四面体格网(TEN)等。这类数据模型偏重于3D空间表面表示,如地形表面、地质层面等,通过表面表示形成3D空间对象,其优点是便于显示和数据更新。不足之处是空间分析难以进行。②三维栅格模型,亦称为体模型,它是基于体元(VOXei-VOiumeEiement)表示的数据模型,如3D栅格(Array)、八叉树(Octree)、结构性实体几何(CSG)。这类模型侧重于3D空间体的表示,如矿体、水体、建筑物等,通过对体的描述实现3D空间对象表示。其优点是易于表达三维空间属性的非均衡变化,便于空间操作和分析,但占用存储空间较大,计算速度也较慢。③混合或集成数据模型。混合数据模型是将两种或两种以上不同的数据模型结合起来,取长补短,以满足需要,如采用TIN和八叉树的集成数据模型,可以应用TIN进行三维表面的可视化和分析,应用八叉树执行空间定位等3D操作和分析。④面向对象数据模型。这种模型比上述模型优越,更符合人们认识事物的思维模式,还具有存储复杂对象、支持完整性、有较高查询访问能力等优点,是解决空间数据与属性数据结合、图形与图像数据结合、多媒体信息管理的一种较好的数据模型。但目前对该数据模型的研究尚不够充分,还有不少理论和技术方法问题需要解决。

  如何批量地获取城市空间对象的三维几何信息、相片纹理、语义属性等数据进行城市景观的快速、批量建模,仍是制约3DUGIS进一步发展的最大障碍。目前对城市三维景观中复杂模型的建模仍需借助三维建模软件如AutOCAD,3DStudiOMAX等进行手工建模或通过遥感影像数据进行有限程度的半自动建模。

  2.2 城市三维景观模型可视化

  目前可基于微机应用的三维图形库有OpenGL,Direct3D,Giide,VRML,Java3D等。对一般的PC机用户而言,比较合适的底层3DAPI是OpenGL和Direct3D,这两种接口都提供高性能的3D图形处理能力,其特性受到许多硬件的支持,其本身已经成为PC主流操作系统WindOws中的一部分。官方公布的OpenGL的最新版本是OpenGL1.2,Direct3D的最新版本是Direct3D8.1。无论采用何种三维空间数据模型和建模方法,若要使用现有的3DAPI(三维应用程序接口)进行系统的开发,则必须将模型数据转换成3DAPI能直接接受的基本图元形式。在OpenGL和Direct3D中基本的图元形式是面、线、点。实际上各种三维体的绘制是通过对三维体表面或内部的面、线、点的绘制而实现的。

  对城市三维景观模型进行可视化应具有以下功能:能够叠加影像数据对3D模型进行纹理贴合,能够多角度观察、全方位实时漫游、任意选定路线飞行、制作动画等。

  2.3 城市三维景观模型空间分析

  在二维GIS中,空间分析是GIS区别于三维CAD与科学计算可视化的特有功能,在3DUGIS中同样如此。空间分析三维化,也就是直接在三维空间中进行空间操作与分析,连同空间对象进行三维表达与管理。用户可以通过鼠标点取直接测量场景中的距离、面积、体积、平均高度、平均坡度、平均坡向、通视关系等,并可将挖方效果和填方效果在三维场景中直观显示。这种空间分析主要包括两大类:

  (1)空间测算功能为①距离、面积、体积测量;②地形测量,用户可以测量指定区域中的平度高度、平均坡度和平均坡向;③通视计算,用户可以得到场景中指定两点之间的通视关系(即可视与否);④挖方效果和填方效果的三维显示。

  (2)空间分析功能为①空间网络分析;②空间拓扑分析;③地形分析———通过地形分析,用户可以对场景中的地形进行另外一种方式的观察;④通视分析———通过通视分析,用户可以选择观察点并计算整个场景中的可视区域;⑤水淹分析———使用水淹分析工具,用户可以对地形进行洪水淹没分析及流域计算;⑤开挖与回填分析,土方量的计算。

   3 城市三维景观系统总体结构

  3.1 底层三维应用程序接口(3DApl)

  就特点和性能以及适用性而言OpenGL和Direct3D两种3DAPI各有优劣,如OpenGL具有很好的跨平台性、与硬件无关性,而Direct3D提供的立即模式编程却允许应用程序充分利用3D硬件的特性开发出更高性能的3D应用程序,这种编程模式被许多高性能3D应用程序编制者采用。考虑到目前两种3DAPI使用的实际情况,开发可同时支持两种接口的三维应用程序是有必要的。但要开发出性能较好且同时支持这两种3DAPI的应用程序必须设计出一个性能较好的应用程序系统结构,同时还应考虑系统的可扩展性。面向对象的编程技术可以帮助我们很好地实现这一目的。

  3.2 系统流程

  笔者所建立的城市三维景观系统的工作流程框图如图2所示。

2013052717142725776.jpg


  城市三维景观中地形、建筑物等实体对象各种纹理的主要来源是航空影像,但是由于航空影像是从空中向下的中心投影,因此屋顶纹理一般可在航空影像上提取(除非被其他高层建筑物所遮挡),而墙面有的是在空中可见的,可在航空影像上提取纹理,有的则被遮挡,可补充地面近景摄影影像。景观地形可通过导入DEM数据、GRD数据、高程库数据或者在自定义的范围内建立虚拟场景的基本地形并配以相应的影像图来创建。城市三维景观中诸如建筑物之类的空间实体模型可通过多种方式创建,如可通过把2DGIS中的矢量区数据按照设置好的高度进行批量建筑物建模,并可映射上预设的纹理,也可通过导入第三方三维模型如*.3ds,*.dXf来建立模型,还可通过从航空影像提取部分建筑物几何要素来辅助进行建模。此外,系统还应该考虑诸如树木、花坛、路灯等特殊实体,此类实体一般采用电子公告牌的方式进行显示,对于树这类特殊实体也有采用分形方法进行显示的。

  3.3 系统结构

  一个基于OpenGL和Direct3D两种3DAPI的三维景观系统结构框架,如图3所示。该结构框架中应用程序分为两部分,一部分是封装在动态链接库中的三维视图类,主要功能为三维环境的创建及三维场景的渲染;另一部分则为主应用程序,负责数据处理、界面显示及交互控制,其视图继承自三维视图类。但就整个系统而言还包括OpenGL和Direct3D的三维图形库。

  图3中DLL表示动态链接库。由于这里所给出的只是一个系统设计思想,故未列出系统中包含的所有类和处理过程。C3DObject是一个实现三维场景绘制的公共基类,其中定义了初始化3D环境、加载场景数据、渲染场景、操纵场景等所用到的公共接口(或成员变量),这些公共接口大多数都定义为虚函数,以便派生类可以重载,更重要的是这样可以使用基类指针来访问派生类的方法,以达到用同一个基类指针访问不同实现方法的派生类的目的。这个基类里所定义的是3D场景绘制所共有的特征,而真正的功能大多数是由其派生类来实现的。有关接口分配应掌握的一个原则是能在基类里实现的公共操作或变量则在基类里实现,只有将那些由于3DAPI差异而必须分别实现的功能才交由派生类实现。类CD3Dbase,CD3DDraw是基于Direct3D实现3D场景绘制的类,而COGL-base,COGLDraw则是基于OpenGL实现3D场景绘制的类,它们都是C3DObject的派生类,其中类CD3Dbase,COGLbase直接从C3DObject派生,主要用来实现3D环境的初始化,而对场景的渲染则主要是由派生类CD3DDraw,COGLDraw来实现。

2013052717145541959.jpg


  类C3DView继承自开发环境中系统的视图类如VC++中的CView类,其中定义了一个C3DObject类的指针及其他与3D环境交互的接口,当用户选择使用不同的3DAPI时,该指针便指向不同的3D绘制类对象,于是使用该指针可完成所有与3D环境的交互功能。主应用程序中所有对3D环境的访问均通过C3DView间接进行。

  该系统结构具有良好的可扩展性,用户可在此结构基础上进一步扩展支持其他三维图形库。

   4 基于网络的城市三维景观发布

  近年来,随着网络技术的发展,提出了基于网络的GIS的要求,即WebGIS。但是,目前的WebGIS都只有二维地图的数据管理、查询和显示能力,缺乏必要的三维信息处理能力。随着互联网技术的飞速发展,如何利用网络这个巨大的信息传输工具,使之能更好地处理城市三维空间地理信息,已成为3DUGIS研究者所面临的新挑战。构建基于网络的城市三维景观系统必须考虑WWW环境下的系统通信与运行结构,三维真实感图形实时计算与显示的数据模型,适合地理空间数据显示、分析的用户界面,以及基于Internet系统开发工具如VRML与Java的集成应用、共享对象的管理等。

  4.1 基于网络的3DApl

  VRML,Java3D是两种在Internet上具有交互性的3DAPI,但它们的应用都要基于底层3DAPI,如OpenGL和Di-rect3D的支持。

  VRML是一种面向Web的三维造型语言,为三维数据转换定义了一个标准的文件格式。VRML将3D模型转换为简洁的数学表达式,因而只需在网上发送转换后的少量数据。而且,一旦发送出去就不再需要对模型进行下一步发送。在这一过程中,全部的变化仅仅是在模型中观察者视点的变化。这样,在网上仅需不断传输观察者的方位,极大地节省了数据带宽。VRML与设备无关,它是作为一种描述虚拟境界的语言独立存在。与HTML一样,VRML也是可由浏览器解释的描述语言,只不过VRML不是描述成一个Page的格式,而是描述成3D环境和目标的布局。VRML是WWW上描述三维虚拟环境的标准方法,在Web3DUGIS中得到了广泛应用。

  Java3D是SUN公司在OpenGL及VRML基础上开发出来的一个3DAPI,包括了实现交互三维真实感图形的基本类、接口,由Java3D包和Java3D应用包构成。前者由生成图形和交互的核心类组成,后者主要是提供用户高层应用接口,如3D文件格式读取、基本形体(如球、圆锥等)的生成等。

  4.2 基于网络的城市三维景观系统体系结构

  基于网络的城市三维景观发布需要解决的核心问题是海量三维景观数据与网络传输速度有限的矛盾,即实时漫游的数据调度问题。在Web3DUGIS领域开展的一些研究工作典型的有:EdmundSIDES(2000),Lindenbeck(1998)对3DUGIS系统的网络结构模式进行了研究,SiykaZlatanova(1999)提出了一个Web3DUGIS的体系结构;Kyong-HoKim等人(2000)建立了一个基于Web的3DGIS,其体系结构如图4所示,图中EAI为ExternalAuthoringInterface。还有一些学者对VRML语言在C/S结构下的实现进行了研究(Coors和Jung,1998;Dodge等人,1998)。目前已经有许多可视化城市三维景观的应用实例,如虚拟Paris,Glasgow,NewOrleans,Sydney,Toronto等。

  JiriZara等人(2001)提出了一种分块调度虚拟城市数据实现网上实时浏览大规模城市三维景观的方法,并可视化了整个Prague市的一部分城区作为实验。他们提出的系统结构如图5所示。在他们提出的方法中,首先将整个城市按街道、广场以及其他开放式空间相一致的拓扑关系进行分块,并在漫游时根据当前视点位置实时计算块的可见性,同时采用一种有效的块调度算法往内存中调度块和淘汰块。另外,他们还采用了LOD技术来提高漫游时的显示速度。图5中HouseEditor是用来半自动地构造含有纹理贴图的建筑物的LOD模型,CityEditor用来根据代理门和其他一些信息来创建和编辑城市拓扑块。

   5 应用实例

  笔者利用已有研究成果和公司已有开发库在Windows2000环境下采用VC++6.0,基于OpenGL1.2和Direct3D8.0立即模式实现了城市三维景观系统M3DVIEW的开发。该系统由三维景观编辑子系统MapCC和三维景观浏览子系统Map3DViewer两个子系统组成。其中,三维场景编辑子系统主要用来构造、编辑虚拟场景;三维景观浏览子系统是用来浏览、输出虚拟场景。整个系统有八个主要功能模块,分别是:场景创建、场景修饰物、纹理映射及管理、空间定位及属性查询、空间量测与分析、三维实体标注管理、实时漫游和场景输出。该系统运用虚拟现实技术,结合先进的二维和三维图形处理技术,能够对实际城市景观进行快速、真实三维可视化,实现了在微机上对大规模场景的实时仿真,可方便地进行三维空间查询、测算、分析等,在实践中收到了很好的效果。

201305271715214807.jpg


   6 结束语

  笔者结合近年来的研究成果和实际开发,探讨了城市三维景观系统的可视化技术及应用。应指出的是作为数字城市基础的3DUGIS集成了计算机、GIS、CAD、测绘、遥感等很多领域的研究成果,涉及这些领域的许多方面,目前有许多理论和技术问题需要解决。

  城市三维景观的深入应用还有许多研究工作要做:①大面积建筑群体的高效建模技术;②大规模城市景观的实时浏览;③高效的城市实体数据模型及数据结构;④虚实结合的三维动画技术;⑤城市景观与VR技术的结合,即虚拟地理信息系统VirtualGIS;⑤基于网络的数字城市三维景观发布技术;①三维空间分析的描述及交互式操作;③三维表面分析,三维剖面分析等。这些也是我们今后的努力方向。

 

2013052717140159925.jpg


2013052717142725776.jpg


2013052717145541959.jpg


201305271715214807.jpg

免费打赏

相关推荐

APP内打开