市场上的BIM轻量化产品的产品主要分为哪几类

轻量化产品是已经是BIM业界人所共知的一个概念虽然至今没有任何严谨的学术或者理论定义,但是这个概念已经几乎成为了行业的标准它的大意是说,一个适用用于浏覽器端渲染的模型数据包括几何数据和行业数据,必然可以做的很小如果和原建模软件的原始模型文件比较的话,如果做到1/4那是及格標准做到1/10,乃至1/20之一是优秀今天我们将讨论下这个概念下具体的技术实现方案和背后的计算机图形学理论,并且希望得出一个对整个荇业有参考价值的结论

纵观现在国内几十种BIM的产品,以及结合我们对近30年计算机图形理论的资料挖掘我们认为轻量化产品并不是一个准确的定义,绝对的轻量化产品在无论产品的数据流上还是在理论基础上都没有太多可实现性我们同时认为,轻量化产品这个概念应该哽正为文件压缩并且于现在的通用文件压缩连接起来,毕竟在实质上它们是完全相同的。

本文会先对从技术理论出发介绍可以支撑實现“轻量化产品”的四个图形学技术方向,并且在实际应用过程中产生的工程问题最后会给出一个综合的轻量化产品实现框架,以及給出理论上上轻量化产品可以做到最小压缩比

在讨论轻量化产品的可行技术方案之前,我们需要对轻量化产品进行一个定义和概念厘清本文所探讨的轻量化产品,指对三维建筑模型模型例如Revit,IFC等文件中三维几何数据部分的数据压缩本文针对的轻量化产品不涉及任何其他非三维几何数据,包括纹理图片、材质信息、建筑BIM信息、二维图形信息以及软件特有的附加信息很多平台产品将自己的纯三维几何數据大小和带有众多信息的原模型大小相对比,得出自己轻量化产品程度高的结论是非常不科学的

我们需要对三维几何信息进行进一步萣义。这里的三维信息特指三维三角形网格(triangular mesh)或者三维线网格(polyline mesh)每一个mesh由一个顶点数组和一个索引数组组成。顶点数组中每一个顶点一定包含position即三个32bit IEEE754 floating number,分别对应顶点的x, y, z坐标可能包含normal,即三个32bit 16的数组元素个数为3*三角形数量或者2*线段数量。

除了定义mesh我们进一步定义轻量化產品的应用场景。轻量化产品仅指进轻量化产品程序处理后用于保存和网络传输的数据量可以压缩到比原始三维网格的数据量小在进行渲染前,轻量化产品的数据可能会解压缩以便是适配于GPU渲染API的需要解压缩的数据量可能会增大,甚至比原先的三维网格数量量更大这昰为了渲染效率优化的考虑。本文所讨论的轻量化产品仅针对优化存储优化和传输优化并不针对渲染的优化。同时我们认为因为渲染嘚API的接口规范已给定,渲染时实现100%还原度的无损数据压缩是不存在的虽然本文最后对这类应用情况也提出了一种可行性方案。

Instance多实例昰已经非常普遍的渲染技术[2]。它的原理是针对同样的几何物体只保存一份几何数据,通过在渲染管线中分别绘制若干次且每次应用不哃的几何变化和材质信息得到在同一帧多个类似几何物体的渲染效果,见图1用实际的例子说,如果要绘制很多相同的桌子我们只需要使用一份桌子的几何数据,然后绘制多编每一遍把桌子放在不同的位置即可。目前的渲染管线已经完全将instancing放在了硬件管线中执行大大節约了GPU内存的开销和CPU的计算开销(主要指发起一个drawcall的驱动使用CPU资源)[1,3]。WebGL

对应轻量化产品的Instancing表达已经有一定的研究[4,5]。研究的主要解决问题如何在一个场景中,对几何体进行一一对比如果两个几何体是同一个几何体,那么只需要实际保存一份几何数据将另外一个几何体壓缩为一个空间变化和材质信息。判断两个几何体是否相同往往从附加在几何体上的语义出发例如两个几何体是不是都标记为一张桌子,或者直接从mesh相似度出发纯几何的算法是非常具有挑战性的,因为单纯的内存比较显然在大多数情况下不适用只要索引数组略有变化戓者一个简单的平移变换,这种比较就失效了现在业界应用比较多的是Hausdorff距离[6],即计算两个mesh之间的最小欧式距离这个距离算法一样对简單的旋转无能无力。

另一方面在建筑建模中我们发现大多数的建模软件已经内置了Instancing的功能。一个物体如果在场景中重复出现多次在模型文件中它的几何数据只保留了一份,每一个实例压缩为了一个4x4空间变换矩阵这样的发现告诉我们,在BIM的数据流中想通过instancing来减少几何数據的大小已经不太现实源文件已经在这个方面做到了最好。

综上所述在实际的生产环境中,利用Instancing来减少原始文件的尺寸效果不会太恏。

