面向Web的地下洞室群模型加载与渲染优化设计

2024-05-14 12:39张澍张歆
人民长江 2024年4期
关键词:树结构洞室瓦片

张澍 张歆

摘要:为解决BIM大规模三维场景给WebGL管线带来的渲染压力,结合水电站地下洞室群的结构、分布特点对数据动态调度策略进行了调整和优化。通过对比分析BIM和GIS中的LOD处理方式,设计了兼顾模型详细程度和发展程度的双重LOD处理机制;通过研究传统金字塔型索引的结构特点和空间划分方式,设计了综合多种树结构的能够自动调整边界的空间索引结构。在此基础上设计了基于渐近加载的动态调度算法,测试表明该方法提高了大规模BIM模型在WebGL上的渲染效率和稳定性。

关键词:地下洞室群; 模型加载; 模型渲染; BIM; LOD; WebGL; Cesium

中图法分类号: TV738

文献标志码: A

DOI:10.16232/j.cnki.1001-4179.2024.04.023

0引 言

BIM技术贯穿了工程的设计、施工、运维等各个阶段,为实现水利水电工程的智慧化管理提供了坚实助力[1-4]。随着计算机行业的发展,借助互联网WebGL技术,将大规模地下洞室群的BIM模型通过Web浏览器进行展示,成为地下工程BIM技术发展的趋势。通过BIM与WebGL技术结合,构建WebBIM工程可视化云平台,可以帮助用户脱离专业软件平台和客户端的限制,降低BIM技术应用的门槛,借助互联网实现数据的跨平台实时共享[5-7]。尽管BIM模型有以上优点,但在网络端的传输、渲染效率方面的问题也亟待解决。

BIM模型的轻量化方面已经比较成熟,常用做法是将模型转换为3d Tiles并通过Cesium的接口加载,以解决BIM模型在网络端的传输问题[8-10]。但以目前的网络宽带和客户端设备性能而言,一次性加載和渲染大量的模型数据,常常造成GPU负载过重页面卡顿甚至画面撕裂,因此提高渲染效率和稳定性非常重要。

集成BIM与WebGL技术开发的三维可视化平台已有不少成功的案例,但大多数应用于民用建筑领域,而针对地下洞室群这种大规模、多跨度、结构复杂的三维场景,加载策略需要进一步研究。很多学者都在其平台构建过程中通过加入LOD处理、空间索引结构等策略,提高模型的渲染效率。但其实验对象多为城市建筑模型[11-12],而地下洞室群在建筑结构、空间分布上都有其自身的特点,直接套用这些策略可能无法满足工程可视化的需求。

为了减少大规模三维场景给WebGL管线的渲染压力,本文面向Web浏览器,把LOD处理、空间索引结构与三维场景数据动态调度算法相结合,对模型的加载和渲染过程进行优化设计。

1地下洞室群模型LOD处理

对于地下洞室群模型这类大规模的三维场景来说,用户往往会更加关注某一区域的建筑结构或者设备情况,因此可以对整体模型数据采取分块组织的形式。而针对不同区域模型存在的重要度差异问题,LOD技术会根据人体视觉获取物体特征的特点,对距离场景相机视点较远的区域模型进行模糊化处理,采用细节少的低精度瓦片进行渲染;而对于距离相机视点近、需要重点观察的区域模型则采用细节丰富的高精度瓦片进行渲染,从而加快场景的渲染效率,实现模型的平滑过渡。本文对BIM和GIS领域中LOD划分的特点和差异进行对比和分析,并结合地下洞室群模型的结构特点,提出符合实际工程需求的LOD处理机制。

1.1建筑信息模型LOD

在BIM领域中,LOD定义为模型的发展程度,即Level of Development。BIM Forum编制了专门的建筑信息模型LOD规范,对于各级LOD的定义见表1。

1.2地理信息模型LOD与BIM领域不同,GIS领域对LOD的定义为模型的详细程度,即Level of Details。GIS行业的通用数据标准CityGML(City Geometry Mark Language)将建筑模型的LOD分为LOD0~LOD4,共5种不同细节层次的表达方式[13],具体定义见表2。

1.3两种LOD对比

(1) BIM对模型LOD的划分侧重于对模型发展阶段的表示,但对于可视化而言,这种精细度很高的模型在渲染过程中会给系统或浏览器带来沉重的负担;而GIS对模型LOD的划分则更侧重于可视化展示,主要关注模型结构间的联系而忽略了属性信息的差异。因此将GIS中LOD的概念引入,结合两者的优势会更有效地提高三维空间数据的可视化效率和质量。

