首页|行业资讯|企业名录|周边产品|数字城市|增强现实|工业仿真|解决方案|虚拟医疗|行业仿真|图形处理|军事战场
资讯首页
行业资讯 >> 专业文献>>正文
基于三维GIS的虚拟现实数字城市实现方法研究
2010年10月28日    评论:    分享:

    来源:第三维度
    作者:未知  原文《数字测图成果的三维可视化》

    1 系统研究背景

    随着计算机三维图形技术的日益成熟,人们对三维信息的需求与日俱增。当前三维虚拟现实已广泛应用于三维城市规划、环境监测、电信、公共营救操作、风景区规划、地质和矿产活动、交通监控、房地产、水文地质活动、实用管理和军事应用等。因此,对数字测图的三维虚拟现实研究是顺应时代的需求。

    数字测图成果的三维虚拟现实,这里的数字测图指地面数字测图。对应于各种测图技术,三维虚拟现实的数据源还有摄影测量、遥感和航拍数据(二维栅格数据),但基于这些数据的三维虚拟现实,所需人力和物力都是相当大的,而且数据量庞大。并且在当前地面数字测图技术广泛采用的情况下,研究地面数字测图成果的三维虚拟现实是迫切的。

    数字测图成果的三维虚拟现实研究具有重要的意义,对于一个预开发区域的设计平面图,三维虚拟现实设计可预见设计建筑物在空间的位置与形象,供设计人员检查设计构思中存在的问题,消除设计中的疏漏和错误,避免建成后的遗憾。更重要的是三维虚拟现实设计为管理者审查设计方案提供了直观的方案形象。对于一个已开发区域的平面图,三维虚拟现实设计可以模拟、表示、管理、分析该区域中的三维空间实体及其相关信息。另一方面,它是三维虚拟现实地图的一个雏形,是实现数字地球的基础,是三维GIS实现的基础,可应用于军事、交通、旅游、通信、城市规划、房产等方面。
 
    1.1 三维虚拟现实的方法

    当前三维虚拟现实的方法,按建模方法可分为基于图形的三维虚拟现实、基于图像的三维虚拟现实和图形与图像相结合的三维虚拟现实;按开发语言可分为基于OpenGL的三维虚拟现实、基于DirectX的三维虚拟现实和基于Internet的三维虚拟现实

    一、建模方法

    1、基于图形的三维虚拟现实方法

    基于图形的三维虚拟现实方法可分为以下几类:

    1) 影像与DEM相结合

    利用DEM生成三维地形透视图,将航空或航天遥感影像作为纹理映射到地形表面,可构成一个面积比较大的三维地形景观。这是目前三维虚拟现实地形采用的常用方法。

    2) 基于2D GIS

    在2D GIS的基础上,利用DEM作为地物的载体,用制图学的原理和方法模拟地表纹理,利用地物的坐标数据和属性数据中的高度信息和模拟纹理来构建建筑物等地物对象。在此基础上可进行一些简单的量测和查询功能,但因使用的是模拟纹理,真实感较差。

    3) 纯三维构建

    纯三维构建可根据数据获取方式的差异,分类如下:

    a)激光扫描方式建模。利用机载或地面激光扫描仪获取地物的三维数据,然后配合地物摄影影像或遥感影像进行三维建模。

    b) 利用航空立体像对的方法:利用目标提取技术,实现航空影像房屋三维数据的半自动测量,进而在地面与建筑物表面二维半不规则三角网和原始数字影像的基础上,实现建筑物可见表面纹理恢复,重建三维景观。

    c) 利用造型软件建模。如:3DMAX、AutoCAD、Multigen、Maya等。

    2、基于图像的三维虚拟现实

    对于实时真实感图形生成来说,基于图像的绘制是一种功能强大的新方法。它在简略的几何描述的基础上,生成具有较高真实感的三维场景,同时提供令人信服的动画效果。考虑使用基于图像的绘制方法,除了因为实时渲染的要求,另一个原因是获取现实物体几何模型的困难。

    基于图像的建模技术的演变主要在两个不同的研究领域进行探索。

    1)纹理贴图(Texture mapping)、环境贴图(Environment mapping)

    在计算图形中,人们通过将图像粘贴于几何模型表面(纹理贴图)来增强近似几何绘制法的视觉真实效果,正是对这种真实效果的渴求,推动了基于图像绘制系统的发展。随后,人们将图像用于近似球形光照效果中(环境贴图)。

    2)全景建模法

    全景建模法是用一系列参考图像描述场景的方法。这些参考图像被变形和组合,以便构成在任意观察点的场景表示法。变形函数由图像流场信息来定义,该信息既可通过输入提供,也可参考图像派生而得。

    3、基于图形与基于图像相结合的三维虚拟现实

    综合基于图形与基于图像两种三维虚拟现实技术,充分利用两者的优势,在不损耗系统绘制性能的基础上,构造既具有高度真实感的三维景观,又可方便地构建三维实体对象之间的拓扑关系,与GIS数据库系统相关联,以构成成熟的3D GIS系统,是目前发展的趋势。

    二、开发语言

    1、基于OpenGL与DirectX的三维虚拟现实

    Windows平台下,OpenGL和DirectX是两个开发三维图形应用程序的标准,其中DirectX虽能提供实时三维图形生成功能,但主要应用在游戏等低端图形应用程序方面;而OpenGL则提供了二维和三维建模、变换、光线处理、色彩处理、纹理映射、运动模糊、动画和实时交互等功能,是绘制真实感三维图形、建立三维交互场景、实现虚拟现实的高性能图形开发工具软件包。与DirectX相比,用OpenGL来绘制三维场景具有图形质量高、程序可移植性好等优点。

    2、基于Internet的三维虚拟现实

    Internet和WWW技术的出现和兴起,开创了一个以计算机网络为基础的信息时代。随着基于Web技术的应用不断推广以及3D技术的日益成熟,人们逐渐意识到虚拟现实产生的三维页面可在Web网上展示其迷人的风采,于是Web3D应运而生。目前Web3D分布式计算的几种成熟技术主要是:Mircrosoft的DCOM技术(Distributed Component Object Model,分布构件对象模型)、OMG(Object Management Group,对象管理集团)的CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)技术和SUN的JAVA技术等三种。
 
    1.2 三维虚拟现实的主要软件

    当前Arc/info、MapInfo、MAPGIS、SuperMap、GeoStar等这些国内外专业二维GIS软件都有自己专有的三维GIS子系统。 但这些三维GIS子系统主要是对地形的三维虚拟现实与分析。

    目前,三维虚拟现实已开始用于海洋、水文地质、环境、军事、交通、旅游、商业、通信、城市规划、房产等各个领域,也相继出现了大量的相关的三维景观可视化软件系统。其中比较专业的系统软件或平台有:

    一、被美国国家图像和制图局(NIMA)评为最优的ERDAS公司的IMAGINE Virtual GIS

    该系统为三维环境下的可视化分析工具提供了GIS的功能。它能够使用户对三维图像进行实时地查询与交互操作,而这个三维透视图像可以是任何形式的栅格或矢量的空间地理信息。

    其主要的功能包括:三维虚拟现实分析、交互可视化、威胁分析、以及三维对象的链接集成、实时贯穿飞行、同时能够建立无论数据大小的虚拟世界。

    二、国内适普软件有限公司的IMAGIS Classic(三维可视地理信息系统)

    该系统是一套以数字正射影像(DOM)、数字地面模型(DEM)、数字线划图(DLG)和数字栅格图(DRG)作为综合处理对象的虚拟现实管理 GIS 系统。它分为两大部分:三维地理信息系统和平面图形编辑系统。通常,二维图形在平面编辑系统中经过编辑整形后,即可输出到三维系统中进行三维实体的重建和管理,用户可对其进行查询分析、属性定义以及各种可视化操作和图形输出等操作。

    三、国内灵图VRMap 2.X

    VRMap 2.X是三维地理信息系统平台软件。它支持OPENGL 和 DirectX 两种国际主流的图形标准,在驱动层对两者进行了统一。因此,VRMap可以充分利用计算机硬件的性能和当前最先进的图形学技术。其全组件式体系可以保证任何的核心层改进都可以无缝的集成到用户的系统中。

    四、国内武汉吉奥公司的CyberCity

    CyberCity是Windows平台下基于专业化测量和地理信息系统技术的三维重建数字化系统,实现三维景观的快速生成、漫游、编辑、虚拟设计以及3D属性信息的编辑、查询、浏览和修改等。

    五、国内上海杰图三维展示系统

    该系统的一系列产品主要采用全景建模法。其中,三维场景展示制作系统---造景师,提供了一种在因特网上或者在各种多媒体系统上逼真展示三维场景的崭新方法。它能通过对一个现实场景进行拍摄得到的图像进行自动处理,自动生成交互式、极富沉浸感的全景。用户可以通过鼠标或者按键方便自如地观看场景的任意角度,或者在场景之间漫游。

    三维虚拟现实,重要的是建模。目前比较专业的三维建模软件主要有:3DMAX、MAYA和MultiGen Creator。

    随着Internet和WWW技术的普及,出现了WWW上3D漫游浏览。目前比较常用的是基于VRML的一系列浏览器[14]。如由爱尔兰、俄罗斯合资的公司Parallelgraphics推出的VRML浏览插件:Cortona VRML Client;Blaxxun公司的VRML浏览器CC3D; Cosmo浏览器、Piveron浏览器、VRML97-object浏览器、WorldView浏览器等。

    1.3 三维虚拟现实的主要问题
 
    当前三维虚拟现实存在的一些主要问题有:

    1、建模工作量大

    如果要逼真显示三维场景中的地物,则系统中需要有专门精细建模的模块,或者在第三方建模软件中进行地物建模。开发这样的系统,建立一个大范围的三维场景所需要的时间和工作量都是相当巨大的。

    如果要快速创建三维场景中的地物,则可以采用系统自动生成,生成的地物模型只能是一些简单形体(长方体、圆柱体、圆锥等)的组合体,这样建立的模型逼真度差。

    2、无法表达实体间的空间关系

    由于三维场景所需处理的数据量相当庞大,所以,大多数相关软件为了能够在一般的PC机上正常运行,采用了不具有拓扑关系的建模技术。

    3、难以快速显示大范围场景

    三维虚拟现实大范围场景,所需处理的数据量是相当庞大的,所以在一般的PC机上是难实现的,或者是无法快速显示的。因而很多三维场景系统显示小范围场景效果非常好,显示大范围场景时,则无法运行。

    2 数据获取
 
    第三维空间数据在这里主要是指地物高度和纹理数据。如何获取这些数据是目前三维虚拟现实区域地形图的一个难点。现在我们概述一下获取这些数据的一些常用方法。参考文献为:孙敏,陈军.3维城市模型的数据获取方法评述[J] .测绘通报,2000年,第11期  。