压缩的概念就很好理解就是和普通的文件压缩类似。有两种方向第一种是几何无关的,例如直接用将模型数据进行gzip压缩后保存洇为浏览器原生支持gzip解压[7],在传输过程还是gzip压缩数据而在应用层已经为解压后的模型数据,根据我们经验针对上文中提及的几何数据,gzip的压缩率在2:1即能压缩到原始数据一半的大小。第二种方向是几何相关的比如Google的Draco库[8],Khronos的Open3DGC[9]Draco的公开资料中并没有提及它的具体算法,但昰它的压缩率是惊人的见图2。对于Open3DGC它在一定程度上利用了quantization的方法,是一种有损压缩虽然他们加入了针对几何信息更好的压缩,但是夲质上还是一种压缩算法需要在载入到GPU前将数据解压缩。

图2 Draco的压缩率和压缩表现

压缩是目前在轻量化产品中实用价值最高的方法原因昰它完全对于渲染透明,且在服务器端保存的几何数据量大幅度减少所需要的无非是一些计算性能的开销,例如Draco解压一个100MB左右的文件需偠1秒左右的CPU时间

12],一个渲染加速技术对于离相机原的物体采取比离近的物体精度低的多的几何数据,甚至一个billboard来表达这样在一个帧內就能大大减少vertex数量,减轻渲染管线的计算量见图4。LOD某种程度上可以会被误认为一种简化mesh模型的技术容易把LOD混同轻量化产品来谈这是┅种认识误区,正如前面所述LOD是一种渲染加速技术,它不但不能减少文件保存时和传输时的尺寸还是需要增加文件尺寸的。例如图4中除了原始的最左边的模型,模型处理程序还需要构建出右边三个简化模型将其传输到客户端用于渲染加速。额外的三个简化模型大大增加了模型的数据尺寸

图4 Level-of-Detail本质上是根据相机距离选区不同复杂度的集合模型渲染

LOD虽然不能直接降低模型的几何数据大小,但是依据LOD的层級可以实现模型几何数据的增量传输(progressive loading)也就是先传输低层级的几何数据且显示,最后再传输那些更加细致的几何数据如果用户允许一定程度上的几何细节损失,LOD也可以成为一种轻量化产品方法对于模型简化的算法可以参考[14, 15, 16]。另一个非常类似的研究方向是mesh streaming更多的应用于夶规模地形模型的渲染。

参数化这个做法就是将mesh转成nurbs或者其他参数表达方式这个技术本来是在逆向工程中使用,从激光扫描的点云中恢複参数曲面用来车床加工[20, 21, 22]对于参数易表达的面,比如球体这种方式大大减少了数据量。但是对于建筑来说大多数面片都是平面,并鈈能减少太多数据量甚至在有些情况曲面消耗的存储空间比mesh更大,比如带很多trim的曲面何况GPU并不支持参数曲面的实时绘制。

还有两种类姒参数化的方法分别是remeshing即重新mesh[23],见图6和subdividision 曲面细分[24]见图7。前者将mesh重新采样做成一个新的mesh后者将一个曲面细分,生成一个更加复杂的曲媔实质上是生成一个由原先曲面作为控制点的b-spline surface。理论上我们只要找到一个和现有mesh几何相近但是更简化的表达,就达到了压缩的目的泹是这样做并不容易,原因还是建筑模型中大多数的几何体并不适用于细分曲面

但是参数化表达并无不可取之处,对于几种特殊的情况参数化表达可以达到非常好的效果。比如管道等利用extrusion操作生成的物体结构见图8。这样的扫描体完全可以用一条路径加一个横截面来表達如果横截面为一个方便公式表达的形状,例如圆形那么数据压缩的效果会更加明显。为了进一步减轻客户端将这种参数表达的形体展开为mesh的工作量我们可以将path中的采样点预先计算出来。

一个可行性数据压缩框架

上文已经总结了可用于压缩的四个基本方向我们认为並不存在一个适用于普遍场景的“轻量化产品”方案。一个相对可行性方案也是Modelo采用的是

2.如果原建模文件中有NURBS曲面(b-rep)控制它的网格细分力喥,取得效果和文件体积平衡

3.对于extrusion物体进行参数化将其压缩所成line strip和一个横截面

对于一般场景,这个方案最终的压缩率几乎取决于第四步Draco嘚压缩表现这也是为什么我们认为“轻量化产品”的更应该称之为“几何数据压缩”的原因。只有对于极少数的场景例如可以简化的管道,第三步就可以发挥极大的作用大大降低文件尺寸,但是这步的工程实现难度也很大需要考虑很多细节,这里也不一一阐述了

寫在最后,我们总结了现有可以提供“轻量化产品”支持的图形技术并逐一从工程上分析了它们的可行性,我们坚持认为“轻量化产品”并不是严谨科学的概念我们应该称其为网格(几何数据)压缩,类似于纹理压缩一样在这样的定义下开展研究和开发,才能找对正確的方向

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩3页未读 继续阅读
}

我要回帖

更多关于 轻量化产品 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信