(2) 与应用于BIM和GIS领域的工民建类建筑模型相比,水电站的地下洞室群在空间地理分布以及建筑结构特征上都存在着很大的差异。首先,在地理分布方面,工民建领域主要以城市建筑或住宅模型为主,这些模型往往位于平原等视野开阔的地区,有地图影像作为形状及位置的依据,各建筑物之间独立存在,方便构建矢量模型;而水电站的地下洞室群一般位于山体之中,并以洞室群的形式呈现,建筑物之间的联系较为紧密,不宜构建矢量模型。

(3) 在建筑结构方面,工民建领域中无论是商业建筑还是居民住宅,受到环境影响较小,在结构安全的基础上,更加重视建筑的美观性,在建筑物外部存在很多的门、窗、幕墙、天窗等结构,因此在LOD的划分中需要分为粗糙轮廓模型和精细轮廓模型;而地下洞室群由于处于山腹之中,需要考虑地应力以及渗流水压力的影响,因此更加重视结构的安全性,建筑物外部也以“密封”形式为主,因此无需进行外部轮廓精细度的区分。

1.4双重LOD处理机制设计

在对地下洞室群特点进行充分剖析的基础上,结合地质模型将整个地下洞室群建筑信息模型划分为5个LOD等级,分别用于关注模型中的不同组成部分,如图1所示,各级LOD定义和用途见表3。

2地下洞室群空间索引结构设计

双重LOD处理机制将整个地下洞室群模型划分为5个不同层级的模型瓦片,但是不同层级的瓦片间没有明确的关联关系,同一层级瓦片内部的模型分布又处于散乱的状态。若使用这样无序组织的数据进行场景绘制,在场景发生变换时需要耗费大量的空间运算才能确定当前视域内的数据集合,难以达到快速、稳定的展示效果,影响用户的可视化体验。因此,针对地下洞室群工程这样的大规模、复杂三维场景,需要建立高效的空间索引为数据调度提供支持,以提高数据的查询和可视化效率。

2.1传统空间索引结构

目前,较为常用的空间索引为金字塔型结构[14],这种索引结构可以在实现数据快速调度的同时,准确表达数据间的关联关系。金字塔型索引结构按照空间划分方式可以细分为四叉树、K-d树和八叉树等主要结构。Cesium采用的3dTiles一般采用八叉树或四叉树结构[15-17]。

2.2多元自适应型空间索引结构设计

地下洞室群受到地质赋存环境的影响,主要洞室(如厂房洞、主变洞)的位置会特意避开断层和裂隙作用带,同时为了满足发电需求,要求进水口和机组之间拥有一定的高程差和较长的压力管道,因此整个模型在空间上并不是均匀分布。另外,地下洞室群建筑物内的模型联系十分紧密,而传统树结构严格的子空间划分方式导致模型被多个子空间割裂,在多个子空间瓦片内部重复存储。

在考虑地下洞室群空间分布特点的情况下,设计出具有自适应性的空间索引结构。这种新型结构在多种树结构灵活组合的基础上,对其空间划分方式进行修改,使其能够灵活地改变空间边界,避免模型割裂现象的产生,提高存储空间的利用效率。其设计原理如图2所示。主要步骤如下:

(1) 初始化根节点。获取场景中包含所有地下洞室群建筑模型的最小包围体,即包含LOD0~LOD4级模型在内的六面体包围盒,其边界与Revit坐标轴平行,记录该包围盒的信息并与LOD0级模型瓦片一起组成根部节点。

(2) 快速定位主要功能建筑。采用八叉树结构对根节点的包围盒进行空间划分,定位主要建筑物(如:主厂房、副厂房、主变室、调压室、压力管道、交通井等)的位置,记录划分后的子空间包围盒并与其中的LOD1级模型瓦片组成一级子节点。

(3) 快速定位建筑层级结构。考虑到地下洞室群中主要建筑(如主厂房、副厂房及主变室)都为多楼层结构,因此采用二叉树结构在高程方向对一级子节点的包围盒进行空间划分,定位不同楼层结构的高程位置,记录划分后的子空间包围盒并与其中的LOD2级模型瓦片组成二级子节点。

(4) 划分层间模型区域。由于楼层中模型的高程分布相对统一,因此采用四叉树结构在楼层所在的高程平面上对二级子节点的包围盒进行空间划分,对层间的机电设备模型进行区域划分,记录划分后的子空间包围盒并与其中的LOD3级机电模型瓦片组成三级子节点。