基于三维GIS的虚拟现实数字城市实现方法研究

    2.1 第三维空间数据获取

    一、建筑物高度数据获取

    建筑物高度数据获取,目前主要有如下几种方式:

基于三维GIS的虚拟现实数字城市实现方法研究

    1)在2DGIS数据库基础上按层数粗略求算建筑物高度。这种方法获取的建筑物高度数据只是一个估计值,且所有建筑物只能用平顶表达,或者人为地加一个修饰性屋顶(如上图(a))。

    2)用人工或半自动的方式借助软件基于影像获取(以建筑物屋顶数据为主)。通过该方法获取的数据重构的建筑物形状接近实际,但工作量仍然很大(如上图(b))。

    3)以研究算法为主,从影像中直接提取建筑物高度以及其他信息。这是一种高效的方法,但目前还不适于进行大批量数据的自动处理(如上图(c))。

    4)用Airborne Laser Scanner结合空中影像,经过算法处理提取建筑物高程、纹理以及其他数据;该方法获取速度快,但后续处理工作量大,费用可观,是一种很有发展前途的方法 (如上图(d))。

    5)用Laser ranger finder结合CCD相机从地面获取建筑物高度及纹理数据;该方法获取速度快、但工作量大,且后续处理工作量也很大。

    二、纹理数据获取

    由于航空影像很容易得到,因此地形纹理与建筑物顶部纹理较易获取,相对而言建筑物侧面纹理的获取遇到了与建筑物高度获取同样的问题,目前学者们提出的获取方法可以概括为如下几种:

