建筑物立面多层次快速建模方法

2023-02-23 11:32冯雅欣刘如飞王仕林李文辉
北京测绘 2023年1期
关键词:窗户层级墙体

冯雅欣 陈 丽 刘如飞 王仕林 李文辉

(1. 山东科技大学 测绘与空间信息学院, 山东 青岛 266590;2. 山东省地质测绘院, 山东 济南 250000)

0 引言

随着“数字城市”和“智慧城市”的发展,城市三维模型已经成为导航、城市规划与管理、仿真和虚拟现实等许多应用的核心内容,各种应用都要求城市模型具有高保真度和低复杂度,这些都离不开建筑物单体化三维建模这一关键技术[1-2]。而建筑物立面作为建筑物的重要组成部分,能否快速准确地进行几何重建至关重要[3]。

目前,三维激光扫描技术作为一种新兴的扫描技术,利用激光测距原理,通过记录建筑物表面大量密集点的三维坐标、反射率和纹理等信息,大面积快速获取被测对象表面的三维点云数据[4-6],并且能完整覆盖建筑物局部细节特征[7-9],具有效率高、精度高的特点,被广泛应用于建筑物三维重建。现有研究中,贾雪等[10]根据建筑物的结构特征,设计了合理的镶嵌模型,利用3ds MAX进行分块建模,再将屋顶、屋身、台基和门窗等块状模型进行组合,构造出完整的三维立体模型。杨雪姣等[11]将建筑物主体点云导入3ds MAX,进行建模及纹理贴图,三维模型成果根据需求进行三维漫游展示及功能二次开发。索俊锋等[12]利用Trimeble Realworks软件提取建筑物的基座、门、窗、柱体等平面位置在不同视角、不同高度的剖切面轮廓线,将其导入SketchUp软件中,创建三维模型。上述方法实现了建筑物三维模型的精细化重建,但具有劳动密集程度高、工作量大、成本大等缺点[13]。

因此,本文通过分析建筑物立面中各部件的几何特征、空间分布特征及拓扑关系,基于三维激光扫描仪获得的海量高保真点云数据[14],获取所需关键参数,自动生成多细节层次(levels of detail,LOD)建筑物墙体及窗户模型,构建建筑物立面多层次三维模型。

1 多细节层次立面模型设计

建筑物立面包含有丰富、直观的细节特征(如窗户、门、阳台等),所具有的逼真纹理和复杂的几何结构需要大容量的数据存储以及强大的计算能力来满足模型可视化渲染与分析要求[15]。由于大多数计算机的性能有限,因此有必要以不同的LOD来表达3D城市模型,以降低模型的复杂性和存储要求[16]。

目前常见的三维数据标准中,城市地理标记语言(city geography markup language,CityGML)对LOD具有最完备的定义。在CityGML中,CityGML标准根据建筑物语义信息将建筑物模型定义为5个层次细节(LOD0-LOD4),随着细节层次的提升可以获得更多细节信息,其潜在的应用也会不同[17]。现有建筑物LOD研究中,利用通用的LOD模型满足不同应用需求是比较困难的,因此需要根据具体应用需求建立不同精度的模型。故本文通过分析建筑物的几何特征、拓扑关系及空间分布特征,首先制作墙体及窗户不同层级的离散LOD,然后根据具体应用需求,选择不同层次细节的各建筑部件,生成所需的建筑物立面LOD。

1.1 建筑物立面模型特征描述

建筑物立面包含众多的显著细节特征,如墙面、窗户、门洞、地面、顶面、阳台、突起细节等,它们都具有不同的几何特征、空间分布特征以及拓扑关系。几何特征主要指各部件的表面几何形状,如尺寸、结构等,是实现建筑物各部件精准几何重建的重点。空间分布特征是指各细节要素的分布形态、地理位置及方位,是实现快速三维重建的基础。拓扑关系是指相邻立面及各面片之间的相互关系,如何重建立面与立面之间的拓扑关系是建筑物立面模型建立的关键[18]。建筑物立面中显著细节特征描述,如表1所示,其中窗户及墙体是本文研究的重点。

表1 建筑物立面细节特征描述表

1.2 多细节层次窗户模型设计

