伴随着互联网的发展,越来越多的BIM用户希望在Web端直接浏览三维模型。传统的BIM应用程序都基于桌面客户端,且需要较高的计算机配置:高频CPU大内存独立显卡。在从桌面端走向Web端移动端的过程中,由于受浏览器计算能力内存限制等方面的影响,基于桌面的对模型的数据组织和消费方式必须做出相应调整,即需要更多的使用三维模型轻量化技术对模型进行深度处理。三维模型轻量化主要包括两个方面:模型轻量化显示模型文件转换

1、模型轻量化显示

近几年,随着WebGL标准被广泛接受,涌现出许多基于HTML5的开源三维显示引擎,如threejsscenejs等。尤其threejs使用非常广泛,一方面由于其使用门槛较低,另一方面是其支持若干种三维文件格式,如3ds、obj、dae、fbx等。对于中小规模的三维模型,使用threejs可以快速搭建一个基于Web的模型浏览应用。但对于模型构件比较多的应用场景,如BIM应用,直接使用threejs必然会遇到性能瓶颈,因此,必须针对threejs进行深度定制,甚至从零开始。

对threejs深入研究后,我们决定在threejs的基础上进行扩展,主要从以下几个方面展开:

1)场景空间八叉树划分

空间八叉树是一种高效的三维空间数据组织方式,使用八叉树可以快速剔除不可见图元,减少进入渲染区域的绘制对象。这部分技术在桌面端的三维显示引擎已非常成熟

2)增量绘制

绘制效率跟场景中绘制对象的数量紧密相关。对象越多,绘制效率越低。而绘制效率又会影响用户的交互体验。因此,在绘制图元达到一定数量的时候,需要使用增量绘制技术,减少等待时间,提高交互响应速度。

3)绘制对象内存池

浏览器分配给Javascript虚拟机的内存是有限的,当内存超出限制,整个页面就会崩溃。这是由于Javascript是一种运行时解释性语言,自身具有垃圾回收机制,当分配的Javascript对象过多,垃圾回收会占用大量时间,影响浏览器响应。使用对象池可以最大限度的减少对象分配,降低内存使用,从而减少垃圾回收产生的负担。

4)图元合并

图元个数越多,显示效率越低。这是由于每绘制一个图元就会进行一次draw call。而在浏览器端的draw call比在桌面端draw call的调用代价更大。合并图元可以减少draw call,从而提示显示效率。

2、模型文件转换

基于桌面的三维模型大多数采用单文件或几个文件来存储模型信息,比如几何信息、材质信息、纹理贴图及属性。这样的组织方式便于桌面程序管理,也便于用户之间以文件的方式传输数据。但单个大文件却不利于网络端传输,尤其是从服务器端下载一个三维模型,使其在浏览器中显示。一方面,大的文件传输需要更多的等待时间,另一方面,用户需等待模型下载完成后才能解析显示。 没有人愿意等待,因此,我们需要定义适合网络传输的大模型组织方式,把原始的模型文件转换为适合网络传输和轻量化显示的文件格式。

我们主要从以下几个方面设计三维模型轻量化转换:

1)构建“模型流”

与在线视频播放一样,用户不需要下载和缓存完整的视频才能观看,只要点击播放后边下载边缓存边播放。以模型流的方式,用户可以实时看到已经下载的部分,对显示影响较大的部分先下载先显示,细节部分可以后显示。下载过程,用户不需要等待,可以进行其他操作。

2)几何唯一性表达

在模型转换过程中,把具有相同形状的几何对象进行唯一性表达。大的模型一般会存在相同几何的多份拷贝,而实际上可以用相同的几何描述不同的构件。使用相似体的识别算法可以大大减少几何体的数量,减少模型的大小,也能减少显示时GPU的占用。

3)数据压缩

数据压缩可以大大减少网络传输时间,尤其对于json几何数据gz算法可以达到几倍的压缩率。

模型轻量化显示和模型文件转换是BIM模型轻量化的核心技术,具有一定的技术门槛。BIMFACE本着开放的精神,把核心技术提供给广大的BIM开发者,使得开发者即使没有掌握任何图形技术,也能轻松开发强大的BIM应用。

BIMFACE,与你一起开发BIM的价值!