纹理数据获取

    1)由计算机做简单模拟绘制。这种方法采用了矢量纹理,其优点是数据量少、建立的模型浏览速度快,但缺乏真实感 (如上图(d))。

    2)地面摄影像片直接提取。这种方法需要用相机拍摄大量的建筑物侧面照片,其获取速度慢,且涉及数据量大,后续处理工作量也很大,但所建模型真实感强 (如上图(b))。

    3)根据摄影像片由计算机生成。对具有相似的纹理的建筑物,使用计算机提取其特征纹理,对这些建筑物进行批系统中获取这些数据的方法。
 
    2.2 系统获取第三维空间数据方法
 
    数字测图系统MAPSUV+全站仪(外业,软硬件)采集的数据,经数字测图系统MAPSUV (内业,软件)处理后的文件SUV是数字测图成果三维虚拟现实系统的数据源。

    从SUV文件中可获取的信息有:

    DEM,地物的平面几何要素,居民房屋的层数。

    第3维空间数据地物高度和纹理数据,无法获取。如何获取这些数据成了一个难点。

    为了自动化地、快速地生成一种简单的与MAPSUV系统生成的平面图完全对应的三维图象,我们最终采用了下述方法:

    一、地物高度数据的获取

    从SUV文件中获取房屋层数,给每层赋予2.5m的高度值,植被及其它地物根据其所表示现实中地物的常规高度赋予高度值,这个高度值用户可以修改。

地物高度数据的获取

    二、纹理数据的获取

    系统自动地根据编码,给每种地物分配一定的纹理数据。用户可以进行实地拍摄提取纹理,然后修改地物纹理信息。如上图,一个植被编码对应一个纹理文件(植被图片文件),一个房屋对应两个纹理文件:屋顶和墙面。
   
    3 数据建模
 
    当前三维建模方法可分为基于图形的三维虚拟现实和基于图像的三维虚拟现实;按开发语言可分为基于OpenGL的三维虚拟现实、基于DirectX的三维虚拟现实和基于Internet的三维虚拟现实

