glTF在BIM模型轻量化中的应用
来源:用户上传
作者:
摘 要:BIM以数字信息模型为基础对建筑物整个生命周期进行信息化管理。BIM的最终需求是展示在电脑、移动终端等显示设备上。冗余海量的建筑信息加上巨大的建筑体量使得BIM数据量非常庞大,对服务器硬件要求非常苛刻。针对上述问题,文章提出一种基于glTF格式的BIM数据轻量化方法,降低BIM数据量,并运用案例进行验证其可行性。
关键词:glTF;BIM模型;轻量化
中图分类号:TU17 文献标志码:A 文章编号:2095-2945(2020)06-0174-03
Abstract: BIM carries on the information management to the whole life cycle of the building based on the digital information model. The ultimate requirement of BIM is to display on computers, mobile terminals and other display devices. The huge amount of redundant building information coupled with the huge volume of buildings makes the amount of BIM data very large, and the requirements for server hardware are very stringent. In view of the above problems, this paper proposes a lightweight method of BIM data based on glTF format to reduce the amount of BIM data, and uses a case to verify its feasibility.
Keywords: glTF; BIM model; lightweight
引言
BIM技术已经越来越多地应用于工程建设领域,BIM模型由专门的建模软件创建,根据创建软件系列的不同而采用不同的专有文件格式:Autodesk Revit软件系列的模型存储为*.rvt格式;Bentley MicroStation系列采用*.dgn文件格式; Catia系列產品使用 *.catPart等,这些BIM数据的解析需要依靠专有的BIM软件且包含精细的几何信息与丰富的语义信息,大多数BIM应用场景都是建筑群或特大高复杂度模型,因此模型体量非常大,即使在桌面客户端运行都需要高频CPU、大内存、独立显卡等较高的计算机配置。HTML5和WebGL等出现的互联网技术为开发一种不需要浏览器扩展功能或插件的虚拟三维应用场景提供了新的可能[1]。但是WebGL 技术在浏览器端利用本地客户端显卡,内存资源进行图形渲染,受限于网络宽带和服务器性能,当BIM模型体量超过终端设备承受范围时,容易出现加载时间过长、程序卡死或者系统崩溃等现象。网络传输与浏览器端图形渲染效率低下。因此要实现BIM模型在浏览器端的展示,需要将BIM数据格式转化为一种统一的、图形引擎可以识别和处理的数据格式。
1 BIM模型轻量化原理
BIM模型轻量化是指在不损失模型真实性的前提下通过先进算法把模型重构并且进行更轻便更灵活地显示。BIM模型采用WebGL引擎在Web和移动端显示需要经过图形数据转换和浏览器渲染处理两个过程,这两个过程正好是BIM模型轻量化的关键环节。模型数据转换是指将三维模型数据转换为可被图形引擎识别和处理的数据格式,并且在转换中进行数据压缩,转换后的模型数据量可以压缩到比原始三维网格的数据量小,简化后的数据格式用于优化存储和网络传输过程。模型轻量化显示是指转换后的模型被图形引擎解析和显示过程中通过提升渲染处理速度,达到流畅实时显示,如图1所示。
BIM模型主要由几何信息与非几何信息组成。非几何信息是指构件属性等相关数据,其轻量化方法比较简单,只要将其剥离于几何信息存储和压缩为DB文件或者JSON文件即可。
图形数据格式转换为轻量化的源头和核心。几何信息的轻量化方法可以分为:参数化几何描述,减面优化处理,实例化图元描述,数据压缩四种方法。
参数化几何描述:单个构件的轻量化参数表示,比如一个圆柱体可以使用五个参数来存储数据。参数1:底面原点坐标(x、y、z,3个小数);参数2:底面半径(r,1个小数);参数3:柱子高度(h,1个小数);减面优化处理:BIM模型中存在含有三角面的构件,模型越精细,其三角面片含量将越高,使用BIM三角网简化功能,删除模型中多余或重叠的点和面,简化模型构件的三角面片数;实例化图元描述:BIM模型一般会存在相同几何图元的多个实例,通过渲染管线绘制成几何构件。相同的构件通过添加一个引用和空间坐标来区别绘制在模型内不同地点。使用相似体的识别算法可以大大减少渲染几何体的数量;数据压缩:进行数据文件的无损压缩可以大大减少网络传输时间。Draco是glTF的扩展,用于网格压缩,用于压缩和解压缩3D网格以显著减小3D内容的大小[2]。它压缩顶点位置、法线、颜色、纹理坐标以及任何其他通用顶点属性,从而提高了在Web上传输3D内容的效率和速度。
模型轻量化显示:主要在解析模型文件,渲染绘制于浏览器端的过程中进行优化和加速。包括:可视域剔除、多重LOD (Level of Detail)、批量绘制、数据动态调整等技术提升渲染流畅度方法。
多重LOD(Levels of Detail):多重LOD用不同精细级别的几何体来表示物体,从轮廓模型到精细实体模型等不同的精度。在浏览器实时渲染模型中,在不影响视觉效果的前提下根据空间距离变化视点周围的物体精度,距离越远加载的模型越粗糙,距离越近加载的模型越精细,从而提高显示效率并降低存储。剔除技术是计算机图形学加速算法之一,包括视锥体剔除,遮挡剔除,背面剔除等方法如图2[3]。遮挡剔除(Occlusion Culling)是指消耗一小部分CPU来去掉不可见的物体,不改变最终渲染的画面的同时,降低GPU的负载,如图2所示。 批量绘制:计算机绘制图像要消耗CPU,图元个数越多,绘制效率越低。批量绘制将具有相同状态(例如相同材质)的物体合并到一次绘制调用中,可以减少绘制调用和平衡CPU和GPU负载。
数据动态调度:网络应用程序中,计算机图形系统通常在客户端或者服务器端采用缓存机制来提升系统的渲染性能。采用缓存机制实现数据的动态调取可以提高远程调用的效率。文献[3]提出动态数据缓存流程,如图3所示。
2 glTF模型格式研究
2.1 glTF的定义与架构
glTF(GL Transmission Format)是由Microsoft与Khron
os 3D公司共同推出的三维模型文件格式,致力于成为3D界的JPEG这种通用格式。glTF提供一种与供应商和运行时无关的格式,基本架构大致可以分为三个部分,其中作为核心的glTF模块位于最上层,是一个易于解析的JSON文件,该文件描述了3D场景的结构和组成,其中包含模型的节点层次、材质、相机、网格、着色器、动画等相关逻辑结构,应用程序通过读取这些信息对模型的环境和场景参数进行设置;bin模块包含了模型的几何数据、动画数据以及其他基于缓冲区的数据二进制文件。二进制数据的存储方式可以将其直接加载到GL缓冲区中,而无需进行其他解析或其他操作;png、jpg模块是一些图像文件描述了模型的纹理图,如图4所示。
2.2 glTF的特点
glTF数据结构轻便简洁,具有传输的及时性和解析的高效率等特点,非常符合Web端对于速度和简洁性的要求,具有非常多的优点。
压缩文件大小:glTF利用计算机图形学原理将几何信息保存为顶点索引的形式,并通过json格式进行引用和描述,有效去除重复信息。
实现快速加载:glTF数据结构已被设计为尽可能接近JSON和二进制文件中的GPU API数据,以减少加载时间。
运行时独立性:glTF对目标应用程序或3D引擎不做任何假设。glTF除了渲染和动画外没有指定任何运行时行为。
完整的3D场景表示:glTF可以完整保留模型中的动画、材质等信息,供实际渲染场景使用。
可扩展性:glTF提供了灵活的扩展机制允许添加通用扩展和特定于供应商的扩展。
2.3 glTF模型生成方法
目前支持多种常用的三维软件通过插件直接读写gltf格式,比如Maya、3dmax、unity等等,assimp也支持了gltf格式的读写。OBJ文件格式的三维模型文件可以使用obj2gltf将.obj文件转换为glTF模型文件。对于其他文件格式,可以使用自定义转换器来创建glTF模型文件。
2.4 glTF在BIM模型轻量化中的运用
glTF是计算机领域的存储规范,glTF中包含与三维图形相关的图元数据。glTF作为一种连接BIM模型与浏览器端显示模型的中转文件格式,可以完成BIM模型的数据转换。首先提取模型中有用的属性信息提取出来进行结构化存储,生成一份JSON格式的属性信息文件;然后提取构件几何信息,通过几何变换生成glTF格式建筑模型;最后将JSON格式的属性信息文件与glTF格式的建筑模型文件进行信息匹配,形成具有属性信息的完整glTF建筑模型,BIM模型的轻量化伴随着模型数据转换进行。
3 案例应用
3.1 模型轻量化数据转换
Autodesk Revit作为BIM软件的一种,其建立的三维模型已经被大量的运用于设计与施工阶段,Revit系列产品提供API (Application Programming Interface)供第三方开发者进行二次开发。本文通过分析BIM模型文件进行几何信息和构件信息进行模型和数据分离,通过API 二次开发Revit2gltf插件将.rvt格式文件转换导出为 .gltf 格式文件。转换过程中,非几何信息使用属性表和模型结构关系等导出为数据文件存储,属性表包括模型中每个构件的GUID、模型属性名称、属性值、属性分类等信息,模型结构关系信息包括模型、子模型、构件、零件的GUID和他们包含的关系。几何信息借助于模型轻量化转换技术:实例化图元描述方法用以单一存储模型中重复出现的构件图元;减面优化技术将模型中相邻的顶点合并在一起存储,降低曲面分段数,减少模型体量,如图5所示。
3.2 转换效果
为验证模型专函效果,本文中编写了Autodesk Revit插件,并使用插件对Autodesk Revit中官方提供的多个示例进行转换测试,效果如图6(渲染使用了Three.js库)。
3.3 转换效果分析
本文主要针对BIM模型中的几何信息部分,经过glTF格式的压缩之后,模型体量优化很多,上一小节中的两个模型,转换前后模型文件体积对比如下:
从上表中可以看出,glTF格式对于BIM模型的体积优化效果很好,尤其是对框架结构。这主要依靠glTF格式的几何信息实例化引用特性,加之案例中使用的BIM模型又具有很好的構件重复特性,尤其是结构框架实例中,几乎每一部分的模型都是某一个族的实例,使得glTF格式完全发挥出其效果。
4 结束语
针对BIM模型浏览器端高效渲染显示的实际需求,本文考虑将BIM模型通过二次开发进行数据文件转换,采用三维数据格式,实现了两种数据格式的转换。采用了BIM轻量化技术,通过案例验证了方法的可行性,该方法为BIM模型与其他数据结构融合提供了条件,同时为轻量化BIM提供了思路。
参考文献:
[1]智鹏.基于BIM的铁路建设管理平台及关键技术研究[D].中国铁道科学研究院,2018.
[2]Gabby Getz. Draco Compressed Meshes with glTF and 3D Tiles[EB/OL]. https://cesium.com/blog/2018/04/09/draco-compression/. html.2018-04-09.
[3]慕旭.集成GIS-BIM的三维地理场景快速构建方法研究[D].北京建筑大学,2019.
转载注明来源:https://www.xzbu.com/1/view-15119219.htm