BIM模型轻量化及三维显示关键技术研究
2022-06-02陈前,王玮
陈 前,王 玮
(1、中铁建华南建设有限公司 广州 511458;2、广州地铁集团有限公司 广州 510220)
三维模型作为BIM技术领域中产品信息表达的主要方式之一,承载了一个完整的工程项目中体量庞大的数据信息。传统的数据交互主要采用三维模型数据交换、中性几何文件格式交换和中性显示模型数据交换3 种方式,但这几种传统的数据交互方式都存在着平台局限、数据局限、传输局限的问题。因此,如何在保留完整三维模型信息、保证模型精确度的基础上,将模型文件进行高效轻量化处理,实现百兆级以上的模型浏览与操作,是当前亟待解决的重要难点之一。
为了能够在终端上流畅的显示及操作三维模型,本项目提出了一种大体量三维模型轻量化及高效显示方案,能够在保留模型完整的信息和确保模型精度的基础上,将原始三维模型文件进行高效轻量化处理,最终实现大体量三维模型浏览与操作。
1 总体技术路线
BIM 模型轻量化关键环节主要包括:数据的高效存储与传输、渲染及显示。其中模型的高效存储与传输是在模型源文件轻量化转换的基础上使用压缩、构件模型流、运用缓存等技术进行实现,对于模型轻量化转换及渲染,张建平等人[1-2]采用数据分布、动态解析方法,对基于IFC的BIM三维几何建模及模型转换、Web 应用技术进行了研究,为隧道施工大体量模型轻量化和动态显示提供了参考,但盾构隧道工程几何构造不够规则、地址条件不够确定等原因造成IFC 标准制定难以实施。王磊等人[3]运用WebGL 标准中的Three.js框架对网页上简单三维场景显示流程进行分析并对场景中三维模型上添加热点进行了研究,实现了轻量化的三维模型的平移、缩放、旋转等操作,但在基于BIM 盾构隧道工程领域中,繁多的业务场景交互操作使功能开发难度较大。基于此,需要寻找一种适用于BIM 大体量模型的轻量化、人机交互和实时渲染技术。本文将重点分析模型轻量化转换和模型渲染及显示所涉及的方法和技术[4-10]。
2 模型高效存储
2.1 基于数据属性的模型存储
一般的BIM 模型文件包含了三维模型的几何数据和扩展属性,从而导致模型体量较大,因此严重影响了模型的网络传输及图形解析效率。本研究采用中心服务器存储BIM 模型,模型在服务器中自动拆分为几何数据和非几何数据,非几何数据直接存储至数据库中,几何数据则进一步通过模型轻理化进行压缩。当用户终端需要浏览BIM 模型时,首先会从服务器获取轻量化后的几何数据模型,然后按需向服务器请求模型的非几何属性,这种处理方式可降低模型的网络传输时间。
2.2 基于映射的几何模型存储
基于映射的几何模型存储方式,可以大量减少构件的存储量,并可降低用户终端的显存消耗,传统的流程如图1 所示,首先根据网格相似性匹配方法对各构件进行相似性分析,并对几何外形相似的构件采用同一组三角网格表示[11-15];紧接着通过转换矩阵的方式,存储其空间位置信息,并将三角网格组映射到相应位置,从而使得相似的构件只存储一次,降低模型的几何数据大小。基于此,KAVAN 等人[16]基于用户观察视角的不断变化对模型进行渲染的更新,客户端将需要图片从服务器映射到用户的平面或者立方体上进行显示,但对于近距离的观察会有失真感。SAIBI等人[17]基于贴图优化思想,先行固定纹理映射,巧妙的求解与单视角图像的差异,给出了较好的轻量化和准确性。
图1 传统的几何模型存储流程Fig.1 Traditional Geometric Model Storage Process
上述算法虽在模型特定的情况下能达到预期的目的,但是在可计算性、可操作性和效率方面存在一定不足且无法适应建筑模型大体量且复杂的特点。基于此,本研究提出了一种普适建筑信息模型的网格相似性度量算法。具体流程如图2所示。
图2 基于网格相似性匹配的建筑模型简化算法流程Fig.2 Flow Chart of Building Model Simplification Algorithm Based on Grid Similarity Matching
基于网格相似性匹配的建筑模型存储优化的算法流程详细步骤包括3步:
⑴初始定位:即计算模型的质心位置,并将质心移到原点位置。对模型进行初始定位可以使两个模型之间的位置差异减小,从而具有相同的校准条件。
⑵粗略快速判断:包括构件类型判断、包围盒对比判断、质心位置对比判断3个方面。
⑶三角网格相似性计算:对初始定位处理后的网格进行分析,按照距离与法向量加权误差最小的原则寻找最近点对序列,并对两个最近点对序列进行相似度评估。通过考虑两模型顶点的平均距离(加入邻近三角形面积和作为权值)、模型的尺寸大小等因素,定义两三角网格的相似度计算方式,来衡量模型的相似性。三角网格间的相似度如大于指定阀值,则认为两构件外形相同,对模型数据进行处理,计算效果如图3所示。
图3 三角网格相似性匹配结果Fig.3 Triangular Mesh Similarity Matching Results
2.3 三角网格的存储简化
三维模型需要转换为三角网格才能进行展示,本项目对几何模型的三角网格存储进行了简化,可减少三角网格数据的存储空间,从而降低几何模型的体量。本方法主要体现在网格顶点法向量的存储简化和三角网格点线面的存储优化。
2.3.1 顶点法向量的存储简化
顶点法向量并不会影响构件的几何形状,只会对构件的光照效果产生影响,因此在误差范围内对顶点法向量的存储进行简化对构件的展示产生的影响甚微。如图4 所示,正常情况下顶点法向量是一个float数组[x,y,z],占据的空间大小为4×3=12 bytes,空间中的单位向量可以转换为球坐标系,只需要2 个参数即可确定位置(λ,φ),其中λ∈[0,360],φ∈[-90,90],这样只需要4×2=8 bytes 的空间,进一步将(λ,φ)映射至(u,v),其中u∈[0,255],v∈[0,255]。过这一系列变换后,原本需要12 bytes的法向量,只需要2 bytes即可存储。
图4 三角网格点线面的存储优化Fig.4 Storage Optimization of Triangular Grid Points,Lines and Surfaces
三角网格数据存储过程中,在一些特定情况下可以减少存储的数据量,比如同一个平面的三角形顶点法向量只需要存储一次,通过建立顶点索引来存储三角形可以减少存储量等。
3 模型压缩
3.1 模型的三角网格简化
网格简化是指在保持原始模型形状变化尽可能小的情况下降低模型复杂度[15]。通过复杂构建进行三角网格简化,可通过降低显示所需的三角形数量,从而达到提升存储效率的目的。周元峰等人[18]采用基于体积平方度量的三角形折叠网格简化新方法,但对细节特征的保持效果一般。易兵等人[19]结合张量理论和二次误差简化算法,提出一种边界特征保持的几何网格模型分级二次误差简化算法,但算法较为复杂。为了尽量保存建筑构件的几何特征,本算法在前学者的研究基础上加入面划分及关联点识别、模型特征点识别与预处理、权值计算及累计简化误差度量三个关键技术,从而实现在保证最大精度的基础上还原真实模型效果,关键环节如图5所示。
图5 网格简化的关键环节Fig.5 Key Links of Grid Simplification
三角网格的简化效果如图6所示,可以看出,本算法在简化的过程中,对构件的一些特征点进行了很好的保留,尽量让模型保持了很高的辨识度。
图6 网格简化效果Fig.6 Effect of Mesh Simplification
3.2 基于Zstd压缩算法的模型压缩
为了更进一步降低几何模型的体积,本研究采用Zstd 无损压缩的形式对大体量几何模型做了进一步的无损压缩处理。所谓的无损压缩处理,是利用数据的统计冗余进行压缩,可完全恢复原始数据而不引起任何失真。目前存在多种无损压缩的算法,经调研与测试,在相同的硬件设备中,各算法的压缩比、压缩速度以及解压速度如表1 所示。通过对比,本研究选用Zstd压缩算法。
表1 各算法的压缩比、压缩速度以及解压速度Tab.1 Compression Ratio,Compression Speed and Decompression Speed of Each Algorithm
4 模型显示
在上述的模型简化后,还需对模型的加载做进一步优化,尤其是当原始模型的数据量较大时,需要加载所需要的局部网格区域即可。 模型的显示优化包括显示效率和显示质量的优化,主要采用的技术包括:视锥体裁剪、遮挡剔除、基于视点的动态剔除、渲染效果优化。
本研究采用网格局部重建的方法来对模型的显示进行优化,在离视点近的区域内部使用最高精度的网格模型,能够完整的观察到模型细节信息;在离视点远的区域,则保持最低精度的网格模型,即简化网格的分辨率[20]。上述方法通过对选择区域的局部细化,在满足对局部细节需要的前提下,使网格模型的三角形数目大大减少,从而降低了模型体量,提升了绘制和传输效率。
4.1 视锥体裁剪
视锥体的形状决定了模型如何从摄像机空间投影到屏幕上[21]。如图7 所示,透视投影使用棱锥作为视锥体,摄像机位于棱锥的椎顶[22],该棱锥被前后2 个平面截断,形成1 个棱台,只有位于视锥体内部的模型才是可见的[23]。
图7 视锥体裁剪示意图Fig.7 Schematic Diagram of Cone Cutting
4.2 遮挡剔除
如图8所示,在观察复杂模型时,场景中的各类物件会互相重叠,虽然小的物件也在视锥体范围内,但并不代表他们是不可见的。采用Hierarchical Z-Buffer算法,利用DX11 的新特性,完全在GPU 中并行执行。
图8 遮挡剔除原理Fig.8 Schematic of Occlusion Elimination
4.3 基于视点的动态剔除
如图9所示,当物体离摄像机比较远时,部分模型在观察状态下会显得很小,因此,在操作图形平台的时候可以不用渲染这些小的物体。
图9 基于视点的动态剔除操作界面Fig.9 View Based Dynamic Culling Operation Interface
4.4 渲染效果优化
当模型离摄像机比较远时,本研究在保证模型渲染效率的基础上,采用相对粗糙的渲染方式,当模型离摄像机比较近时,采用精细渲染,效果对比如图10所示。
图10 粗糙与精细渲染效果对比Fig.10 Comparison of Coarse and Fine Rendering Effects
5 工程应用
5.1 工程概况
广州市轨道交通18 号线和22 号线及同步实施场站综合体设计施工总承包项目,是广州市有史以来规模最大的单个招标项目,也是目前中国铁建在国内最大的设计施工总承包项目,两条线同时也是国内首条设计时速160 km 的高规格地铁市域快线[24]。18 号线从万顷沙站起至广州东站止,全长62.7 km,设站9座,其中换乘站8 座,22 号线从番禺广场站起至白鹅潭站,全长30.8 km;设站8 座,其中换乘站4 座。全线采用全过程、全方位、全生命周期BIM 信息化管理,自主研发城市轨道交通BIM 项目管 理平台,开展BIM 平台顶层框架设计及关键技术研究。
5.2 桌面端展示
BIM 系统图形平台综合采用分步加载和模型轻量化技术,优化三维模型浏览效率,最高优化比例可达14%。极限测试图形平台可流畅浏览模型数量达百万级别,三角形数量达亿级(见图11)。
图11 PC 端应用效果Fig.11 Application Effect of PC End
5.3 移动端的应用效果
MS 端(Android,iOS)图形轻量化显示:自主开发的基于OpenGL 的全平台(PC,Android,iOS)三维图形显示引擎,经过轻量化处理的三维模型能够流畅的在Android,iOS 端显示并流畅地操作(见图12)。
图12 MS端应用效果Fig.12 MS End Application Effect
5.4 模型轻量化对比
对本系统的模型轻量化效果进行实测,测数据中,测试样本的纯三角形数据(不包括样本属性)的存储大小为110.69 M,采用文上所述反式对模型进行处理,仅优化存储几何模型的数据结构,其存储空间就可以减少至62 M 左右,如果再对其进行压缩和简化(LOD 60),其体量可以减少至16 M 左右(见图13),经过上述方式的共同优化,一个模型的体量可以减少至原来体量的14%左右[25]。
图13 模型轻量化率Fig.13 Model Lightweight Rate
6 结论
本文从数据存储优化、模型压缩、模型显示优化显示3 个方面介绍了本项目模型轻量化关键技术,基于三角网格存储、Zstd 压缩算法、网格局部重建显示优化可在保留完整三维模型基本信息,保证模型精度的前提下,将原始三维模型文件进行高效的轻量化处理,实现大体量三维模型的流畅浏览与操作。