首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

万达的BIM模型运行如此流畅!BIM轻量化技术解析!

作者:刘晓栋 I 广联达BIM建造技术总监

500+模型文件,2000+图纸文件,每天超过100万次的操作请求,超过2000个业务流程。

这样的数据,您是觉得陌生还是熟悉?夸张还是真实?

一个真实的万达广场BIM模型,比你想象的可能还要多!

面对这样众多的数据模型,错综复杂的业务流程,需要投入多少时间?多少办公设备?又需要投入多少人力?进行多少变更?

像万达这样千亿级的企业,能够将BIM和大数据做到这样的程度,是件非常了不起的事情。这样一个具备行业影响力的公司,在BIM应用落地上始终是走在行业前列的,同时,也呈现出了如今BIM模型逃不开的大趋势:

▶ BIM模型太大,硬件要求苛刻

▶ 移动办公,模型加载困难

BIM的最大价值在协同,不同岗位间、不同专业间、多参与方间都需要协同,将多个专业的模型整合为一个全专业的模型是最基础的工作。

原始设计模型保留很多设计过程中的信息,模型体量大,整合多个专业的模型后,体量会呈数量级的增大,对硬件的要求将会非常苛刻。

随着智能手机、平板电脑的全面普及,移动办公的基础硬件条件已经具备,BIM模型的体量却尚未跟上,如果BIM模型动辄几百M,几个G,对移动设备的处理能力和网络流量都是一个巨大的考验,轻量化是唯一出路。

建筑行业的轻装上阵,从BIM轻量化开始。

—轻量化原理及核心技术—

简单讲,BIM轻量化要解决的核心问题就是:缩小BIM模型体量,让它轻、显示快。

从数据维度看,设计模型包含几何信息和非几何信息两部分。几何信息即我们能看到的二维、三维模型,非几何信息通常指一些属性数据、建模相关的其他数据等,非几何信息的轻量化技术难度较低,按需提取存储即可,几何信息的轻量化技术难度较高,下面主要针对几何信息的轻量化展开。

(一)

BIM模型处理全流程

如上图所示,从设计模型转换到BIM模型,再到我们最终在电脑或者移动终端看到的模型,中间经历了两个处理过程,一个是几何转换,一个是渲染处理,这两个处理过程的好坏直接影响到最终轻量化的效果,因此我们也称其为BIM模型轻量化的关键环节,这两个环节是真正考验各个BIM软件厂商技术实力的关键点。

(二)

BIM模型轻量化的关键环节

1. 几何转换

几何转换过程就是将设计模型转换到BIM模型的过程,这个过程是整个轻量化的源头,也是核心。我们从微观和宏观两个方面来优化,实现轻量化。

微观层面的优化

从技术角度来看,业内目前存在两种处理方式,分别是参数化几何描述和三角化几何描述。

1) 参数化几何描述

用多个参数来描述一个几何体,我们称之为参数化几何描述。

例如:我们画一个圆形柱子,可以使用3个参数:

参数1:底面原点坐标(x、y、z,3个小数)

参数2:底面半径(r,1个小数)

参数3:柱子高度(h,1个小数)

这样,我们使用5个小数即可完成一个圆柱体的搭建,非常精简,参数化几何描述可以将单个图元做到最极致的轻量化。

它的具体过程如下:

2) 三角化几何描述

用多个三角形来描述一个几何体,我们称之为三角化几何描述。

三角形可以拼接成任意的平面或者曲面,多个面最终拼接成三维体,这是现代计算机图形处理的基础。我们在屏幕上看到的任何一个三维模型,都是由一个一个的三角形拼接而成的。

一个三维模型,三角形越多,模型看上去越精细,反之则越粗糙,这也是LOD(Levels of Detail)的基本原理。

还是用圆形柱子举例,我们可以使用n个三角形来拼接成圆柱的顶面、底面、圆形曲面,最终合成整个圆柱。n越大,柱子越光滑,否则圆柱的圆形曲面将会是有棱角的。

如下图所示,随着n的增大,模型的精细度越来越高:

那么,是不是n越大越好呢?聪明的你一定想到了,n越大,模型越精细,但是模型体量也越大,这和轻量化的初衷是背道而驰的。