窗户目标作为建筑物立面中的主要细节特征,分布范围广且占据面积较大,因此构建窗户目标的LOD模型,可有效减少建筑物立面几何模型和纹理图像数大小,高效输出三维可视化场景。

本文根据CityGML中建筑物分级的纹理、分类、精度和功能等方面的模型特征,分析窗户的结构特征,设计了一种窗户目标的LOD模型,采用的划分方式及各层级所需获取关键参数如图1所示。①LOD1:借鉴已有的建筑信息模型(building information modeling,BIM)架构反映窗户模型的体量信息,由窗户外部轮廓拉伸而成;②LOD2:反映窗户主要结构,是在LOD1的基础上再进行细分,忽略建筑物由特殊造型所造成的结构变化,可满足基本结构分析,该层级模型由窗框和窗户内部轮廓拉伸而成的体块模型构成,并分别赋予纹理;③LOD3:此层级为精细模型,能够反映窗户部件的详细尺寸信息。

图1 窗户LOD模型及所需特征参数示意图

1.3 多细节层次墙体模型设计

墙体作为建筑物立面的重要内容,能反映建筑物的轮廓特征,是其他立面信息的依附。墙体具有复杂的结构,表面包含着很多外部细节,除了建筑物主墙体和侧墙面,还含有突起结构,故本文设计了LOD1-3层级墙体概念模型,如图2所示。采用的划分方式如下:①LOD1:体块模型,可看作由二维平面纵向拉伸为三维的块状模型;②LOD2:基础模型,在体块模型的基础上增加窗洞,形成墙体镂空模型;③LOD3:细节模型,在基础模型的基础上进一步丰富墙体外部的细节结构(窗檐、突起)。

图2 墙体LOD模型

2 建筑物立面自动化建模

MAXscript是Autodesk公司为3ds MAX软件开发的脚本语言,具有语法简单、功能强大的特点,可用于开发相应的程序实现建模、动画、渲染及场景动态控制等操作。针对结构上具有规律性的建筑物立面建模,运用 MAXscript编程比传统的交互式操作效率更高[19]。

本文主要运用MAXscript脚本语言提供的Rollout功能,通过用户界面Button、Edittext、Dropdownlist等,制作参数的输入界面,通过Message Driven机制,用鼠标单机来执行各部件三维建模代码,实现LOD1-3层级窗户及墙体模型的自动三维重建,从而能更加方便、快速地实现建筑物多层级立面三维重建。

2.1 窗户模型快速重建

本文提出一种面向窗户对象自动建模方法,该方法首先将几何特征相同的窗户部件分为一类,并根据各层级特征参数,分别自动重建三个层级窗户部件的单体模型;然后分析空间分布特征,研究分布规律,可快速生成各立面中LOD1-3层级窗户部件的三维模型,如图3所示,具有相同几何特征的窗户,一般其相邻窗户之间的横向距离和纵向距离是相同的,即d(A,D)与d(D,E),d(A,B)与d(B,C)的数值是相等的,只需计算出其横向个数n及纵向个数m,以左下角窗户点A为基准,即可自动生成整个立面中的窗户模型。最后,由1.2节的介绍可知,窗户包含于墙体内,且两者法向量方向及方位角相同,故获取A点的三维坐标以及依附在墙体的方位角α,即可自动实现该立面中窗户三维模型的真实位置坐标及姿态的准确还原。

图3 窗户目标快速生成示意图

LOD1-3层级窗户三维模型重建具体步骤为:

(1)创建函数box(),通过提取的关键参数t1、b1、h1,设置参数length、width、height、pos等参数,自动生成具有不同几何特征的LOD1层级窗户单体模型。

(2)创建函数box(),具体参数大小设置同LOD1层级一样,通过获取的关键参数t2、b2、h2、t4,利用脚本调用addModifier中的Edit_Poly接口,通过设置其中Inset、ExtrudeFace等参数,自动生成LOD2层级窗户单体模型。

(3)通过获取的关键参数b2、t3、b3、h3、h4、t5,在LOD2层级模型基础上,利用脚本增加Bevel、BridgeBorder等接口中的参数,自动生成LOD3层级窗户单体模型。