(5) 快速定位单体模型位置。在三级节点的包围盒中仍存在多种类型的模型构件,由于他们都在一个楼层平面上,因此继续采用四叉树结构对该包围盒进行划分,直至包围盒的大小达到阈值或包围盒内的模型不可再分。记录此时的子包围盒并与LOD4级的高精度单体模型瓦片组成叶子节点,完成整个空间索引树结构的构建。

2.3包围盒边界自适应调整算法

在空间划分过程中,针对模型割裂的现象,设计自适应算法对包围盒的边界进行调整。算法设计原理如图3所示。主要步骤如下:

(1) 将父包围盒等分为若干个体积相同的子包围盒,用每个子包围盒去获取所有形心在其内部的模型集合。

(2) 对于子包围盒内的模型几何进行遍历,获取每个模型的包围盒信息,组成一个包含所有模型在内的最小包围盒。

(3) 根据得到的最小包围盒对子包围盒进行边界调整。调整后的包围盒边界更适合地下洞室群中建筑物非均匀分布的实际情况,并且允许子包围盒的部分空间重合。此外,调整后的包围盒边界避免了对模型的割裂,也减少了树结构中的空白区域,提高了数据存储的效率。

3渐进加载设计

在完成模型双重LOD处理的基础上,采用渐进加载的方法可以帮助GPU动态选择合适可视化层级的瓦片进行绘制,进一步减轻渲染的负担[18-19]。

渐进加载本质上是一种基于视锥体的渲染优化策略,它会根据视锥体内部三维瓦片与相机视点的距离决定其加载的分辨率级别。相机视点拉近,屏幕中的模型数量变少,精度提高,需要更高LOD等級的三维瓦片;相机视点拉远,屏幕中模型数量变多,精度下降,可以使用较低LOD等级的瓦片来减轻渲染压力。在系统运行时,采用屏幕空间误差作为瓦片更换的判断依据[20],其计算原理如图5所示。

在相机视点变化的过程中,计算机会不断计算瓦片的屏幕空间误差e,并与设定阈值ε(本文设定为2个像素)相比,当e>ε时,则加载下一LOD等级的瓦片来替换当前瓦片;当e<ε时,则保留当前瓦片进行渲染。

在渐进加载的基础上,采用以增加为主、替换为辅的方式来进行过渡。在地下洞室群模型加载的过程中,首先只加载LOD0的地质模型,随着视点的逐渐拉近,会在地质模型的基础上再逐步增加地下洞室群的外部结构模型(LOD1)、内部结构模型(LOD2)以及机电设备模型(LOD3);当视角完全集中在某个模型构件时,会用更高精度的单体模型来替换当前模型,并且会将模型的语义信息绑定在高精度模型上,从而实现模型信息的全方位感知,如图6所示。这种将增加与替换结合的LOD策略,不仅能够减少场景加载过程中三角面片的绘制数量,而且能更好地实现模型的平滑过渡,给人以更好的可视化体验。但是由于视角内能够观察到的模型有限,因此还需要对每个LOD层级的模型(LOD1~LOD4)进行分块处理,来实现模型的分区展示。

4实例验证

采用Cesium,选取精细度中等的glTF模型切片制作的地下洞室群三维瓦片,对本文提出的模型加载与渲染优化设计进行验证。模型如图7所示。

首先对模型分别进行LOD处理和划分空间索引结构,将得到的模型在浏览器客户端中加载,观察其加载过程中的帧率变化,如图8所示。其中系列1为模型直接加载,系列2为模型划分空间结构后加载,系列3为模型LOD处理后加载,系列4为模型LOD处理和划分空间结构后加载。

从图8可以看出:LOD处理后的模型在场景绘制过程中很快(2 s内)就达到了帧率峰值60FPS附近,并一直保持在稳定的峰值水平;而未经LOD处理的模型在场景绘制过程中帧率缓慢上升,直到10 s时才接近帧率峰值,并且还会出现掉帧的现象,由此可以证明LOD处理在加快模型渲染效率、提高可视化水平方面起到了重要的作用。

然后在场景帧率稳定之后,对不同处理方式得到的模型分别进行缩放、漫游等操作,按照外部山体-山体内部建筑-厂房内部-机电设备的漫游路线,观察场景切换过程中的帧率变化情况,如图9所示。

从图9可以看出:划分空间索引结构和采用渐进加载后的模型在场景变换时帧率的变化波动更小,并且帧率峰值的稳定方面也表现得更好,由此可以证明合理的空间结构划分对于保持场景的渲染水平、提高可视化水平具有重要的作用。