那么n到底设置多少合适呢?这个问题没有答案,不同的应用场景对模型精细度的要求是不一样的,远距离查看全场景的模型,需要的精细度比较低,近距离查看单个图元,需要的精细度比较高,所以n设置多少都不合适,这也是三角化几何描述的弊端。

因此,同样画一个圆柱,三角化的几何描述需要至少数十个以上三角形来描述,比参数化描述方式大了很多,轻量化效果并不好。

具体过程如下:

3) 两种描述的对比

参数化几何描述需要解析设计模型的原始几何信息,然后转换为自有的几何描述,这个过程需要几何算法库的支撑,技术难度比较高,但是轻量化效果好,后期使用的灵活度很高,可以根据不同应用场景的精度要求,生成对应精度三角形数据来显示,能很好解决三角化几何描述的弊端。另外,参数化几何描述还有很多优点,比如:在精确测量,布尔运算(流水段切割图元)等方面的良好支持。

三角化几何描述只需要将设计模型转换为三角形数据保存即可,主流的设计软件一般都提供相关的二次开发接口或者SDK来获取三角形数据,技术难度比较低,但是轻量化效果不佳,后期的某些应用场景会受限。

宏观层面的优化

前面我们了解到,使用参数化几何描述方式,可以有效减少单个图元的体量,但是如果是一个大规模甚至超大规模的工程,数据量还是很可观的,这个时候的优化策略必须从宏观层面去考虑。

相似性算法减少图元数量

在一个工程中,有很多图元长得一模一样,比如很多桩的形状一模一样,只是位置不一样,这个时候我们可以做图元合并,即:只保留一个桩的数据,其他桩我们记录一个引用 + 空间坐标即可。通过这种方式我们可以有效减少图元数量,达到轻量化的目的。

如何判断两个图元是一模一样呢?相似性算法能有效判断两个图元能否合并,用专业术语来说,就是判断两个图元是否经过刚体变换,包含平移变换、旋转变换和镜像变换三种情况。

相似行算法能有效减少图元数量,尤其在基础工程、结构工程、钢结构工程等领域,能大幅度减少图元数量,轻量化效果非常明显。

2. 渲染处理

为了达到流畅、实时的显示,通常绘制需要达到15-30帧/秒。如果模型数据量比较大,尤其是建筑模型,汇集了各专业的数据,模型的三角面片数会达到数千万,内存的开销在20-30G以上。在常规的绘制流程下系统无法装载整个数据,绘制也非常卡顿,这时需要通过各种手段加速场景的绘制,并精简、控制内存的开销。

例如我们在文章开头讲的万达广场的案例,该案例中的BIM模型由11个专业78个文件组成,总大小约8个G。对于如此大体量的BIM模型,即便是在配置较好的电脑上,一次也只能用打开一到两个专业的模型。借助于云端的模型轻量化处理技术和模型动态加载技术,BIM平台在20秒左右即可在浏览器中打开万达广场的全专业模型,因此极大地降低了用户访问BIM模型的门槛。我们可以通过下方的一个视频了解一下。

下面我们再分别从微观和宏观两个角度对渲染处理做优化,由于篇幅所限,我们只介绍几种核心优化策略,而不是全部。

微观层面的优化

多重LOD(Levels of Detail),加速单图元渲染速度

多重LOD基本上是3D GIS领域的必备技能,在BIM领域也有广泛的应用。

当场景中的一些物体距离视点较远、或者物体本身比较小时,最终投射到屏幕上的像素并不多。如果用过多的几何图元来表示这些物体会浪费存储并影响性能。

多重LOD用不同级别的几何体来表示物体,距离越远加载的模型越粗糙,距离越近加载的模型越精细,从而在不影响视觉效果的前提下提高显示效率并降低存储。

从轻量化的技术讲完之后,是不是最好再接一个案例,然后通过一段话转到LOD度的讨论上比较合适?

单次渲染体量 = 图元数量 * 图元精度。

视点距离远的情况下,图元数量虽然多,但是图元精度比较低,所以体量可控。

视点距离近的情况下,图元精度虽然高,但是图元数量比较少,体量依然可控。

例如我们的视角是在一个房间的正前面,这个时候,我们目所能及的,可能只是一扇精细的窗或者一道精细的门;但如果我们的视角是在一栋楼的100米之外,那么我们将会看到是整栋楼的,门、窗等等相应图元,但这些图元不需要那么精细。