(4)以LOD1-3层级单体窗户模型为基准,通过调用copy函数,以A点位置为基准,通过两次for循环,批量自动生成各墙体立面中的LOD1-3层级窗户三维模型。

(5)初始化数组array1,将A点的三维坐标(x,y,z)及α加入array1,调用move函数及rote函数,通过for循环自动实现窗户位置及姿态的准确还原。

2.2 墙体模型快速重建

同一建筑物墙体具有不同的结构特征(高度、宽度)和纹理特征,且相邻墙面多为正交关系,为实现墙体自动建模,提出基于建筑物墙体分类、分层表面建模方案,将墙体结构和纹理特征相同的墙体分为一类,实现分层次快速建模。如图4所示,可将该建筑物墙体分为三类,并分别获取各类别的关键参数,如图5所示,通过MAXscript脚本语言分别重建墙体A、B、C的三维模型。

图4 建筑物墙体模型示意图

图5 墙体模型各个组成部分示意图

LOD1层级墙体模型根据墙体外角点信息A1,A2,…,A16及墙体厚度T1自动生成墙体二维平面图,如图6所示。并根据高度参数H1、H2、H3,分层次构建墙体。LOD2层级墙体模型是在LOD1层级墙体模型的基础上形成墙体的镂空模型,本文通过布尔差集运算(A-B)实现三维重建,该方法原理是从基础(最初选定)对象移除相交的体积,即需从LOD1墙体模型(A)中移除窗户与墙体相交的体积(B),其中运算对象B的长度及高度与窗户模型的数值相同,厚度的数值要大于T1,此时进行差集运算,实现墙体镂空模型重建。在LOD2层级墙体模型的基础上,将墙体镂空模型与墙面突起细节特征进行自动组装,实现LOD3层级墙体三维模型重建。

图6 墙体二维平面图

2.2.1 LOD1层级墙体三维模型重建步骤

(1)将角点A1,A2,…,A16的三维坐标依次赋予点号,并依次存储在数组B中,初始化数组array2,将B中的三维坐标加入array2中。

(2)fori=1 to 点号pdo,i=i+1,生成建筑物外轮廓。

(3)调用EditablePoly中的Inset接口,将insetAmount数值大小设置为T1,自动生成具有建筑物内轮廓信息的墙体平面模型。

(4)调用Extrude接口,根据参数H1,将墙体A的平面模型自动生成墙体三维模型。

(5)调用copy、move等函数,将墙体A平面模型沿Z轴方向移动H1,根据参数H2自动重建墙体B三维模型。

(6)根据参数H3在墙体B的基础上进行Extrude操作,生成墙体C。

2.2.2 LOD2层级墙体三维模型重建步骤

(1)调用box()函数,更改函数中的length参数,使其数值大于T1,自动生成运算对象B。

(2)利用Subtraction运算工具,将之前生成LOD1层级墙体与对象B做三维差积布尔运算,生成LOD2层级墙体三维模型。

2.2.3 LOD3层级墙体三维模型重建步骤

(1)调用Select接口,自动选中LOD3层级墙体模型及突起模型。

(2)利用EditablePoly中的attach工具接口将LOD2层级墙体模型与突起细节进行组装。

3 实验结果与分析

3.1 实验数据

本文基于3ds MAX软件,采用MAXscript脚本语言,根据上文所述方法,编写了自动生成建筑物墙体和窗户三维模型的插件。为验证该方法和相应插件的实用性及可靠性,使用FAROFocus3DX130三维激光扫描仪获取了单个建筑物的点云数据,如图7所示。

图7 建筑物点云

3.2 窗户三维模型重建

传统手工建模需要通过连接墙体线生成窗户面,在生成具有相同几何特征窗户模型时,需要多次选择窗户线,通过捕捉命令进行对齐操作,具有操作繁杂,工作量大等问题。本文面向窗户单体对象,获取关键参数,即可自动重建具有不同几何特征的窗户三维模型,且自动实现位置及姿态的准确还原。为更直观地显示各层级模型的几何特征,本文选用建筑物单个立面中的LOD1-3层级窗户线框模型进行展示,如图8所示。

