詹勇,王俊勇
(重庆市勘测院,重庆 401121)
从新型基础测绘到实景三维中国建设,从建筑信息模型(BIM,Building Information Modeling)到城市信息模型(CIM,City Information Modeling),从三维数字城市到数字孪生城市建设,三维地理信息系统(3DGIS,3D Geographic Information System)与BIM技术是其中的重要内容[1~3]。3DGIS是实现全空间全要素的城市立体空间底座建设的主要技术手段,其涵盖空间数据采集与建模、数据整合与管理、三维平台研发以及面向行业的应用服务体系建设。BIM技术是建筑信息化的重要方法,是建筑领域从二维化到三维化,图纸化到信息化管理的重要手段。BIM更侧重建筑内部或结构特征的表达,利用BIM技术,可实现建筑方案设计、详细设计、施工管理和运营维护的全面提升[4,5],服务建筑工程全生命周期。
与SAR影像和真彩色影像融合等产生新的图像数据不同[6],本文所述的BIM与GIS接边方法,是BIM与GIS融合的工作内容之一,指两者完成几何语义转换、形成同一数据格式后,在同一个三维引擎或平台边缘相接,避免两类模型重叠的问题。BIM与GIS的融合主要包括以下几方面:一是空间位置的配准。GIS数据具有明确的地理空间框架,通常表现为地理坐标系或投影坐标系,而BIM模型一般采用工程坐标系,长度单位通常采用毫米,因此首先需要进行空间配准和单位转换;二是几何图形的转换。BIM模型由构件组成,可采用BIM建模软件,例如Autodesk Revit建模。BIM构件是通过参数描述的,因此需要通过中间格式转换成三维GIS软件所支持的格式,进而实现BIM模型在GIS软件中的可视化表达[7];三是语义属性的转换[8],需要将BIM构件的属性以及BIM构件之间的关系保留。最后是BIM模型与GIS数据的接边问题,也是本文研究的内容,对与建筑方案BIM,GIS场景中工程范围内的现状数据需要通过接边处理,方能与BIM方案模型数据融合,进而开展各类分析工作。
为了在现状GIS场景,例如倾斜摄影实景三维模型中融入BIM方案数据,有两种思路,一是在制作BIM方案时导入实景模型作为参考,在BIM建模软件中进行接边处理;二是BIM经转换后,导入GIS模型编辑软件中,再对GIS模型进行裁切编辑。这两种方案都会导致三个问题:一是人工编辑工作量大,二是编辑后的GIS模型需要重新集成组织。如果建筑方案比较多,则会因GIS模型多次编辑带来组织混乱;三是由于GIS模型进行了编辑,在进行方案决策时,难以恢复到无BIM方案的现状,从而难以实现方案与现状的随时切换比较。本文提出的BIM模型与GIS场景动态可视化接边方法,可通过三维GIS场景的挖空或塌陷功能的实时开启和关闭,解决BIM模型与GIS数据的接边问题,实现GIS场景现状与BIM方案之间的快速切换,达到BIM模型与GIS场景的动态可视化融合的目的。
BIM模型与GIS场景动态可视化接边方法的技术路线如图1所示:
图1 技术路线图
首先,利用相关BIM软件的导出工具,将BIM工程模型转换成GIS支持的格式,并将BIM模型与GIS场景空间位置配准,然后提取BIM模型的边界并导入到GIS场景中,利用BIM模型的边界实现GIS场景动态挖洞或塌陷,在无须对GIS数据进行人工编辑的情况下,实现BIM方案与GIS场景的快速接边与融合可视化目的。
BIM制作的数据通常是工程坐标系,若需要与GIS场景配准,通常有三种方式,一种利用建模软件,在GIS空间参考的基础上,通过减大数的方式确定BIM模型的工程坐标,然后在BIM建模软件中开展BIM建模工作;第二种是利用GIS或BIM软件,将GIS数据作为数据底板,利用平移旋转等工具,实现BIM数据与GIS数据的空间可视化配准;第三种方法利用控制点,通过四参数或七参数计算转换参数[9],逐点转换,实现BIM数据的空间变换。
在空间配准的基础上,要获得建筑方案的精确范围线,有人工勾画和自动生成两种方法,人工勾画是在建模软件中直接建模,得到场景底面。而自动生成的建筑底面,即BIM边界模型有两种形式:矢量边界与纹理边界。纹理边界内部采用(0,0,0,255)颜色表示,矢量边界模型采用几何形状表示。两者相比,矢量边界更加清晰,而纹理边界的清晰程度取决于纹理分辨率,纹理分辨率越高,边界越清晰,如图2分别表示的是BIM模型的顶视图,矢量边界与纹理边界。
图2 BIM模型边界
矢量边界可以通过人工方式勾画得到,也可以利用自动化方式生成。此处给出一种求并集方式获得模型边界的方法,首先将BIM模型的所有三角面投影到XOY平面上,通过计算求得所有三角形的并集,得到所有三角形的外边界,得到矢量化的精细外边界,步骤如图3所示。编程实现时,可利用GDAL(Geospatial Data Abstraction Library)函数库实现。根据矢量化精细模型边界线,可得到边界模型。由于边界模型是通过三角形坐标获得的,因此与GIS场景在空间上套合的。
图3 矢量边界提取方法
如图4所示,纹理边界通过构造一个虚拟的俯视正交相机,在BIM模型的顶视图的基础上,将顶视图进行二值化处理,可得到边界纹理,例如利用pixelA(0,0,0,255)代表有BIM模型区域,pixelB(255,255,255,255)代表无BIM模型的区域。利用BIM模型的外包围盒包含的边界点(xmin,ymin,0)、(xmax,ymax,0)可以构建矩形A(xmin,ymin,0),B(xmin,ymax,0),C(xmax,ymax,0),D(xmin,ymin,0),并赋予边界纹理得到纹理边界模型,使之在俯视时,与GIS场景能够正确套合,从而形成BIM方案模型的纹理边界模型。
图4 纹理边界提取方法
根据三维引擎的不同,可使用不同的动态计算方法实现三维GIS场景的动态挖洞和塌陷。首先将边界信息(矢量边界或纹理边界)导入到GIS场景中,然后利用渲染至纹理(RTT,Render To Texture)技术[10],将边界信息转换成随场景相机位置与角度实时变换的RTT纹理图片,然后利用投影纹理映射(PTM,Projective Texture Mapping)技术[10]将RTT纹理图片投射到构建三维GIS场景模型上,最后采用GPU编程技术,根据纹理图片中表达为边界的像素值,实现场景的动态挖空或塌陷。具体技术包括渲染至纹理、投影纹理映射以及基于GPU计算[11]的实时挖洞与塌陷等步骤。
三维场景最终呈现在屏幕的渲染结果会进入帧缓存,最终显示到屏幕中。而RTT技术可在渲染对象进入帧缓存以后,截取帧缓存中的像素对象并回传给应用程序,方便应用程序做后续的处理,例如环境光反射等特效[10,12]。本文中,需要利用正交相机获得BIM边界模型的渲染至纹理结果,包括用来RTT的三维场景,RTT相机,利用RTT相机渲染场景,得到渲染后的纹理。在获得BIM的模型边界的基础上,利用边界模型构建用来RTT的三维场景,然后构建一个俯视的RTT正交相机,每帧都可以获得一个带有边界信息的RTT纹理,如图5所示不同相机视角下的RTT纹理,实际都是与BIM模型套合的。
图5 边界模型的不同角度RTT纹理
投影纹理映射,用于映射一个纹理到物体上,就像将幻灯片投影到墙上一样。该方法不需要在应用程序中指定顶点纹理坐标,实际上,投影纹理映射中使用的纹理坐标是在顶点着色程序中通过视点矩阵和投影矩阵计算得到的,通常也被称作投影纹理坐标。投影纹理映射有两大优点:其一,将纹理与空间顶点进行实时对应,不需要预先在建模软件中生成纹理坐标;其二,使用投影纹理映射,可以有效地避免纹理扭曲现象[10]。在本文中,投影纹理映射就是将获得的RTT纹理投射到三维GIS场景模型上,例如倾斜摄影实景三维模型上,此时,投射的角度是俯视的,如图6所示的是图5的RTT纹理映射到三维GIS模型上的效果。
图6 投影纹理映射
在GIS场景中的实景三维模型(也可是其他模型)获得投影纹理后,此时可利用GPU片元着色器,通过GPU编程控制实景三维模型的最终显示效果,从而得到模型的挖洞(透明不显示)、或塌陷效果。着色器语言是一种编程语言,允许应用程序显式地制定在处理顶点和片段时所执行的操作。
着色器语言通常包括顶点着色器和片段着色器[10]。在片段着色器中,通过识别BIM边界模型获得的RTT纹理像素值,如表1所示,当设置模型边界范围内的纹理之为B,则片元着色器中RTT纹理当前的像素值Pixel为B时,采用片元着色器中的Discard方法,当前像素不显示,则表现为挖洞,如图7(a)所示。
在模型挖洞的基础上,根据挖洞范围,设置塌陷深度,根据矢量边界的每条边,对GIS场景模型进行间隔采样,得到侧面模型的上边沿,进而生成侧面模型,底面模型根据矢量边界和塌陷深度得到,最终效果如图7(b)所示。
挖洞条件 表1
图7 挖洞与塌陷效果
在挖洞或塌陷的基础上,显示BIM方案模型,即可得到BIM方案模型与3D GIS场景的接边融合效果。通过挖洞、塌陷功能与BIM方案显隐控制,可以实现现状3D GIS与BIM方案的快速切换,如图8所示,土建BIM与机电BIM与3D GIS倾斜模型的动态接边可视化。
图8 土建BIM与机电BIM可视化融合
利用3D GIS技术可以建立城市级的虚拟三维场景,构建城市立体空间底座,根据三维引擎的不同,可以使用动态计算方法实现三维GIS场景的动态挖洞和塌陷,实现方案模型与三维GIS场景的融合。在重庆市勘测院自主研发的集景三维数字城市平台中,利用本项目成果,提供了方案集成与动态可视化融合方案,能够实现三维GIS现状数据与建筑方案BIM的融合,如图9所示。一方面,可以保持一个三维现状底板,而无须随着方案的增加造成底板的不断修改,减少了数据编辑工作量,另一方面,可以实现现状与方案的快速切换,方便用户开展方案审查。
图9 重庆市某医院建筑方案审查
利用本文BIM模型与GIS可视化融合方法,还有实现倾斜摄影实景三维模型的动态单体化,进而实现模型的属性挂接。在获得一个矢量边界以后,可以赋予矢量面ID编码,作为属性挂接标识码,利用前文的纹理投射技术,可以实现建筑的范围标绘,如图6所示,利用挖洞,实现建筑的显示和隐藏,如图7所示。
为解决三维GIS场景和BIM方案融合,本文综合利用渲染至纹理、投影纹理映射、GPU编程计算实现了两者的可视化接边方法,而并非在物理上实现数据的正在拼接,减少了数据编辑、管理与组织工作,提升了工作效率,方便了现状场景与未来设计的快速切换。
这种利用材质编辑方法,从可视化角度实现的场景效果,可解决诸多需要从数据层面开展的工作,例如通过动态调整几何面的纹理,可以模拟水面的波动,实现场景动态特效,通过编辑三维场景显示到屏幕的帧图像,能够实现可视化场景的对比度增强和色调调整。