因此,使用LOD技术可以确保在大场景和局部场景下的都能流畅的显示模型。但是,LOD技术是一柄双刃剑,其可以有效控制单次渲染体量,但是多重LOD会导致模型文件变大,因为同一个图元可能会有多个几何形体表示,因此需要根据实际情况灵活使用。

LOD技术的应用有许多技巧,譬如按照室内、室外区分模型数据,或者按照远近、楼层、甚至建筑的专业与细节层次分类处理大小不同的建筑图元等。另外,应用LOD技术时通常也需考虑用户体验,以避免明显的显示效果跳跃。

宏观层面的优化

1) 遮挡剔除,减少渲染图元数量

遮挡剔除是将无法投射到人眼视锥中的物体裁剪掉,从而带来显示效率上的提升。遮挡剔除技术是在场景绘制中剔除当前视点下被遮挡的对象、只绘制最前面的对象,从而达到提升性能的目的。

如下图所示,被观察物由于被遮挡,所以不会被绘制,从而减少绘制量,提升性能,但是使用者的感知是一样的。

通常的做法是对图元做八叉树空间索引,然后根据视点计算场景中要剔除掉的图元,只绘制可见的图元。

2) 批量绘制,提升渲染流畅度

为了将一个物体绘制到屏幕上,需要发起一次图形API绘制调用。绘制调用非常耗费CPU、并且通常会造成GPU时间闲置。为了优化性能、平衡CPU和GPU负载,可以将具有相同状态(例如相同材质)的物体合并到一次绘制调用中,这叫做批次绘制调用。批次绘制调用通过合并物体来减少绘制调用,从而带来性能的优化。批次绘制可以预先处理,形成静态的批次,或者绘制每帧时进行动态调整,这时称为动态批次合并。有时也结合动态和静态的批次合并策略,达到渲染流畅度的提升。

—理想的轻量化技术方案—

前面我们了解到,轻量化主要从几何转换和渲染处理两个环节着手进行优化,权衡技术利弊及应用需求,笔者认为理想的技术方案如下:

轻量化模型数据 = 参数化几何描述(必须) + 相似性图元合并;

提升渲染效果 = 遮挡剔除 + 批量绘制 + LOD(可选);

—广联达BIM轻量化技术方案—

众所周知,在BIM领域的设计软件众多,而且绝大多数都是国外的设计软件。但不同的设计软件的数据描述各不相同,且数据的开放程度也各不相同,从设计端承接模型并轻量化是一个复杂的过程,尤其是参数化几何描述,难度更大,但参数化几何描述又恰恰是BIM模型轻量化的核心,要做到这一点需要有强大的图形技术做支撑。

广联达作为有担当的企业,十余年前就开始研发自有的图形平台和技术,投入了大量的研发资源,并在产品中持续应用和优化自有的图形技术,目前该技术已经达到了国际领先水平,同时广联达图形平台能够承接众多的上游软件,例如Revit等。

广联达BIM轻量化技术可以把99%以上的Revit几何体转换为自有的参数化几何体,从而达到极致的轻量化,那么最终效果怎么样呢?针对不同专业效果也不一样,土建专业的模型平面居多,压缩率比较高,基本能达到1:10以上,机电专业曲面较多,压缩率低一些,尤其机电设备较多的情况下,压缩率会更低一些,基本在1:5以上,综合来看,一个项目全专业模型的压缩率在1:5到1:10之间。

在渲染阶段,我们除了采用LOD、遮挡剔除、批量绘制手段外,还采用了很多其他优化手段,比如多线程调度、动态磁盘交换、首帧渲染优化等手段,大大加速了渲染效率。据统计,100万图元、3000万三角片的超大规模土建模型,渲染数据峰值内存占用不超过3G,并能流畅显示。20万图元,4500万三角片的机电模型,渲染数据峰值内存占用不超过2.5G,并能流畅显示。

BIM技术是建筑行业未来发展的必然趋势,模型轻量化是BIM技术中不可或缺的一个基础与前提。

BIM模型轻量化,广联达与您共同进步。

作者:刘晓栋 广联达BIM建造技术总监

设计:祁明亮 刘红霞

整理:宋丹婷、姚姚

审核:吕振、陈鲁遥

来源:广联达新建造,转载请标明来源

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180820B0ABOM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券