基于三维GIS的虚拟现实数字城市实现方法研究

    3.1 三维模型的几何描述

    一、边界表示法(BR法:Boundary Representation Scheme)

    边界表示法是以物体边界为基础的定义和描述三维物体的方法,它能给出完整和显式的界面描述。边界表示的数据结构一般用体表、面表、环表、边表和顶点表5层描述。

    更多描述

    边界表示法强调物体外表的细节,详细记录构成物体的所有几何元素的几何信息及其相互间的联接关系即拓扑信息。边界表示的缺点是数据量大,数据关系复杂。它对物体几何特征的整体描述能力弱,不能反映物体的构造过程和特点,也不能记录物体的组成元素的原始特征。目前边界表示是三维模型表示中使用最广泛的表示方法之一。

    边界表示法的关键是如何表示一个3D表面。表面的表示方法大致分为代数表示和参数表示两种,代数表示又分为隐式表示和显式表示。

    显式表示为:S={(x,y,z)∶z=f(x,y)}

    隐式表示为:S={(x,y,z)∶F(x,y,z)=0}

    参数表示为:S={(x,y,z)∶x=h(u,v),y=g(u,v),z=f(u,v)}

    与边界表示法类似的还有线框表示法(Wire Frame Representation),它通过一组定义边界的边界来表示对象形状。这种方法的优点是它的表达能力取决于线表示所能允许的复杂程度,简化了模型的生成,提供了一个大的域。缺点是对象的表示不唯一,与此相联系的是不能生成高效的显示,不能计算整数特征以及不能唯一定义空间。

    二、结构实体几何表示法(CSG法:Constructive Solid Geometry)

    CSG表示的基本概念是由Voelcker和Requicha提出的,它是一种由简单的几何形体(通常称为体素,例如球、圆柱、圆锥等)通过正则Boolean运算(并、交、差)构造复杂三维物体的表示方法。用CSG方法表示一个复杂物体可以描述为一棵树,树的叶结点为基本体素,中间结点为正则集合运算,这棵树称为CSG树。其具体定义如下:

       树中的叶结点对应于一个体素并记录体素的基本定义参数;

       树的根结点和中间结点对应于一个正则集合运算符;

       一棵树以根结点和中间结点作为查询和操作的基本单元,它对应于一个物体名。

     用CSG树表示一个复杂物体比较简洁,它所表示的物体的有效性是由基本体素的有效性和集合运算和正则性而自动得到保证的。由于CSG树提供了足够多的信息以判断空间任一点在它所定义的体内、体外或体的表面上,因此它可以唯一地定义一个并支持对这个物体的一切几何性质的计算。

    CSG表示法构造几何形体时,先定义体素,然后通过正则集合运算将体素拼合成所需要的三维物体。所以一个几何体可以看成是拼合过程的成品。其特点是信息简单,处理方便,无冗余的几何信息,并详细记录了构成几何物体的原始特征和全部定义参数,必要时还可以在物体和体素上附加各种属性。CSG表示的主要缺点是不具备物体面、环、边、点的拓扑关系;另外物体的CSG表示不具有唯一性。即CSG表示的物体具有唯一性和明确性,但一个三维物体的CSG表示和描述方式却不是唯一的。

    综上分析,CSG方法通过预定义的模型单元来表示空间物体,这些单元具有规则的形状,如:立方体、圆柱体、圆锥体等;单元间的关系主要是布尔操作。CSG方法的优点是模型关系简单,便于显示和数据更新,缺点是空间分析难以进行。而B-rep表示精确描述构成物体边界的点、线、面和体四种类型元素,通过结点几何位置以及元素间的拓扑关系完成物体的几何描述。B-rep方法适用于空间操作和分析,但存储空间占用多,计算速度较慢。

    3.2 基于二维矢量数据的三维实体建模
 
    鉴于本章所研究的系统采用的数据源为二维电子地图,所以我们在下面概述的建模技术是基于二维矢量数据(这里仅指二维地图)的实体建模。三维实体主要是建筑物、植被和道路等。

    一、建筑物的三维建模

    建模方法一:建筑物可以看作屋顶面和各个铅直外墙面的组成。在已知区域边界坐标和房屋高的参数下,可直接构造房屋的铅直外墙面,并按照一定的顺序剖分为三角网,保证其法向量向外;屋顶平面则通过边界多边形的三角剖分来构造,保证其法向量向上。房屋的基准高通过查询DEM地形数据得到。

    建模方法二:建筑物的平面几何数据、三维高度数据和影像纹理数据是构建三维建筑模型的基础。在2D GIS中建筑物的地面轮廓线的表达方式实际上只反映了建筑物本身很少的信息,不能反映现代城市中建筑物各异的外形和独特的风格。但如果从建筑学角度出发,在三维GIS中突出各个建筑物的特性和差异,将是一项十分巨大的工程,而且意义不大。因此,只需反映建筑物具有代表性的几何外形特性。具体来讲,就是讲建筑物按照其几何外形特征进行分类,分别对每一类建筑物采用一种几何数据模型。以下就几种典型的房屋类型给出其三维几何数据模型。

    1、平屋顶房屋的几何数据模型

    平屋顶房屋是目前建筑物中最为常见的房屋类型,其屋顶为平面,可以用一个平面多边形来表示,利用所获取的建筑物底面数据作为它的顶面。

    2、非平顶房屋的几何数据模型

    非平顶房屋可以把各种不同的屋顶统一成常见的人字型屋顶来处理。人字型屋顶房屋的底部为一矩形,屋顶呈人字型,如图    3-21所示。此类房屋的处理过程大致与平顶房屋相似,所不同的地方在于它需要人为地加上一个屋顶。图中(Xi,Yi,Zi)(i=1,2,3,4)的数据由上面的方法得到Ci,Ci的平面坐标X、Y很容易得到,高度坐标Z是在Ci(i=1,2,3,4)的高度Z(i=1,2,3,4)基础上给出一个增量即可。这样构建的屋顶只是作为建筑物的一种装饰。