BIMFACE工程师现身说法,带你了解BIM模型轻量化技术细节相关推荐

  1. bim 模型web页面展示_HTML5/WebGL技术BIM模型轻量化Web浏览解决方案

    原标题:HTML5/WebGL技术BIM模型轻量化Web浏览解决方案 互联网技术的兴起极大地改变了我们的娱乐.生活和生产方式.尤其是HTML5/WebGL技术的发展更是在各个行业内引起颠覆性的变化,大 ...

  2. BIM研究-基于HTML5/WebGL技术的BIM模型轻量化Web浏览解决方案

    内容来源:http://developer.51cto.com/art/201601/504553.htm 根据运维系统的特点,运维人员可能并不熟悉建筑建模软件的使用,同时让运维人员使用建模软件来做运 ...

  3. bim 模型web页面展示_基于HTML5/WebGL技术的BIM模型轻量化Web浏览解决方案

    互联网技术的兴起极大得改变了我们的娱乐.生活和生产方式.尤其是HTML5/WebGL技术的发展更是在各个行业内引起颠覆性的变化,大家感受最深刻的可能是游戏.电商.O2O等和我们生活息息相关的行业,但这 ...

  4. Three.js BIM模型轻量化 FPS渲染速率优化 多 实例渲染[Instance]+顶点合并[Merge]

    BIM模型不经过处理,直接加载到Three.js 创建的场景中,很大可能会很使fps帧率下降,原因在于模型的个数太多,有的模型是多材质的话还需要在Three.js中绘制两次,这样会导致drawcall ...

  5. BIM模型轻量化的方法总结

    目录 1 .BIM轻量化方法概述 2.BIM轻量化内容 2.1 构件信息提取 2.2 BIM模型合并 2.3 BIM模型分级

  6. BIM模型轻量化-SSAO效果-自然光漫反射阴影

    hello,我又来做知识的搬运工了.今天的主题是,如何让模型看起来呈现自然光的漫反射出现的阴影轮廓呢? 首先,推出threejs官方的一个后处理通道效果,先看demo,在轮廓的边缘出现阴影.示例: t ...

  7. bim webgl 模型 轻量化_数字化交付模型轻量化技术研究

    研究背景 随着BIM应用的越来越深入,无论是在民建领域还是在基建领域,BIM模型越来越精细.越来越大已经成为一种现实与趋势,而建筑业全面推行数字化交付,模型轻量化技术与数据存储技术必将成为其中的关键. ...

  8. cad模型轻量化_BIM模型轻量化到底有啥用?三种解决方案按需挑选!

    假如你是一个建筑设计师,你将会接触Archicad,Bentley,Revit,su等: 假如你是一个结构设计师,你将会接触PKPM,Tekla,YJK,Revit等: 假如你是一个机电设计师,你将会 ...

  9. 深度学习模型轻量化(上)

    深度学习模型轻量化(上) 移动端模型必须满足模型尺寸小.计算复杂度低.电池耗电量低.下发更新部署灵活等条件. 模型压缩和加速是两个不同的话题,有时候压缩并不一定能带来加速的效果,有时候又是相辅相成的. ...

最新文章

  1. Git Flow—Git团队协作最佳实践
  2. 如何利用K-Means将文件夹中图像进行分类?
  3. boost::iostreams::back_inserter用法的测试程序
  4. python按条件拆分列表元素_如何通过在python中拆分列表元素来创建列表?
  5. 模板:保留小数位后多少位
  6. pxe自动部署Linux,Kickstart+PXE自动部署CentOS6.6
  7. Jenkins自动化部署容器
  8. 如何运用Python建立你的第一个Slack聊天机器人?
  9. 使用C#如何写入/读取注册表信息
  10. python单例模式selenium driver实现单例
  11. 数据结构习题及解析三
  12. 微信卡包新增入口跳转小程序
  13. OpenJ_Bailian - 4104 G - 单词翻转
  14. 江涛带你玩STM-CubeMx之OLED使用3线SPI和4线SPI驱动详解
  15. 【电影推荐】60部经典华语电影,排行不分先后!
  16. 在chrome下安装Proxy SwitchySharp插件
  17. imail outlook press 配置
  18. ChibiOS系列:二、在STM32上开发:介绍ChibiStudio
  19. 计算机网络常用工具软件
  20. 小技巧!无需插件,一键批量下载微信公众号的图片!

热门文章

  1. 2021年 至 2023年 mysql国家法定节假日脚本
  2. 如何4天时间通过马克思近代史两门公共课?
  3. ODBC数据源的使用--Qt
  4. ACL2023:LLM相关论文总结
  5. 2019TFE计算机科学排名,2019年TFE Times公布七大硕士专业排名 美国留学选校新参考...
  6. python里isalpha_python isdigit()、isalpha()、isalnum() 三个函数
  7. XCZU15EG学习资料保存第527篇:基于3U VPX XCZU15EG+TMS320C6678的信号处理板
  8. Android基础知识 - ListView
  9. wordpress首页调取最新评论代码
  10. IT项目管理总结一部分小的知识点