5结 论

(1) 本文分析了BIM和GIS中的LOD处理方式,结合地下洞室群空间分布不均匀和内部联系紧密的特点,提出兼顾模型详细程度和发展程度的双重LOD处理机制,实现了不同层级重点关注不同的模型。

(2) 通过研究传统金字塔型索引的结构特点和空间划分方式,在综合多种树结构的基础上,本文设计了能够自动调整边界的空间索引结构,能够灵活地改变空间边界,避免模型割裂现象的产生,提高存储空间的利用效率和渲染效果。

(3) 采用渐进加载等数据动态调度方法,可对模型渲染过程进一步优化,进一步提高了渲染的效率和稳定性,有助于减轻浏览器负担,提升可视化效果。

参考文献:

[1]补舒棋,毛拥政,郑湘文,等.BIM协同设计在三河口电站供水发厂房系统中的应用[J].水利水电快报,2020,41(10):30-35.

[2]张鹏利,崔超,贾宁霄.BIM在黄金峡水利枢纽工程设计中的应用研究[J].人民长江,2022,53(5):149-155.

[3]鄢江平,翟海峰.杨房沟水电站建设质量智慧管理系统的研发及应用[J].长江科学院院报,2020,37(12):169-175,182.

[4]周相,段斌,靳玉鹏,等.基于BIM的地下洞室三维可视化地质预报方法研究[J].人民长江,2022,53(增2):64-66,79.

[5]傅蜀燕,赵志勇,杨硕文,等.基于三维BIM+WebGIS技术的区域数字水库构建[J].长江科学院院报,2018,35(4):134-136,142.

[6]胡夏恺,陈俊涛,杨聃,等.基于Revit二次开发的BIM+WebGIS融合应用研究[J].中南大学学报(自然科学版),2021,52(11):3930-3942.

[7]潘飞,张社荣.基于3D WebGIS的土木水利工程BIM集成和管理研究[J].计算机应用与软件,2018,35(4):69-74,136.

[8]安指扬.建筑信息模型的轻量化研究与应用[D].邯郸:河北工程大学,2021.

[9]孙源,王国光,赵杏英,等.BIM模型轻量化技术研究与实现[J].人民长江,2021,52(12):229-235.

[10]纪传波,周建中,冯快乐,等.基于轻量级WebGIS的流域仿真平台设计与实现[J].人民长江,2022,53(6):228-234.

[11]程慧.基于Cesium的城市三维模型非仿真动态可视化研究[D].南京:南京財经大学,2020.

[12]周杨,胡校飞,靳彩娇,等.图形图像融合的海量建筑绘制[J].中国图象图形学报,2018,23(7):1072-1080.

[13]GRGER G,KOLBE T H,NAGEL C,et al.OGC city geography markup language (CityGML) encoding standard,version 2.0.0[R].[S.l.]:Open Geospatial Consortium,2012.

[14]曾祥钊,李传荣,张正,等.面向海量点云快速显示的叠加型金字塔索引结构研究[J].遥感技术与应用,2015,30(3):534-539.

[15]曹浩泽.3D Tiles定义解析与生产规范设计[D].武汉:武汉大学,2018.

[16]孟天杭.基于Cesium的大规模三维场景瓦片构建与可视化[D].北京:北京建筑大学,2021.

[17]刘振宇.GIS结合BIM下的异构建模融合方法研究[D].西安:西安电子科技大学,2022.

[18]袁思林.面向Web端的建筑信息模型轻量化展示研究[D].西安:西安电子科技大学,2022.

[19]尹培培,陈庆,陈小佩,等.基于渐进式传输与增量绘制的地理大数据可视化方法[J].地理空间信息,2020,18(12):70-74,7.

[20]黄欣然,江文萍,刘一飞,等.Cesium环境中三维场景数据的加载优化策略[J].测绘地理信息,2022,47(增1):94-98.

(编辑:郑 毅)

猜你喜欢
树结构洞室瓦片
一种基于主题时空价值的服务器端瓦片缓存算法
惯性
乌干达Karuma水电站地下厂房洞室群围岩稳定分析
四维余代数的分类
基于改进的非连续变形方法的洞室围岩稳定性分析
水电站地下洞室群施工通风研究
大数据背景下基于B—树结构的SQL Server数据优化策略研究
基于μσ-DWC特征和树结构M-SVM的多维时间序列分类
采用动态树结构实现网络课程内容的动态更新
基于NoSQL数据库的瓦片地图服务