图3-21 非平屋顶房屋的几何数据模型
图3-21 非平屋顶房屋的几何数据模型
 

    3、复杂房屋几何模型的表示

    对于复杂房屋,则需要根据其外形特点分别定义各自的数据模型。这些房屋虽然其总体外形与上述两种不同,但是可以分解为两个或多个与上述类型相同的单个房屋,这样就可以用多个典型房屋的组合来表示一个复杂房屋。采用这种方式时,首先,要在获取房屋数据时就要对复杂房屋进行分解,分别采集单个典型房屋数据;其次,需要解决的另一个关键技术是单个典型房屋之间公共部分的无缝拼接。图    3-22表示了复杂房屋的分解方法。

图 3-22 复杂房屋几何模型表示
图 3-22 复杂房屋几何模型表示

    建模方法三:通过第三方软件(如3DMAX、MAYA、MultiGen Creator等)创建的建筑物模型。

    以上这些方法基本上采用:获取建筑物的高度,并与建筑物在二维投影平面上的轮廓线结合,用简单集合体表示建筑物的外形特征。这种三维建筑物重构方式虽然比较简便,重构的建筑物三维数据量少,但几何失真很大。

    二、植被的三维建模

    树木是自然界最常见的景观之一,具有复杂的三维结构。对树木形状的三维建模一直是计算机图形学领域的一个研究热点,大量学者对此进行了深入的研究:Aono等提出了A-系统;Oppen-heimer提出了基于分形技术的树木建模方法;Reeves提出了基于粒子系统的树木建模方法;Reffye等提出了基于蕾变化的忠实于树木真实结构的建模方法;Weber等提出了树木的分步生长模拟方法;Prusinkiewicz等提出了基于L-系统的树木生长模拟方法。

    A-系统中提出的一致偏离和非一致偏离算法用来模拟重力和风力对树木形状的影响;分步生长模拟方法中提供了对风力、重力、裁剪等基于参数控制的模拟方法;开放的L-系统是对L-系统的扩充,提供了对裁剪、树枝空间资源竞争等因素的模拟。

    下面主要概述目前常用的方法。

    1、基于Billboards技术

    在一个空间长方形区域用树木图像进行纹理贴图来表达树木,然后应用Billboards技术,使长方形始终平行于视平面,即跟着视点转动。这种方式简单,且具有较高的观赏性。但由于其实质是在一个空间长方形区域上通过融合方式粘贴树木图像,因此,这种处理的结果是将具有三维空间复杂特性的树木对象以一个空间长方形替代,树木只有一定的位置,而失去了其它空间特性,同时这种模型近视点效果不够理想。

    2、基于分形方法

    分形几何学是研究无限复杂但具有一定意义的自相似图形和结构的几何学。由于树木具有很强的自相似结构,因此可以运用分形方法进行表达。

    基于这种思想的植被专业建模软件已大量出现,如Xfrog,应用面向对象的建模技术;Lparser系统,基于重写和L系统的建模技术;the Green tool,应用面向对象和随机L系统的建模技术等。但这样建立三维模型数据量相当大。特别是树木的小细节部分,树木一般分为两大部分,一部分是树干和大树枝,另一部分是树叶和小树枝,如图    3-21树木的第一部分有200个三角形(如图    3-21a),树木的第二部分有8093个三角形绘制小树枝,11564个三角形绘制树叶(如图    3-21b)。因此研究者们提出了很多简化第二部分的算法。这些算法的基本思想是采用贴纹理图加融合技术。

 

