一种基于面向对象和VRML的地理实体三维建模方法
2013-03-06陈俊任李景文傅毓苏子雍
陈俊任,李景文,傅毓,苏子雍
(1.桂林理工大学测绘地理信息学院,广西桂林 541004;2.广西空间信息与测绘重点实验室(桂林理工大学),广西桂林 541004; 3.武警广西总队,广西南宁 530022)
一种基于面向对象和VRML的地理实体三维建模方法
陈俊任1,2∗,李景文1,2,傅毓1,2,苏子雍3
(1.桂林理工大学测绘地理信息学院,广西桂林 541004;2.广西空间信息与测绘重点实验室(桂林理工大学),广西桂林 541004; 3.武警广西总队,广西南宁 530022)
在分析现有三维空间对象的几何表示方法和面向对象方法的基础上,从三维空间的角度去理解和表达现实世界中的地物、地理现象及其空间关系。提出一种基于面向对象和VRML的地理实体三维建模方法,以三维建筑物模型构建为例的验证结果显示,该方法可以快速地进行三维重建,为不规则、非对称性地理实体三维建模及地理实体的面向对象三维可视化的实现提供了新方法和新思路。
面向对象;VRML;地理实体;三维建模
1 引 言
世界的本身是在三维空间中存在的,目前2DGIS在描述真三维实体存在局限性,如何完整地描述三维地理现象再现三维世界,其中涉及的一个核心问题是如何进行三维空间对象的几何表示[1]。近年来众多学者研究了结构实体几何CSG、边界表示法BR、八叉树、四面体格网以及八叉树和不规则四面体等混合数据模型来表示三维空间实体[2,3]。然而,现有的三维建模很少对地理实体进行描述和表达。地理实体是为了表达三维地理世界而抽象出来一个具有相对意义的概念[4],其抽象程度根据实际描述和表达地理事物特征属性的需要而定,通常地理实体分为点状实体、线状实体、面状实体和体状实体,复杂的地理实体由这些类型的实体构成。文中针对这些实体建模的特点,结合软件的实用性及可扩展性提出了一种基于面向对象和VRML的三维建模方法,实现了对地理实体三维建模和可视化仿真。
2 基于面向对象和VRML的三维建模思想
2.1 面向对象
面向对象(Object-Oriented)方法不仅是一种程序设计技术,而且是一种全新的设计与构造系统的思想和方法[5]。它是以对象为中心的软件开发方法,具有高度的抽象性、完整的封装性、继承性和多态性,可以很好地描述现实世界。
现实地理世界中,地理空间信息是对地理实体的具体描述和表达,地理实体是地理空间中独立的、具有完整地理意义的最小逻辑单元。在地理实体三维建模中,可以利用面向对象技术将任何一个三维实体抽象为一个点对象、线对象、面对象、体对象以及组合对象,其抽象表达如图1所示。这个对象封装了构成地理实体的几何数据、属性数据以及相应的操作等,对象之间通过对象标识建立起联系,每个对象都具有自己的属性和任务,一旦获取了一个对象,那么就获得了与此对象相对应地理实体的全部信息。将三维可视化看做是一些相互作用的对象组成的集合,集合中的对象根据收到的消息来完成相应的任务,从而实现系统的整体功能。
图1 地理实体的抽象表达过程
2.2 VRML
VRML是一种建立真实世界模型或虚构三维世界的场景建模语言,定义了一种把3D图形和多媒体集成在一起的文件格式,允许描述一个现有的或者想象的地理事物,并把它放入虚拟的三维环境中,同时也是一个开发标准,其他技术可以引用VRML或者成为VRML的一部分[6]。VRML语法结构化、层次化,利用VRML三维交互建模算法不仅可以灵活高效地创建三维模型,而且可以控制三维场景的布置、数据管理、实时编辑等,实现仿真数据的可视化和虚拟现实,VRML工作方式如图2所示。
图2 VRML的工作方式
3 基于面向对象和VRML的地理实体三维模型构建
基于面向对象和VRML的地理实体三维模型是以面向对象和VRML建模方法为基础,将复杂的地理实体抽象分解成若干简单的子对象,然后根据点→点集→线→线集→面→面集的思路,再分别建立各个子对象模型,最后把这些简单对象子模型按一定的关系连接起来就可以得到整个地理实体的复杂三维模型。
3.1 基于面向对象和VRML地理实体的联合表达
VRML把场景中的物体看成对象,主要包括节点、域值、事件、路由、原型以及脚本等要素,其中节点是对客观世界中各种事物、对象、概念的抽象描述[6]。面向对象主要涉及的要素有类、对象、消息、接口、属性等概念,而VRML具有面向对象的特征和层次结构,可以很好地与面向对象语言相对应[7,8]:VRML节点/造型对应面向对象语言中的对象、VRML原型对应类、VRML域对应属性、VRML出事件与入事件对应消息、VRML路由对应消息的传递、VRML脚本对应接口。因此,结合具体应用,考虑模型的通用性、系统的可扩展性,各类地理实体可以通过面向对象技术和VRML联合表达,其关系如图3所示。
3.2 规则地理几何实体基础类的构建方法
地理实体三维模型由多个子模型集合而成,每个子模型是由多个实体构成,而每个物体则由若干基本三维几何体有机构成。VRML中提供多种规则几何体结构的造型[6],包括长方体、圆柱体、圆锥体、球体等几何体结构,这些规则几何体是构建复杂的三维空间实体的基础和前提。为了对这些不同的几何形体进行统
图3 地理实体的联合表达
一的分析与保存,类的设计如下:建立基类C3DFigure,添加纯虚函数Parse()和glDraw(),分别用于语法分析和三维显示,然后创建此类的派生类CBox、CCone、CCylinder、CSphere等,再分别重载基类的Parse()和glDraw()函数,实现自身的语法分析和显示。在此,只描述地理实体长方体类(CBox)建模方法,其他几何体类建模方法可以依此类推。
在VRML中,长方体的基本几何参数长(Length)、宽(Width)和高(Height)是用Box节点的size域的域值来描述。size域的三个域值分别表示Box在X方向的宽度、Y方向的高度、Z方向的深度。长方体的原始几何中心位于局部坐标系的原点,因此,在没有发生坐标变换之前,可以根据长、宽、高基本参数计算出几何体各个顶点的位置坐标。如果坐标发生变换,可以根据几何学中的齐次坐标表示法,通过变换矩阵实现图形的基本变换,由此计算出变换后的顶点坐标,最后通过其坐标构造出长方体的各个点对象。
地理实体长方体类的建模算法规范如下:
#VRML V2.0 utf8
Shape{
appearance Appearance{
material Material{}
}
CBox//创建长方体类
{
field SFVec3f size 2.0 2.0 2.0#(0,+∞)
}
3.3 复杂地理几何体建模方法
自然界中某些复杂形体是无法通过基本造型的简单组合而满足视觉需求,此时应考虑如何以立体几何中最基本的点、线、面方式构造空间复杂造型。在VRML中复杂的地理几何体通常由任意形状、任意数量的曲线及曲面构成,因此,对于任意复杂的自然界物体造型,均可使用VRML复杂造型技术。在构造复杂地理几何体之前,可以预先定义点集(PointSet)、索引面(IndexedFaceSet)、索引线(IndexedLineSet)以及高程格网(ElevationGrid)、拉伸面(Extrusion)等一些高级造型节点作为Shape造型节点geometry域值加以创建。
空间点数据是空间定位数据库的核心,任何空间实体最终都是通过点坐标来控制的,任何实体的建模最终是对空间点的建模。它主要包括点标识号、空间三维坐标(x,y,z)等字段。三维空间点建模分为两种方式:一种是控制点,一种是实体点。对于控制点用PointSet节点进行建模,对于实体点通过Sphere节点进行建模,因为VRML中的PointSet节点没有大小的显示特性[5]。控制点建模算法描述如下:
PointSet
{
exposedField SFNode coord NULL//定义空间点的坐标exposedField SFNode color NULL//定义空间点的颜色}
在VRML建模中线分为控制线和实体线两类,控制线通过IndexLineSet来建模,没有实际的粗细显示特性,实体线通过Extrusion节点建模。
面是构成体的基本元素,同时某些面可以直接构成空间实体对象。对于任意曲面的构造,在VRML中可以利用IndexedFaceSet节点;如果构造高效建造管状对象和弯曲对象,可以利用Extrusion节点;ElevationGrid节点则通常用于绘制地形图形状和建造地形;而利用Coordinate节点来创建出点、线、面造型的空间参数,则可以指定PointSet、IndexedFaceSet等节点的三维坐标。
3.4 VRML中几种地理实体造型建模比较
VRML中几种地理实体造型建模比较 表1
在模型构建过程中,针对描述和表达地理事物特征属性的需要采用不同的造型节点。对于一些规则的简单地理几何造型,可以直接采用VRML中提供的Box等基本节点造型建模;对于不规则的复杂地理几何体,不能仅仅由简单造型组合构成,而是综合运用一些复杂节点造型如ElevationGrid节点、Extursion节点、IndxedFdacedset节点面造型等建模方法,高效地构造出具有高真实感的三维模型。
4 基于面向对象和VRML的三维建筑模型构建
对于城市中的建筑物,首先将建筑物分为规则建筑物和不规则建筑物,然后将其抽象分解为建筑物构件对象,再利用VRML节点/造型与构件对象进行映射,实现三维建筑模型的构建。
4.1 三维建筑模型构建过程
基于面向对象和VRML的三维建筑模型是采用面向对象的方法将建筑物抽象分解建筑物构件对象,它主要是通过墙体对象组合构成建筑物对象,对墙体对象又可以进一步分解为左墙体对象、右墙体对象、外墙体对象,这些对象又可以进一步细分为更小的对象,直到分解为点、线、面、体四类元对象,这些对象与VRML节点/造型相映射,通过VRML方式构建建筑物的构建对象,再逆向运用面向对象的方法进行构件对象的组合及运算,最终实现三维建筑物的几何特征、属性特征和操作方法以对象的方式进行封装和一体化管理,具体过程如图4所示。
图4 三维建筑模型构建过程
4.2 三维建筑模型可视化实现
三维建筑构件对象主要是通过VRML中的两种方式进行构建:一种是直接通过VRML中的节点/造型进行构建,该方法主要构建简单的对象;另一种方式是先通过VRML原型构建新的节点类型,然后再通过第一种方式生成对象,该方法主要构建复杂的对象特别是重用性比较高的对象。对每一类对象通过VRML建模都会产生一个后缀为wrl的文件,每一个文件对应这一个对象,对这些对象可以通过Transform节点及相应的域进行模型的平移、旋转、缩放等空间变换操作,组合成更高一层的对象,直至构成建筑物对象。其部分主要代码如下:
Transform{
childrenTransform{
childrenInline{
url"build\MAINLEFT.wrl" #构建的左墙体对象
}
}
}
Transform{
childrenTransform{ childrenInline{
url"build\MAINOUT.wrl" #构建的外墙体对象
}
}
……
构建的建筑物三维模型如图5所示。
图5 建筑物三维模型图
本示例中的建筑物基本属于规则建筑物对象,其几何形体大多呈现圆柱体、长方体、三棱体等组合外形,因此可定义圆柱体、长方体、三棱体等几何形体为基本体对规则建筑体对象进行表达,实现较为规则的空间目标对象的三维重建,但对于不规则建筑物对象则要借助3ds Max进行三维构建,最后导出为VRML文件。
5 结 论
本文提出了一种基于面向对象和VRML的地理实体三维建模方法,该方法采用面向对象思想将三维空间地理事物抽象为点、线、面、体等空间对象,利用VRML提供的基本造型和高级造型节点进行三维建模,使得场景、模型的设计和编辑更加简单、灵活。这很好地解决了针对于不同的应用需要进行大量重复建模工作的问题。经实验结果表明,此方法有效地提高了三维物体建模效率,但对于不规则复杂实体需借助其他建模软件,最后导出为VRML文件。
[1] 万剑华,朱长贵.3D-GIS中空间对象的几何表示[J].矿山测量,2001(1):16~19.
[2] 徐则中,庄燕滨.三维建模系统的综述[J].测绘通报,2008(2):16~19.
[3] 吴德华,毛先成,刘雨.三维空间数据模型综述[J].测绘工程,2005,14(3):70~73.
[4] 李清泉,杨必胜,史文中等.三维空间数据的实时获取、建模与可视化[M].武汉:武汉大学出版社,2003.
[5] 山海涛,郭建星,翟辉琴等.基于面向对象的空间目标三维交互式建模的设计[J].测绘学院学报,2004,21(3): 205~207.
[6] 黄文丽,卢碧红,杨志刚等.VRML语言入门与应用[M].北京:中国铁道出版社,2003.
[7] 王春香,朱军,孟令奎.基于VRML的交互式虚拟教室建模[J].地理空间信息,2009,7(1):114~116.
[8] 陈启祥,苏艳,郑庆花等.基于VRML的三维建模技术[J].计算机与数字工程,2007,38(5):161~163.
A Object-oriented and VRM L M ethod for Geographic Entity 3D M odeling
Chen Junren1,2,LiJingwen1,2,Fu Yu1,2,Su Ziyong3
(1.College of Geomatics and Geoinformation,Guilin University of Technology,Guilin 541004,China;2.Guangxi Key Laboratory of Spatial Information and Geomatics,Guilin 541004,China;3.Armed Police Corps in Guangxi,Nanning 530022,China)
Based on analyzing the geometric representationmethod of the existing 3D spatial objects and object-oriented method,this paper aim to understand and express the objects,geographic phenomena and their spatial relationships in the realworld from the 3D space perspective,and presenta object-oriented-based and VRML 3Dmodelingmethod for geographical entity.By taking the 3D buildingmodeling as a example,the results suggests that themethod can complete the 3D reconstruction quickly,and provide a new method and new thinking to construct the 3Dmodel and realize the object-oriented 3D visualization for irregular and asymmetric geographic entity.
object-oriented;VRML;geographic entity;3D modeling
1672-8262(2013)04-25-04
P208.2
A
2012—12—02
陈俊任(1985—),男,硕士研究生,从事GIS理论和应用方面的研究。
广西自然科学基金重点项目(桂科自2011GXNSFD018003);广西空间信息与测绘重点实验室主任基金项目(桂科能1103108-03)