APP下载

基于ArcGIS的校园三维场景漫游关键技术研究与实现

2011-09-18郭海鹏李薇薇

关键词:碰撞检测漫游多边形

郭海鹏,李薇薇

(1.长春理工大学,长春 130022;2.长春理工大学 光电信息学院,长春 130012)

随着社会的进步和发展,单纯的依靠三维建模软件对场景的再现和漫游已经不能满足要求,人们的视点开始转向GIS技术。ArcGIS作为GIS基础软件的领军人物,功能强大、应用广泛,专门用于海量地理信息的处理,它能够基于校园周边的地理信息,快速的构建校园三维场景[1-2]。本文就基于ArcGIS创建三维校园时的关键算法、技术以及出现的相关问题进行探讨和研究。

1 关键技术和模型优化

1.1 碰撞检测算法

在虚拟校园中漫游时,须实时、准确地判断和虚拟物体是否发生了碰撞,这样用户才能感觉到虚拟对象是真实存在的。本文采用基于AABB包围盒的碰撞检测算法进行碰撞检测。

AABB包围盒满足如下条件:

lx,ux,ly,uy,lz,uz分别是该AABB包围盒在X、Y、Z坐标轴上投影的最小和最大坐标值。该算法的基础是空间直线与空间多边形的求交,可以判断在漫游过程中是否与地形或建筑物发生碰撞。其检测步骤为:

(1)获取人的视点为V。

(2)获取沿运动方向距离为d的点M。

(3)获取周围要素的长方体坐标范围。

(4)判断VM是否和周围要素是否相交,如果碰撞则采取规避措施。

(5)不碰撞的话,则可进行到下一个位置M。

1.2 漫游控制算法

本系统中的漫游控制采取移动视点的控制方式,具体分为以下三种:

1.键盘控制方式:用户通过键盘改变摄像机的x、y、z坐标,达到旋转、上移、下移、左移、右移等效果。同时,通过变更移动因子的大小,还可以达到加速、减速的效果。

2.自动漫游方式:采取沿路径飞行的方式进行自动漫游。步骤为:选择场景中路径要素,然后设置飞行时的参数(高度、视角、速度)来控制飞行过程中的视觉效果。

3.飞行漫游方式:调用ArcGIS中的“飞行”工具,可启动对场景的飞行漫游,然后可以用不同的速度沿任意方向移动。

1.3 空间测量算法

ArcScene没有提供三维空间测量的接口,无法直接获得三维空间中的距离。这里结合GDI+中的line方法,获取二维屏幕坐标,然后通过坐标转换,调用SceneGraph中locate方法获得该平面坐标点对应的三维地理坐标,最后通过计算得到线段的长度信息,并在屏幕中显示出来。屏幕坐标与空间地图坐标基于横向和纵向的系数相似比来进行如下转换:

窗口的高度和宽度用H、W表示。屏幕范围的高度和宽度用H′、W′来表示。x0、y0为地图起点坐标。 x、y为地图坐标。 x′、y′为屏幕坐标。

1.4 模型优化

1.多边形消减策略:多边形的面数和段数不但会增加模型的大小,而且会增加渲染的工作量,降低实时性和响应的及时性[3]。所以,在满足效果的基础上,应尽可能的减少模型的段数和面数,同时,去掉在漫游时永远不可见的面,比如建筑物的底面。

2.背面消隐技术:本系统是室外漫游系统,建筑物内部在任何时候都是不可见的,在3DS MAX中应指定背面消隐选项,跳过建筑物内部渲染。这将减少大约一半的渲染量。

基于物体的近似夹角来判断动态遮挡物:

3.纹理映射技术:本文在模型细节的刻画上一般采用纹理映射,在对应位置的多边形表面铺上纹理图片,用来代替详细的模型。纹理映射并不会降低场景的逼真程度,而且还可以极大的减少模型的多边形数目和场景复杂程度,提高图像绘制输出时的显示速度。对比效果如图1所示。

图1 科技大厦贴图前后效果对比Fig.1 The effect comparison diagram of the before and after chartlets of technology mansion

1.5 模型导入问题

1.模型导入损失:模型以3DS格式导入Arc-Scene后,有时会出现部分损失的现象(如镜像部分丢失等)。原因是3DS MAX克隆模型时选择“实例”和“参考”得到的结果在内存中只存有一个物理地址,多个物体显示时通过指针调用,但在导入到ArcScene中时,指针信息丢失,显示就会出现问题[4]。本文通过在3DS MAX下进行复制操作,实现模型在ArcScene中无损显示。对比效果如图2所示。

图2 参考和复制的模型导入效果对比图Fig.2 Effect comparison diagram of the referenced and copied models

2.纹理材质损失:模型导入ArcScene后,有时会出现轮廓完整但纹理材质丢失的现象。为解决该问题,须将建好的3DS模型及其纹理贴图在同一路径下保存。

3.颜色、亮度、光度损失:模型导入ArcScene后,其颜色、亮度、灯光效果会出现一定程度的失真,可通过3DEffects工具进行调节。

图3 虚拟校园制作流程图Fig.3 Virtual campus design chart

2 系统的设计与实现

2.1 总体设计流程

通过在ArcGIS中定义基本的场景模型之间的空间关系,利用ArcGIS中ArcMap的编辑、分析、浏览功能以及ArcCatalog的数据管理功能,建立起校园的二维数字场景;再利用ArcScene的强大的三维编辑、显示、漫游以及二次开发功能进行三维场景的构建。该系统详细设计流程如图3所示。

2.2 程序运行效果

图4 程序运行效果图Fig.4 Program diagram

3 结语

本文讨论解决了基于ArcGIS创建三维虚拟校园时的关键技术,其中包括碰撞检测算法、漫游算法、空间测量算法,模型的优化,以及模型导入时的相关问题。在此基础上。实现了长春理工大学南校区的三维漫游系统。基于此系统可以进行一些扩展,比如路径搜获和基于人文、地理信息的自动规划等高级功能。

[1]邬伦,刘瑜.地理信息系统——原理、方法以及应用[M].北京:科学出版社,2011.

[2]穆扬,柳锦宝,张永福.基于ArcGIS Engine的三维校园系统的设计与实现[J].航空计算技术,2009,39(6):100-104.

[3]黄莹莹,彭敏俊,许岷.基于虚拟现实的数字校园漫游系统的设计与实现.应用科技,2005,32(5):40-42.

[4]刘有贵,闫钰锋,马宏.GPRS车载定位网络服务系统研究[J].长春理工大学学报:自然科学版,2009,22(4):86-88.

[5]王艳,聂宜民,刘爱华,等.基于ArcGIS的三维虚拟校园究的研究与探讨[J].山东农业大学学报,2009,40(2):283-286.

猜你喜欢

碰撞检测漫游多边形
多边形中的“一个角”问题
全新预测碰撞检测系统
多边形的艺术
基于BIM的铁路信号室外设备布置与碰撞检测方法
解多边形题的转化思想
多边形的镶嵌
霹雳漫游堂
NASA漫游记
空间遥操作预测仿真快速图形碰撞检测算法
BIM技术下的某办公楼项目管线碰撞检测