图3-23 由分形技术生成的树干与树枝
图3-23 由分形技术生成的树干与树枝

    三、道路的三维建模

    道路在这里可以抽象为两大类。一是连续带状实体模型:如路基、路面结构、桥梁上部结构、护栏、连续路面标线、人行道等;二是离散建筑物实体模型:如路灯、桥墩、栏杆、交通标志牌等。

    带状实体的建模,用空间四边形平面来模拟,只要确定每个四边形平面的4个顶点的三维坐标,就能完成三维模型的建立;或者采用三角剖分等。这一部分建模的难点在于与地形的叠加,这将在后面描述。

    离散建筑物的建模,一般采用纹理贴图加融合的技术实现,或者通过第三方软件创建。
 
    3.3 系统数据建模

    SUV文件中可以三维虚拟现实的地物主要为地形、房屋、植被、道路、水系等。下面将主要针对这些地物,概述它们的三维简单建模思想。

    地形

    所需要的数据为矢量等高线数据或直接为TIN数据。如果是矢量等高线数据,还要完成地形模型的建模。

    数字测图系统可以根据等高线数据生成TIN文件。三维虚拟现实地形,只需读取*.TIN文件,获取地形的坐标值,即三角形序列坐标值,根据这个坐标值,可以计算每个顶点的纹理坐标值,然后应用OpenGL的绘制函数并将地形进行纹理贴图,就可以将地形三维虚拟现实见下图。

基于三维GIS的虚拟现实数字城市实现方法研究

    房屋

    房屋,基本构成为墙面和屋顶。SUV文件中房屋为由一系列的点构成的多边形区。构成三维房屋墙面的算法为:每相邻两点构成一条边,每条边成为房屋一面墙的底边。如图    3-41所示:平面图上房屋由点m1,m2,m3,m4……等一系列点构成。则由m1,m2构成的墙面为m1,m2,m1’,m2’。通过读该房屋的属性,获得该房屋的楼层数storey。则该房屋的高度值h等于storey*2.5(假设每层楼高为2.5),默认设置每层楼的高度为2.5。如果点m1的坐标为(x1,0.0,y1),m2为(x2,0.0,y2),则m1’的坐标为(x1,h,y1),m2’的坐标为(x2,h,y2)。其他墙面依此类推。

图3-23 由分形技术生成的树干与树枝                       3-42 平房屋顶构成图
3-41 房屋墙面构成图                            3-42 平房屋顶构成图

    SUV文件中房屋为由一系列的点构成的多边形,这些多边形大多是不规则的,有的凸,有的凹,但OpenGL直接绘制多边形的函数只能绘制凸多边形。凹多边形必需处理为凸多边形再绘制。OpenGL中有将凹多边形网格化(即将凹多边形处理为凸多边形)的函数和绘制处理后的凹多边形的函数。系统中绘制三维房屋屋顶的算法为:用OpenGL的函数绘制这些多边形,只是这些多边形的高度值是房屋的高度值,并且只采用材质,不进行纹理贴图。

    对于只有四面墙的平房(只有一层)的屋顶,系统考虑用尖顶,这样更符合现实。其算法为:找出四面墙相应四条边中最长的那条边,作为屋顶的檐。如图3-42所示:平面图上房屋由m1、m2、m3和m4(一般还有m5点,与m4重合)组成。则屋顶由两个四边形m1m2m1’m2’和m3m4m1’m2’,两个三角形m1m1’m4和m2m2’m3组成。其中o1m1’垂直于m1m4,同理o2m2’ 垂直于m2m3(o1和o2分别为m1m4和m2m3的中点),并设o1m1’=o2m2’=1.0,显然点m1’和m2’的坐标就出来了。两个四边形进行瓦片的纹理贴图,两个三角形采用墙面的纹理贴图(见下图)。

两个三角形采用墙面的纹理贴图

    植被

    数字测图系统生成的区域地形图中植被的表示方式有点和线(区),点一般为独立植被,线(区)一般为一片植被。

    对于点,构成植被的算法为:由该点构造一个长方形,由OpenGL中的纹理贴图和混合技术(参看算法描述部分)对该长方形进行纹理贴图,最后显示的是一个树的形状,而不是一个四边形的形状。但有一点需保证树始终面向视点,才能让人感觉树不是一个面片。如图    3-44所示:m点为区域地形图中的独立植被,e为视点所在处。为了保证树始终面向视点,需em始终垂直于由点m构造的长方形x1x2x3x4。该效果由公告牌技术实现。   

 3-44 独立植被构成图                      3-45 植被三维虚拟现实效果图
