吴红燕,张学全
(1.武昌理工学院 信息工程学院,湖北 武汉 430223;2.武汉大学 资源与环境学院,湖北 武汉 430079)
虚拟现实技术(virtual reality,VR)是近年来发展极为迅速的计算机技术,具有较强的三维沉浸感和交互性,对于现实仿真和场景模拟具有重要的意义。地下管网是城市规划、建设和管理的重要基础信息,也是城市基础设施建设管理工作中尤为重要的一环[1]。管网三维自动建模能够快速构建VR三维场景,逼真地展现管网的形态和地下分布,对于管理和维护管网设施具有重要作用。当前VR技术和数字城市技术都向精细化和大场景两个方向发展[2]。因此,快速精细地构建大范围的地下管网三维虚拟场景显得尤为重要。
针对基于VR的管网三维建模,国外较早地开展了相关研究工作并得到了实际应用。ESRI公司推出的ArcFM(arc facility manager)可以为市政、电力、供水等部门合力规划、设计和维护电力、煤气以及给排水等地下管网[3]。随着建筑信息模型(building information modeling,BIM)的研究,基于BIM的三维管网建模得到广泛应用[4]。国内关于三维管网系统的研究起步较晚,但也已经有很多成果,主要可以分为三种类型:一是基于AutoCAD、ArcGIS、Skyline、CityMaker等国内外大型三维地理信息系统软件平台进行二次开发的管网系统[5-7],二是基于OSG、VTK、OGRE等开源三维软件平台开发的管网系统[8-10],三是基于OpenGLDirect 3D等图形API构建的三维地下管网系统[11-12]。综合研究以上管网系统,主要存在两个问题:(1)管网模型不够精细,管网模型之间不能较好地衔接。已有的三维管道系统中,管道接头通常采取调用标准件模型库的方法。由于管道接头标准件模型库是三维建模人员事先根据相关形状、尺寸、朝向等属性建立的一套接头模型,而地下管网矢量数据中形状、尺寸、朝向等属性具有不确定性,因此调用标准模型库往往造成接头模型与待连接管道不匹配的问题,存在明显的局限性。(2)大范围三维地下管网建模和渲染效率较低。由于管网中很多部件需要手工建模完成,需要消耗大量的人力。另外,不同的模型相互独立,很多资源(如纹理等)不能共用,导致管网数据量增加。
针对以上问题,文中提出一种基于VR的管网三维自动模型方法。通过数据处理提取管网建模参数信息,并根据金字塔四叉树划分将数据分布存储到对应的瓦片索引XML文件中。当用户漫游到管网时,动态载入瓦片索引文件并快速自动建模,不仅实现了管道和接头的自动建模,而且能够流畅地漫游大范围地下管网三维场景。
根据管网的几何属性,可以将管网模型划分为管道模型和管道接头模型。其中管道包括圆管和方管,管道接头包括二通、三通和四通模型。
基于3D-GIS平台进行管网三维自动建模,流程如图1所示。
图1 管网自动建模流程
先对地下管网矢量数据进行特征点采样和四叉树瓦片分割,然后基于瓦片索引数据构建三角网模型和纹理贴图,最后将其从局部坐标系转换到三维GIS全局坐标系中。
城市地下管网的矢量数据通常包含有几万甚至几十万个管线和管点,构建Mesh三角网都包含上百个三角形,这样的数据量是极为庞大的,无论是计算机内存还是渲染流水线都难以满足实时渲染的需求。因此文中基于四叉树动态调度策略实现管网动态自动建模。
图2 四叉树组织示意
如图2所示,四叉树空间索引的基本思想是将待研究的地理空间范围按照递归的方式进行划分,将划分的结果按照四叉树的层次结构进行存储,树的叶子节点用于保存实际地物实体[13]。在构建地下管网模型之前,首先对管网矢量数据进行处理,包括数据采样和四叉树剖分。基于四叉树分割,将管网矢量不同要素划分到不同的四叉树瓦片中,并提取矢量数据的几何和属性信息,将三维建模相关的参数存储到对应的瓦片索引文件中,如图3所示。当三维GIS平台进行动态漫游时,根据当前视点的比例和范围动态读取四叉树索引文件并进行快速建模,同时销毁内存中原有的管网模型,从而优化了系统内存分配,实现了大范围地下管网场景仿真。
图3 四叉树瓦片索引文件
文中基于管道中心轴线和纵向模板平移的方法构建管道,具体思路为:假设给定一个二维图形,例如圆形或矩形,是该图形的中心点沿着给定的管道中心轴线运动,在运动过程中该图形所在平面与中心轴线的切线垂直,该图形在空间中的运动轨迹则为管道的三角网顶点坐标。
图4 管线三角网顶点示意
如图4所示,在圆环C沿着管道中心轴线MN的运动过程中,圆环每次前进一段距离,就需要记录圆环上点所对应的空间位置信息。根据需要构网的管道顶点的空间分布规律可以直接指定相邻两个圆环的构网规律,则任何两个相邻的圆环按照这种规律构建起来的三角网便在空间组成了一个管道三角网。假设存在任意一条管线要素数据,按照上面的三角网顶点计算算法计算得到n个空间圆环C1,C2,…,Cn。则三维管道三角网构网算法步骤为:
(1)从第一个圆环Ci开始,依次选相邻两个圆环,对两个圆环上所属顶点进行构网。假设圆环Ci上的点为Ci,1,Ci,2,…,Ci,n,圆环Ci+1上的点为Ci+1,1,Ci+1,2,…,Ci+1,n,根据Delaunay[14]三角网算法,构网规则如图5所示。
图5 三角网侧面展开
(2)将计算得到的三角形依次存储,待所有三角形生成完毕,所得三角形集合即管道三角网,将其转换成为Mesh对象,得到管线模型Mesh,如图6所示。
图6 管道Mesh示意
考虑到已有的直管三维建模方法,用微分的方法将弯管分割为多个直管段来模拟。弯管自动建模的原理是将弯管划分为多段,每段用直管建模的方式建立斜棱柱进行模拟,最后将各段模型合并即为弯管。如图7所示,其中弯管起点为E,终点为F,弯管圆弧半径为R,夹角为α,切片数为n。
图7 弯管建模
构建弯管三角网的具体过程如下:
(1)将弯管EF分为n段,其中第1段为O1O2,O1O和O2O的夹角为α/n。构建以OO1为x轴,垂直于OO1设为y轴的局部坐标系。则第i个点的坐标为:
(1)
(2)将O1O2当作直管处理,依次计算以O1和O2为圆心的斜截面圆上的采样点坐标,方法与直管相同。
(3)根据O1和O2斜截面顶点坐标,构建斜棱柱三角网模型,方法与直管模型类似。
(4)依次计算n个斜棱柱最后合并。
地下管网不仅包括管道,还有各种管道接头。常见的管道接头包括二通(弯头)、三通(T型、Y型等接头)和四通。
根据已有的直管和弯管自动构网方法,接头可以分解为多个直管和弯管来处理,如图8所示。二通,也称为弯头,即连接两段管道的部分,可以将它分解为半径稍大于待连接管道的两段直管和一段弯管。三通是连接三段管道之间的接头,可以将三通分解为半径稍大于待连接管道的一段直管和一个二通。四通,即连接四段管道之间的接头,可以将四通分解为两个半径稍大于待连接管道的二通来处理。
图8 接头模型分解示意
对于二通而言,待连接的管道一般尺寸相同,但三通和四通各段则不一定相同。以三通为例,难点在于获取待连接三段中哪两段构成一个二通,另一段为直管。一般而言,三通包括一个主管道和一个次管道。其中主管道用二通模拟建模,次管道用直管模拟建模。为了判断主次管道需要比较三段管线的几何尺寸和属性信息。满足以下条件的两段管线末端用二通相连:(1)两段管线性质相同,例如都是给水管道;(2)两段管线几何尺寸相同,即都为圆管或方管,且横截面尺寸相同。
运用以上接头构网方法创建的二通、三通和四通三角网模型如图9所示,均存在各分解部分内部交叉的情况。对于一般的管道仿真系统,完全可以忽视模型内部的交叉多余面,并不影响可视化效果。而对于需要模拟管道内部,进行管道流量分析等,则需要裁剪接头内部交叉面。
图9 管道接头三角网
纹理贴图是虚拟现实中增强场景真实感的技术基础[15]。它是将一幅图像映射到多边形表面,能够使该多边形发生变化或绘制时,映射到多边形表面的图像也相应地做出改变。由于管道的纹理具有重复特性,选用REPEAT方式进行贴图。设一个管道侧面展开,长度分段为L,管线横截面圆周的分段为H,若横纵方向纹理贴图的数目分别为m和n,那么位置(i,j)的纹理坐标为:
(2)
实验数据选用了福州市地下管网实测矢量数据,数据为shapefile矢量数据,包括管线和管点两种几何类型。实验数据覆盖福州市主城区,范围介于北纬26.041 1°~26.067 8°,东经119.236 5°~119.269 2°。管线类型主要包括给水管道、雨水管道、电力管道和电信管道四种,包括15 000多条管线段,10 000多个管点,数据量大,数据类型复杂。
实验硬件环境:CPU为Intel Core i3,内存4G,显卡NVIDIA GeForce GT 240;系统为Windows 10 X64,软件开发语言为Visual C#语言和DirectX 9.0 SDK,开发环境为Visual Studio 2010,基于开源三维GIS平台WorldWind开发。
利用基于VR的地下管网三维自动建模[16]方法开发的福州市三维地下管网虚拟仿真系统各部分自动建模成果如图10所示,整体三维场景效果如图11所示。从图中可以看出,地下管网模型较为精细,管道之间衔接良好,纹理较为逼真。
图10 地下管网自动建模各部分成果
图11 地下管网系统整体效果
三维地下管网虚拟仿真系统相关运行参数如表1所示。实验参数结果表明,管网三维场景渲染效率在30帧以上,内存在400 M以下,系统运行流畅稳定。因此,提出的基于VR的地下管网三维自动建模方法稳定可靠,管网模型可视化效果较好,管道衔接精确无误,可以流畅地实现大范围城市地下管网的三维虚拟仿真。
表1 三维地下管网系统运行参数
研究基于VR的管网三维自动建模方法对于直观高效地管理维护城市地下管网设施和模拟施工场景具有重要的意义。提出的管网三维自动建模方法可以快速地构建大范围地下管网虚拟场景,管网模型精确美观,管道之间衔接良好。该研究成果在城市地下建设、城市灾害管理和智慧城市等方面具有重要的实际应用价值。但文中只研究了管道和管道之间最基本的接头建模,对于阀门、水表、井室等衔接方式的三维建模还有待进一步研究。