基于ArcGIS Engine 的三维数字校园设计与实现

2021-04-23 05:50毛新光
软件导刊 2021年4期
关键词:模型库图层纹理

毛新光

(闽江学院现代教育技术中心,福建福州 350108)

0 引言

随着互联网的发展,三维数字校园成为智慧校园建设的重要一环[1]。三维数字校园建模技术较多,不同软件有不同的表达形式[2],目前主要的建模方法有基于倾斜的三维建模、GIS 辅助三维建模、Auto CAD 与3DS MAX 结合建模[3-4]、基于Sketch Up 三维建模等技术[5-7]。传统的3D studio Max、Multigen 等制作软件缺点是运行时需加载大量数据,构建场景速度较慢,同时创建的三维场景不能将空间地理数据、属性数据和动态数据联系在一起管理、分析和应用。本文提出以.NET 为平台,结合ArcGIS Engine 开发组件和模型库,开发基于模型库的空间地理数据库动态调用的三维数字校园场景构建方式。通过使用GIS 技术建立的三维数字校园,实现将空间地理数据、属性数据和动态数据联系在一起管理、分析和应用,对校园管理、规划建设、应急处理起到辅助决策作用[8],通过三维地理信息系统加快校园信息化建设步伐[9]。

1 系统设计

1.1 系统总体设计

本文采用数据库共享接口方式构建三维数字校园,它通过在系统中嵌入应用程序接口(API)访问系统数据。ESRI 的ArcSDE 具有CAD 客户端扩展程序,允许用户在数据库管理系统(DBMS)中存储、提取CAD 要素或GIS 特征[10],如图1 所示。使用CAD 系统(如3DS Studio MAX等)软件可设计出较为逼真的三维场景实物,但三维地理数据分析功能较为欠缺[11-12]。地理信息系统具有较强的管理与分析数据功能,但三维地物的编辑功能较为欠缺。因此,可将GIS 和CAD 结合构建出真实、逼真的三维场景[13]。

Fig.1 Database sharing mode图1 数据库共享方式

1.2 系统数据层设计

根据三维场景中实物的分类表达规则和组成要素不同,将基于三维对象模型的数据库设计分为建筑物模型库、建筑物纹理库、地面覆盖模型库、独立对象模型库[14]。三维场景实现离不开数据库支持,一个设计良好的数据库对系统功能实现十分重要。三维场景数据库设计包括基于模型库的数据库设计和实体模型属性数据库设计。三维场景数据库设计元素如图2 所示。

Fig.2 Three-dimensional scene design elements图2 三维场景设计元素

2 系统实现

针对三维数字校园场景中不同的三维实体模型采取不同的构建方法。

2.1 由二维矢量数据自动生成三维模型

在ArcGIS Engine 中可通过二维的点、线、面要素和坐标Z 经过拉伸构建三维场景中的三维模型。通过Z 坐标或者要素属性字段值经过拉伸点构成三维数字校园场景中垂直的线,线要素构成面,面要素构成块。

下面以一个面为例介绍二维矢量数据生成三维模型过程。实现算法如下:①获取三维数字校园场景要拉伸的图层;②添加纹理。由于三维数字校园场景中的地物比较简单,采用矢量图层符号化时,面图层用IFillSymbol,点图层用IMarkerSymbol,线图层用ILineSymbol,这是以一个面为例创建一个纹理接口类型的符号,从纹理数据库中调用要填充的纹理;③将要渲染的地理要素图层pGeoFeature-Layer 对象设置为Psimplerenderer 进行渲染;④设置矢量图层基准高,使矢量数据拉伸到某一固定值,此值可在程序中直接指定;⑤将三维属性应用到ppLayer 矢量图层,使图层具有三维显示效果。

核心代码如下:

2.2 利用典型的单一模型构建三维场景

在CAD 中绘制地形图,保存边界线,然后导入3DS Max 中。利用建模方法制作白模型,在Photoshop 中对采集的图片进行处理,贴到白模型上,得到具有真实纹理的三维建筑物模型[15]。利用IMarker3DSymbol 接口创建一个接口对象[16-17],然后利用该对象对应的方法CreateFromFile读取数据库中建筑物的模型对象,创建一个SceneControl控件对应的容器对象,将该对象加载到图层对应的容器中,起到动态加载三维场景目的,从而快速构造出三维数字校园场景。

主要算法为:①首先创建一个新图层,然后把该图层添加到三维场景依托的控件SceneControl 对象中;②设立一个点的新元素,该点就是三维模型要加载的位置。本例为动态向三维场景加载模型,采取利用文本框输入经纬度方法动态确定加载三维模型位置;③利用IMarker3DSymbol接口创建一个接口对象,然后利用该对象对应的方法CreateFromFile 读取数据库中建筑物和独立模型对象;④创建一个SceneControl 控件对应的容器对象,然后将该对象加载到图层对应的容器中,起到动态加载三维场景目的。

核心代码如下:

2.3 利用模型库组合模型构建三维场景

构建三维数字校园非典型建筑物时,它们具有相似的结构和纹理,针对这种情况,可先构建建筑物的基本实体单位[18-20],并将该实体入库,然后在构建三维数字校园实体时直接调用建筑物模型库中单位实体模型,构建成组合模型,快速建立三维数字校园场景中的实体。主要算法为:①首先创建一个新图层,然后把新图层添加到三维场景依托的控件SceneControl 对象中;②设立一个点的新元素,该点就是三维模型要加载的位置。本例是动态向三维场景加载模型,采取的是利用文本框输入经纬度动态确定加载三维模型位置。由于是组合模型,所以在设立一个新元素时底层新元素的Z 值取0,加载中间的三维模型库中的模型时,Z 值是底层模型的Z 值,顶层模型值是底层和中间层Z 值的和。

核心代码如下:

2.4 在三维场景生成多片三维模型

对于结构简单、规则,逼真度要求不高的三维数字校园实体,可对规则的三维模型如长方体、正方体等进行纹理贴图。采用多片MultiPatch 制作三维数字校园实体的大致模型,通过输入规则模型在平面的投影坐标,以及实体模型的长、宽、高3 个参数确定三维实体模型各个顶点的坐标,然后对三维实体模型的前后左右面及顶部进行纹理贴图构造三维模型。

核心代码如下:

利用上述快速动态构建三维场景方法建立闽江学院三维数字校园,如图3 所示。

Fig.3 Three-dimensional digital campus of Minjiang University图3 三维显示的闽江学院数字校园

3 结语

本文使用ArcGIS Engine、3D Max、空间地理数据库、Visual studio .NET 等开发技术,采用动态快速建模方法建立了可视化的闽江学院三维数字化校园,为学校管理提供技术支撑,同时也带来直观、真实的感知和认识[21]。创建的三维数字校园场景极大推进了闽江学院智慧校园建设。本文提出快速动态建立三维场景思想不仅可以应用于三维校园数字化系统,而且在开发其它可视化三维地理信息系统中也具有重要参考价值。利用ArcGIS Engine 与基于模型库的空间地理数据库相结合的快速建模方法构建三维数字校园场景取得了很好的效果。后续对构成三维场景的要素还要进一步精细化,属性数据库还要进一步完善,系统功能还需进一步开发。

猜你喜欢
模型库图层纹理
使用纹理叠加添加艺术画特效
巧用混合图层 制作抽象动感森林
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!
图层法在地理区域图读图中的应用
基于模型库系统的金融体系流动性风险预警机制研究
跟我学添加真实的光照效果
浅析“递层优化法”在矿井制图中的应用
GIS地形分析模型库管理系统的设计与实现