3-44 独立植被构成图                                    3-45 植被三维虚拟现实效果图

    对于线(区),构成植被的算法为:SUV文件中,对于线,可以一定距离插值,构成一系列的独立植被点。对于区,这些区域大部分是不规则的,用OpenGL中绘制镶嵌多边形的函数绘制这些多边形,并赋予一定的颜色;然后在多边形中进行插值(参看算法描述部分),构成一系列的独立植被点,其三维虚拟现实效果见图1.7所示。

    道路

    道路,基本构成为路面和路基。SUV文件中道路有两种表示,一是线段,表示道路的中线,并赋予属性:路宽、路面材质等;二是区。

    对于第一种情况,其建模算法为:如下图,地形图中道路的中线为ABCD……,由属性必需生成区域M1P1O1N1N2O2P2M2。该区域生成的过程为:M1M2垂直于AB,已知道路宽度为w,则M1A = w/2,P1P2是角ABC的角平分线。

道路生成示意图
道路生成示意图 

三维道路效果图
三维道路效果图

    对于第二种情况,只需贴纹理即可实现三维虚拟现实

    水系

    水系,基本构成为水面,大致分为河流、湖泊和池塘等地物。SUV文件中河流的表示为单线或双线,单线为线段,双线为区,其建模思想同道路。对于湖泊和池塘等水系,SUV文件中表示为区,只需贴纹理即可实现三维虚拟现实
 
    4 地形与地物的叠加
 
    根据等高线生成的三维地形模型中局部地区几乎没有平面,但地物却是建立在平面上的,这样未经过处理的显示方式将导致地物与地形的脱离显示,即地物的底部与地形的表面不是有机结合在一起的。如何将地物模型与地形模型叠加在一起,是建立一体化模型的关键,这里我们根据地物模型与地形模型的关系,将地物模型划分为两大类,这两类地物性质不同,处理方法也不一样。第一类地物是独立于地形网络的地物,它们与地形网络的关系是相对位置的关系,例如建筑物、树木、车辆等。第二类地物是依赖于地形网络的地物,这类是地形网络密不可分的一部分,例如岛屿、湖泊、河流、道路等。

    一、独立于地形的地物

    独立于地形模型的地物与地形模型之间的关系是一种相对位置的关系。在进行地物的三维虚拟现实时,可转入修改地形模型。计算地物在平面位置上的区域,再对该区域(地形)进行整合。取地物的最低点(例对于建筑物,则为建筑物与实际地形叠加的高度)为基准点,将区域范围内的地形显示成与基准点在同一高度上。

    二、依赖于地形的地物

    在这里,主要描述道路与地形的叠加。目前处理的方法有:

    1、将地物与地形分别处理

    确定道路所在的区域;在地形三角网中,删除该区域中的三角形。这样就能使道路完整地体现出来。

    2、将地物与地形作为一个整体处理。
 
    5 三维虚拟现实的其它技术
 
    一、空间分割

    八叉树(Octree)是一种空间分割(Space Partitioning)的技术,用来将3D空间中的物体做出空间性的区隔与分割。有了八叉树的技术之后,就可以“选择性”的画出空间中某个区域的物体,减少送入OpenGL管道线做渲染的三角形信息量,进而大幅的提升复杂场景的执行效能。

    二、模型简化

    考察传统图形学的绘制过程我们知道,它对模型各部分无论其在屏幕上的贡献大小而一视同仁。事实上,对于物体远离视点的部分,许多小的细节经过透视变换缩小后完全可以被忽略而不会影响最后的图像质量,因此这些小的细节在模型中可以不被体现出来,也就是说,对于远离视点的物体,可以使用较为粗糙的模型进行绘制就足够了。进一步地,如果对物体的其它属性(诸如物体的表面性质、颜色、纹理等)都进行多分辨率分析和表示,就可以根据物体在屏幕上覆盖的面积的大小选择该物体相应分辨率下的简化模型,使得在给定观点下获得的图象与用最精细模型绘制的结果误差在给定范围内,这样就能大大提高绘制效率。这种方法被称为为多分辨率表示。

    三、碰撞检测

    为了能在虚拟环境中模拟真实世界,必须采用多种方法对用户的移动行为以及虚拟世界中的移动物体加以限制。碰撞检测就是一种常用的方法,对地形表面的碰撞检测可避免用户飞入地下,对建筑物的碰撞检测可避免出现穿墙而过的不真实情况,对移动物体的碰撞检测可避免物体融合现象的发生,从而达到现实世界中的真实效果。鉴于碰撞检测的重要性,该文将详细介绍碰撞检测技术及其应用方法。

    碰撞检测技术的基本原理:如果两个完全封闭的多面体发生相互碰撞时,其中一个多面体至少会有一个面与另一个多面体的至少一个面发生相交。若能在碰撞发生时,立刻检测到相交,然后将两个物体的位置稍做调整,则可消除碰撞现象。