图8 LOD1-3窗户线框模型

3.3 墙体三维模型重建

传统手工建模需要多次连接墙体线,分割出具有不同材质、高度的墙体,在操作过程中会出现选错墙体线,出现拓扑等错误,本文通过分析墙体几何及纹理特征,获取关键参数,自动实现墙体分层次建模,利用布尔运算构建墙体镂空模型,避免出现因操作失误引起的拓扑错误。按照第2.2节所述方法,利用各层级墙体模型所需特征参数,快速重建LOD1-3层级墙体模型,如图9所示。

图9 LOD1-3墙体模型

3.4 模型精度与效率评价

建模精度是衡量建筑物立面三维重建的重要指标,为了分析所构建的建筑物立面精度,从LOD3层级建筑物立面中随机选取根据本文方法得到的8个特征点坐标,并通过高精度三维信息采集软件采集点云数据中与之对应特征点的三维坐标,进行距离差计算,结果如表2所示,并对这8组数据进行统计分析,经计算距离偏差的中误差为0.126 m,建筑物立面三维重建精度较好。

表2 建筑物立面特征点坐标对比 单位:m

满足拓扑关系及精度的情况下,为测试各层级墙体模型和窗户模型的建模效率及多边形面片数量,本文统计了单个立面中LOD1-3层级窗户模型和墙体模型的顶点数、多边形数以及自动建模时间,统计情况如表3、表4所示。可以看出,模型精细度越高,数据量越大,所需建模时间越多,与传统手工建模相比较,本文构建多层级窗户模型和墙体模型所需时间明显缩短。

表3 建筑物单个立面中多LOD层级窗户模型特征及建模时间统计表

表4 多LOD层级墙体模型特征及建模时间统计表

最后将LOD3层级建筑物墙体、窗户及其他部件进行组装,形成LOD3层级建筑物单体模型,如图10所示。

图10 LOD3层级建筑物三维模型

4 结束语

综上所述,针对传统手工建模的缺点,本文以三维激光点云数据为基础,分析各部件的几何特征、空间分布特征及拓扑关系,设计一种新的窗户LOD概念模型和墙体LOD概念模型,定义了各细节层次精细度及所需的结构化特征数据,并基于MAXscript脚本语言,通过获取所需关键参数,实现了多层级窗户和墙体的自动重建。并对某建筑物点云数据进行实验,选取LOD3层级建筑物立面特征点与原始点云相对应的特征点距离中误差作为精度评价标准,经计算距离偏差的中误差为0.126 m,证明该建筑物立面模型构建精度较好,可满足城市信息模型中LOD1-4中的精度要求,满足城市规划管理和数字城市建设的需要,可结合建筑物地理坐标,进行地理信息系统(geographic information system,GIS)分析,实现建筑物信息查询和共享。在空间占位、功能分区等方面需求,建筑物三维模型几何精度还有待提高。

在解决精细度及数据量的问题上,统计了各层级墙体及窗户模型面片数量,实验结果表明,精细度越高,模型的面片数量越多,因此构建多层级窗户和墙体三维模型可有效减少建筑物立面几何模型的数据量。在建模效率问题上,将各层级建筑物建模时间与传统手工建模时间进行对比,实验结果表明,本文方法自动化程度较高,效率明显提高。针对立面为平面、相邻立面间为正交关系及窗户为规则形状的建筑物,本文方法能够较好地对其进行立面建模,但对于立面结构复杂、呈曲面构造的个别建筑物的几何模型尚不能有效构建,曲面墙体及曲面窗户是本文下一步重点研究内容,计划利用相应算法自动提取出曲面墙体和窗户的轮廓线,获取关键参数,利用MAXscript脚本实现复杂建筑物三维模型重建。

猜你喜欢
窗户层级墙体
浅谈UHPC在异形曲面墙体中的应用
新型建筑墙体材料及墙体保温技术分析
军工企业不同层级知识管理研究实践
基于军事力量层级划分的军力对比评估
职务职级并行后,科员可以努力到哪个层级
擦窗户
承重型3D板墙体抗震性能数值模拟
秸秆砖在墙体材料中的应用
爬窗户
窗户知多少