詹勇,陈良超
(重庆市勘测院,重庆 400020)
城市地下管网参数化三维建模流程与方法
詹勇*,陈良超
(重庆市勘测院,重庆 400020)
二维管线不能很好表达管线的空间分布,而三维管线则能够直观表达管线的空间位置关系,因此本文结合重庆市地下管线三维建模实际工作,开展了三维管线建模研究。介绍了城市地下管网参数化三维建模流程,重点对建模数据预处理、连接特征三维建模、附属设施建模、管线分块以及管线LOD生成方法进行了阐述。最后,本文开展了相关实验和应用实践,论证了本文方法的有效性。
地下管网;参数化建模;管线分块;管线细节层次
城市地下管线包含城市范围内的供水、排水、燃气、热力、电力、通讯等管线及其附属设施,是保障城市安全运行的生命线。2014开始,全国开展了全国地下管线普查工作,获取了大量的二维管线数据,在普查的基础上,各市通过整合各行业和管线权属单位的管线信息数据,为建立管线系统,全面掌握城市地下管线空间分布状态、运行状况、安全隐患等情况奠定了数据基础。
地下管线普查获取的数据通常以二维数据为主,但二维数据不够直观,难以直观表达地下管线,特别是在竖向上的空间分布。三维管线能够直观表达地下管线的空间位置关系,便于迅速查询管线相关信息,同时,三维管线模型的建立便于检查管线采集过程中可能的错误提高管线数据的准确性。
随着三维地理信息技术已发展的日益成熟,利用三维技术开展管线的三维建模、建立三维管线系统的研究和应用工作也越来越多。罗凌燕[1]等研究了城市地下管线三维快速建模技术,周方晓[2]、周京春[3]等利用Sweep方法开展了管线三维建模,王琦[4]等研究了基于OpenGL的弯管衔接建模方法,左国成[5]等研究了基于旋转矢量法的三维管线建模。本文结合重庆市地下管线三维建模工作,介绍了城市地下管网参数化建模流程,重点对建模数据预处理、连接特征三维建模以及管线LOD(level of detail)进行了阐述。
OSG(OpenSceneGrouph)[6]是一个开源的场景图形管理开发库,主要为图形图像应用程序的开发提供场景管理和图形渲染优化功能。它使用可移植的ANSI C++编写,并使用已成为工业标准的OpenGL底层渲染API。OSG共封装了10种三维几何形状类型,与OpenGL相对应。在本文的管线三维建模中,主要使用了TRIANGLES(三角形)和QUADS(四边形)(如图1所示)两种几何类型,进行三维模型几何形状的构建,利用Geometry类,完成模型的组织,实现模型法线、颜色或纹理的绑定,利用Matrix和MatrixTransform坐标变换类实现管线及附属设施模型的空间变换。
图1 基于三角面片和四边形面片的模型构建
结合重庆市地下三维管线系统建立的实际工作,本文总结了城市地下管网参数化建模流程与方法,在二维管线普查数据的基础上,利用参数化三维建模技术,开展了三维管线建模工作,具体三维建模的总体技术路线如图2所示:
4.1 建模数据读取
建模数据读取的信息包括建模配置信息和管点管线数据。
图2 三维管网参数化建模流程
(1)建模配置信息读取
建模配置信息包括数据库中用于建模的管点管线表、类型映射编码、附属设施映射编码、预制模型名称等信息,用户可以根据自己二维管线数据组织形式,修改配置信息,将其映射到系统定义的管线三维建模的标准接口上来,从而实现管线信息映射的标准化。通常对于一个项目来说,采用同一标准采集的管线数据配置设置后可保持不变。
(2)管点管线数据读取
根据获取的配置信息中的管点管线表名,读取这些表中的管点管线数据,包括ID、位置、埋深等,并利用管点和管线数据结构存储。在建模时,根据管线的不同类型,分批次生成三维模型。
4.2 数据预处理
数据预处理的目的是进行一定的计算,为管点和管段的三维建模做准备,简化正式建模时的处理步骤。预处理主要包括位置归算、连接特征与管段衔接位置计算以及附属物参数位置计算。
在预处理的过程中,会产生一些中间结果,这些中间结果在是进行三维管线建模时需要用到的参数。在本文中,将这些中间结果保存在管点和管线字段中,如表1和表2所示,具体的字段含义将在以下预处理步骤中涉及。
管点数据结构增加字段 表1
管线数据结构增加字段 表2
(1)位置归算
位置归算,是通过管线埋深、起点(终点)高、管径(宽高)计算管段的中心点,如图3中的C点,中心点是三维建模管段和连接特征建模的重要参数。在实际管线外业测量中,对于圆管的起点(终点)高程位于管径上部,而方管,例如排水箱涵的起点(终点)高程在管线底部,因此在处理时,需要根据具体情况进行处理,最后将值记录在管点表的字段centerZ中。
图3 位置归算
(2)连接特征与管段连接点计算
连接特征,这里指的是直通、三通、四通等管线连接。通过连接点的计算,给出连接特征和管段生成的起始和终止位置,如图4中StartV和EndV所示,StartV和EndV之间部分即为连接特征,将该值存储在管段表2中。
图4 衔接位置计算
(3)附属物位置计算
附属物位置计算包括位置平移参数计算和旋转参数计算,最后得到矩阵,得到旋转偏移矩阵,在OSG中,构建旋转偏移矩阵的计算函数利用Matrix矩阵类进行,其思想是利用四元数的原理进行,三维矢量B绕三维旋转轴A逆时针旋转θ,旋转矩阵为:
(1)
其中C=cos(θ),S=sin(θ)。在OSG开源库中,所用代码如下:
(2)
其含义为:定义矩阵m,然后m为先绕轴axis旋转angle角度(为式(1)),再按向量v平移。并将m记录在管点表的TransformMatrix字段中,用于附属物的位置计算。按附属物的位置特征,将附属物通常分为两大类。一类是管井、电力接线箱等,这类模型的位置通常与地表相关,在建模时,将模型原点设置在模型与地表接触位置,在计算位置偏移参数时,将原点置于管点地表高程处即可,其值为管点表中的floorHeight;另一类是与管线的顶部位置相关,如阀门、水表等(如图5所示),建模时,将其原点置于管段的起点高程处,经处理后存储在管点表中的pipeTopHeight字段中,在计算位置偏移参数时,将原点放置在pipeTopHeight值即得到附属设施的最终位置。
对于一些需要旋转的模型,图5的电力方井,则根据管线的走向计算出旋转值,得到旋转参数,按先旋转再平移得到TransformMatrix字段的值。
图5 附属设施原点位置
参数化建模主要包括连接特征建模和管段建模。本文主要采用参数化建模的方式,根据连接特征的位置、大小、方向等参数,进行三维建模。下面简要介绍直通和三通的参数化建模方法,按管线类型具体又分为圆管和方管三维建模。圆管与方管建模的主要区别在于断面特征点的计算,断面特征点为管段两端或特征各断面用来构成管径的特征点,对于圆管(利用正多边形表示)是正多边形的顶点,对于方管则是四个交点。5.1 管段建模
圆管管段建模,采用旋转矢量方法[4],根据管段的断面法线(通常与管段两中心点连线平行),计算出断面特征点[5],然后组装成圆管。对于方管管段,需要注意的是方管的朝向,方管的侧面应是竖直的,因此通过控制管段侧面的法线是水平的,来完成方管的断面特征点计算,如图6所示。
图6 圆管和方管的断面特征点计算
对于圆管,以左端截面为例,v1为管段中心点,v1Forward为断面的法线方向,ZAxis为坐标z轴,计算断面特征点V1PArray各个点按式(3)进行:
(3)
其中r1为断面上的圆管半径,n为拟合多边形边数,R为绕V1Forward旋转dAng角的旋转矩阵,计算得到所有断面特征点A(i)(i=0,…,n-1)。
对于方管的断面特征点,先按式(4)计算出图中的v1Right和v1Up向量,然后进一步计算方管四个断面特征点,如A1=v1Right+v1Up。
(4)
最后,按照图6的骨架图,利用四边形,组合出管段侧面,即实现管段建模,最后可添加纹理、法线等进行优化。
5.2 连通特征建模
(1)直通建模
图7 圆管直通和方管直通建模
圆管和方管直通可分解为多个管段组成。建模按先对直通进行分段,计算出各分段的中心点以及各分段的断面法线,然后计算出断面特征点,最后组装成圆管或方管直通。建模的关键在于建立分段中心点和断面法线,下面简要介绍。
图8 分段断面点与断面法线计算
如图8所示,V0为直通位置,StartV和EndV是直通的起终位置(为表2中的字段),V1是V0StartV上的点,可取V1V0的长度为管径的2倍,同理得V2。过V1、V2分别由V0V1、V0V2的垂线相交得到拟合圆心O以及半径radius。
根据建模精细程度,给定每个分段对应的角度为deltaAngle,如图中O1O2段。两端的分段,为剩余的角度值,如图中V1O1对应的角度值为角V1OV20.5~deltaAngle2。建立垂直于平面V1V0V2、过O点的旋转轴RotateAxis,按式(1)、式(2)得到以RotateAxis为旋转轴,旋转角为deltaAngle的旋转矩阵RotateM,则图中的分段点O2(分段中心点)和断面法线n2由式(5)计算得到。
(5)
得到中心点和断面法线后,按照与管段计算断面特征点的方法,进一步分别按圆管和方管管段,计算得到各分段的断面特征点,生成分段,最后将所有分段组合得到直通。
(2)三通建模
与直通建模不同在于,三通建模则在计算出三个端口的断面特征点后,需要计算出相交处的交点,本文主要采用了基于角平分线思想计算出相交处的断面特征点。在计算出所有特征点以后,再进一步组装成圆管三通和方管三通。对于方管三通或多通,也可尽量采用两边成180°角或90°角的标准三通进行组织,然后连接一个修正的直通管段,可完成设施建模,建模示意图如图9所示。
图9 圆管三通和方管三通建模
5.3 管井半自动化参数建模
部分管井三维建模,本文采用了半自动化参数建模方法。对于复杂的井盖,利用3dsMax软件制作预制模型,而对于井体部分则采用了参数化的建模方式,根据每个管井的不同构造和大小,实现管体模型的建立,最终实现合并管井模型的建立。
这种建模方式,可用于一些复杂、重用高、但存在一些不同的模型的建立。通过提取共同、造型复杂,预先制作好模型,而对可变部分利用参数化的方式进行三维建模。图10展示的是不同类型和不同管径、深度的管井模型生成成果。
图10 管井半自动化参数建模
5.4 管线分块与管线LOD
通过以上步骤,实现了管点和管线的参数化建模。在此基础上,为实现整个城市管网三维模型快速流畅加载,本文对模型成果进行格网分块,并建立两级LOD(Levelofdetail)。
图11 管线分块格网组织
管线的格网划分是按xoy平面划分管线分块,如图11所示,将格网内的管点、管线等增加顶级节点,从而实现格网内模型的合并。给定格网尺寸gsize,一般取200,也可按照1∶500标准格网分幅进行管线格网划分。对于给定坐标点(x,y),获得格网索引号(xIdx,yIdx),格网两角点(xmin,ymin)、(xmax,ymax)以及中心点(cx,cy)的计算公式如式(6)所示:
(6)
其中,“[x]”表示小于或等于x的最大整数。利用管点的坐标或管线的中点坐标将管点和管线按上式划分到对应的格网中,每个格网块作为一个整体,为根节点,管点和管线作为叶节点进行组织。在管线加载时,管线的管理粒度为格网块,不深入到格网内部,因此构建三维空间索引能有效提高空间索引的效率,实现三维管线的加载与浏览。
两级LOD组织如下:LOD0是仅为管段的连线,LOD1是建模成果,建立管网LOD,当视点离远时,场景加载简模,由于简模仅由线段组成,数据量小,可实现大范围的管线加如图10左部分,当视点近视,加载精细建模成果,如下图右部分。在进行管线查询分析时,先查询到管线的格网级,再查询到格网内部,从而实现管线的管理和应用。
图12 管线分块与LOD组织
以重庆市北部新区三维管线建模(数据说明见下文第6节)为例,进行三维管线分块格网效率测试。采用重庆市勘测院集景三维数字城市平台,在同样的加载渲染机制下,比较了格网合并前后的某个同样场景管线加载和渲染效率。粗模比较的是远看的大场景,精细模型比较的近看的小场景,实验结果如表3,在多个场景加载测试下,表明分块后的管线格网有更大的加载和渲染效率,更为流畅。
分块格网加载渲染效率比较 表3
利用本文研究成果,在重庆市北部新区建立了三维管线信息系统,开展了三维管线应用。系统采用了重庆市勘测院集景三维数字城市平台开展了相关测试及管线应用功能开发。
整个区域共包括管点 320 758个,管线数量 317 288,管线总长度近 5 000km,三维管线建模及集成总时间约 3h,其中管线分块集成时间约 20min,通过建模实验,验证了本文三维建模技术流程的可行性以及三维建模成果的有效性。同时,在三维建模的基础上,建立了三维管线信息系统,包括管线图层管理、量测分析、空间属性查询、开挖分析、剖面分析等功能,如图13所示。
图13 三维管线应用
本文介绍了城市地下管线参数化建模流程,并重点对管点管线数据读取、建模前的预处理、管段及连通特征建模进行了介绍,实现了城市三维地下管网的参数化快速建模,给出了一种管线分块及LOD生成方法,用于提高大规模三维管线的调度、查询等效率,并开展了相关实验和应用项目建设。
城市地下管网的三维建模方式有很多,在实际工作中,需要根据二维数据的内容和格式进行调整,面向应用功能进行组织优化。在进一步的工作中,将完善与优化建模成果的外观效果,包括光照设置、模型色彩或纹理美化,结构优化等。
[1] 罗凌燕,贺军政,李育东. 城市地下管线三维快速建模技术研究及应用[J]. 测绘通报,2012(9):87~89.
[2] 周方晓,李昌华,赵亮.Sweep造型法在管线三维可视化中的应用[J]. 计算机工程与应用,2011,47(7):162~165.[3] 周京春,李清泉,施昆. 利用Sweep造型法进行管网精细化三维建模[J]. 武汉大学学报·信息科学版,2015,40(5):661~666.
[4] 左国成,王山东. 基于旋转矢量法的三维管线建模[J]. 计算机与数字工程,2013(279):118~120.
[5] 王琦,宋春凤,董春华. 基于OpenGL的3维弯管线的衔接方法[J]. 测绘科学,2008,4(33):151~152.
[6] 王锐,钱学雷.OpenSceneGraph三维渲染引擎设计与实践[M]. 清华大学出版社,2009.
Process and Method of Parameterized 3D Modeling for City Underground Pipeline
Zhan Yong,Chen Liangchao
(Chongqing Survey Institute,Chongqing 400020,China)
Because of Two-dimensional pipeline can not describe the spatial distribution of the pipeline effectively,but three-dimensional pipeline can do it better,which can display the spatial relationship of pipelines intuitively. In this paper,based on the actual work of the underground pipeline 3D modeling in ChongQing,the research of 3D pipeline modeling were carried out. This paper introduces the city underground pipeline parametric modeling process,especially for data preprocessing,feature modeling,pipeline connection modeling,additional facilities modeling,the method of creating pipeline block and LOD generation are described. At last,related experiments and application practices are carried out,and the validity of the method is proved.
underground pipeline three-dimensional model;parametric modeling;pipeline block;pipeline LOD
1672-8262(2017)02-19-06
P208.2
A
2016—07—04
詹勇(1987—),男,硕士,工程师,研究方向:三维地理信息系统原理及应用研究。 基金项目:地理空间信息工程国家测绘地理信息局重点实验室经费资助项目(201518);重庆市社会民生科技创新专项(cstc2016shmszx120005)