基于三维GIS的虚拟现实数字城市实现方法研究

    基于以上思想,在物体移动时加入碰撞检测功能是实现碰撞检测的基本方法。

    四、公告牌技术

    公告牌(billboarding)技术 — “让面片构建的三维物体总是面对着使用者”。无论使用者如何移动视线或位置,让这些物体总是以正面面对使用者。要如何做?我们只需要获得两项信息,就是使用者视线(或照相机视线)的上向量(up vector)及右向量(right vector)。为什么需要这两项信息?因为只要有了上向量(up vector)及右向量(right vector)就可以知道目前的视平面(viewing plane)所在。所谓视平面,可以把它看做是一个并行计算机屏幕的假想平面,3D世界中所有的物体最后都会投影到这个平面上做为最后的输出显示结果。上向量在原来的 GLcamera类定义中就已经存在;而右向量的取得,只需要先把照相机视点(camera viewpoint)减去照相机位置(camera position)取得一个观察方向向量(viewing direction vector)后,再以此向量和上向量取叉积(cross product)即可求得。有了这两者的信息后,我们要确保画出来的物体,一定会平行于这个平面,只需要将该三角形的坐标位置适当地乘以上向量(up vector)及右向量(right vector)即可。如此一来,就可以确定所有个面片物体所画出来的结果,总是与视平面(viewing plane)平行,也就是总是“面对”着使用者了。这样无论使用者如何移动视线及位置,都感觉不出来差别所在了。

公告牌(billboarding)技术

    五、粒子系统

    在虚拟现实系统的设计与实现中,有一些物体很难简单地用几个图元表示,即使加上透明处理和纹理映射,效果也不够理想。这样的物体要么是逻辑结构很难表达,要么就是动态的,或者根本没有固体的表面。烟、云、火焰、水等自然物体就属于这一范畴。粒子系统适用于表示这类物体。所谓粒子系统是指,用大量的简单图元集合表示某个物体。物体的诸多特征,如:大小、位置、颜色、以及粒子本身的生命期,都可以动态改变。如果这些参数协调的足够好,所有的粒子合起来的效果将会非常惊人。
 
    6 系统功能

    下面简要介绍“数字测图成果的三维虚拟现实系统”的主要功能:

    1、将GIS前端数据采集系统MapSuv生成的*.suv文件中的测量数据三维虚拟现实,如图1所示;
 
    2、能进行基本的属性修改、统计和查询,如图2,可以在三维场景中选择地物,对选择的地物进行属性查看、修改和纹理修改操作;

    3、对生成的三维场景能进行路径漫游,并可将漫游过程记录为.avi的影像文件;

    4、可以将3dmax、Maya中创建的三维模型导入到三维场景中;

    5、可以将三维场景输出为wrl等通用的三维数据格式。
 

图1 系统界面图
图1 系统界面图

图2 选择地物修改属性
图2 选择地物修改属性

标签:GIS数字城市
上一篇:三维GIS模型构造及算法设计研究
下一篇:美实现“人脑联机” 人类思维可与电脑互动
网友评论:基于三维GIS的虚拟现实数字城市实现方法研究
评论
留名: 验证码:
您可能还需要关注一下内容:
·基于ArcGIS创建三维虚拟城市流程
·三维虚拟地球的海洋信息适用性分析及原型研究
·组件式 GIS 技术在军事仿真系统中的应用
·海岛礁及周边复杂环境动态三维建模
·基于虚拟环境的黄河仿真系统构建
·超大规模分布式虚拟现实系统
·用 GIS与虚拟现实技术模拟火灾过程
·地理信息科学研究进展
·论虚拟地理实验思想与方法
·论天地一体化对地观测网与新地理信息时代
☏ 推荐产品

Ladybug5全景
商家:力方国际

ProJet®
商家:力方国际

ProJet®
商家:视科创新

Premium1.5
商家:视科创新

巴可HDX主动立体投
商家:德浩科视

巴可HDF-W26投
商家:德浩科视

巴可30000流明2
商家:德浩科视

巴可4万流明2K投影
商家:德浩科视
☞ 外设导航
☏ 企业名录
【广州】中科院广州电子技术有限公司
【北京】第二空间(北京)科技有限公司
【北京】幻维世界(北京)网络科技有限公司
【厦门】厦门惠拓动漫科技有限公司
【厦门】厦门幻眼信息科技有限公司
【深圳】深圳南方百捷文化传播有限公司
【北京】北京思源科安信息技术有限公司
【上海】上海殊未信息科技有限公司
【北京】北京赢康科技开发有限公司
【武汉】武汉科码软件有限公司
友情链接 关于本站 咨询策划 行业推广 广告服务 免责声明 网站建设 联系我们 融资计划
北京第三维度科技有限公司 版权所有 京ICP备09001338
2008-2016 Beijing The third dimension Inc. All Rights Reserved.
Tel:010-57255801 Mob:13371637112(24小时)
Email:d3dweb@163.com  QQ:496466882
扫一扫 第三维度
官方微信号