BIMFACE工程师现身说法,带你了解BIM模型轻量化技术细节
伴随着互联网的发展,越来越多的BIM用户希望在Web端直接浏览三维模型。传统的BIM应用程序都基于桌面客户端,且需要较高的计算机配置:高频CPU、大内存、独立显卡。在从桌面端走向Web端、移动端的过程中,由于受浏览器计算能力和内存限制等方面的影响,基于桌面的对模型的数据组织和消费方式必须做出相应调整,即需要更多的使用三维模型轻量化技术对模型进行深度处理。三维模型轻量化主要包括两个方面:模型轻量化显示和模型文件转换。
近几年,随着WebGL标准被广泛接受,涌现出许多基于HTML5的开源三维显示引擎,如threejs、scenejs等。尤其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模型轻量化技术细节相关推荐
- bim 模型web页面展示_HTML5/WebGL技术BIM模型轻量化Web浏览解决方案
原标题:HTML5/WebGL技术BIM模型轻量化Web浏览解决方案 互联网技术的兴起极大地改变了我们的娱乐.生活和生产方式.尤其是HTML5/WebGL技术的发展更是在各个行业内引起颠覆性的变化,大 ...
- BIM研究-基于HTML5/WebGL技术的BIM模型轻量化Web浏览解决方案
内容来源:http://developer.51cto.com/art/201601/504553.htm 根据运维系统的特点,运维人员可能并不熟悉建筑建模软件的使用,同时让运维人员使用建模软件来做运 ...
- bim 模型web页面展示_基于HTML5/WebGL技术的BIM模型轻量化Web浏览解决方案
互联网技术的兴起极大得改变了我们的娱乐.生活和生产方式.尤其是HTML5/WebGL技术的发展更是在各个行业内引起颠覆性的变化,大家感受最深刻的可能是游戏.电商.O2O等和我们生活息息相关的行业,但这 ...
- Three.js BIM模型轻量化 FPS渲染速率优化 多 实例渲染[Instance]+顶点合并[Merge]
BIM模型不经过处理,直接加载到Three.js 创建的场景中,很大可能会很使fps帧率下降,原因在于模型的个数太多,有的模型是多材质的话还需要在Three.js中绘制两次,这样会导致drawcall ...
- BIM模型轻量化的方法总结
目录 1 .BIM轻量化方法概述 2.BIM轻量化内容 2.1 构件信息提取 2.2 BIM模型合并 2.3 BIM模型分级
- BIM模型轻量化-SSAO效果-自然光漫反射阴影
hello,我又来做知识的搬运工了.今天的主题是,如何让模型看起来呈现自然光的漫反射出现的阴影轮廓呢? 首先,推出threejs官方的一个后处理通道效果,先看demo,在轮廓的边缘出现阴影.示例: t ...
- bim webgl 模型 轻量化_数字化交付模型轻量化技术研究
研究背景 随着BIM应用的越来越深入,无论是在民建领域还是在基建领域,BIM模型越来越精细.越来越大已经成为一种现实与趋势,而建筑业全面推行数字化交付,模型轻量化技术与数据存储技术必将成为其中的关键. ...
- cad模型轻量化_BIM模型轻量化到底有啥用?三种解决方案按需挑选!
假如你是一个建筑设计师,你将会接触Archicad,Bentley,Revit,su等: 假如你是一个结构设计师,你将会接触PKPM,Tekla,YJK,Revit等: 假如你是一个机电设计师,你将会 ...
- 深度学习模型轻量化(上)
深度学习模型轻量化(上) 移动端模型必须满足模型尺寸小.计算复杂度低.电池耗电量低.下发更新部署灵活等条件. 模型压缩和加速是两个不同的话题,有时候压缩并不一定能带来加速的效果,有时候又是相辅相成的. ...
最新文章
- Git Flow—Git团队协作最佳实践
- 如何利用K-Means将文件夹中图像进行分类?
- boost::iostreams::back_inserter用法的测试程序
- python按条件拆分列表元素_如何通过在python中拆分列表元素来创建列表?
- 模板:保留小数位后多少位
- pxe自动部署Linux,Kickstart+PXE自动部署CentOS6.6
- Jenkins自动化部署容器
- 如何运用Python建立你的第一个Slack聊天机器人?
- 使用C#如何写入/读取注册表信息
- python单例模式selenium driver实现单例
- 数据结构习题及解析三
- 微信卡包新增入口跳转小程序
- OpenJ_Bailian - 4104 G - 单词翻转
- 江涛带你玩STM-CubeMx之OLED使用3线SPI和4线SPI驱动详解
- 【电影推荐】60部经典华语电影,排行不分先后!
- 在chrome下安装Proxy SwitchySharp插件
- imail outlook press 配置
- ChibiOS系列:二、在STM32上开发:介绍ChibiStudio
- 计算机网络常用工具软件
- 小技巧!无需插件,一键批量下载微信公众号的图片!
热门文章
- 2021年 至 2023年 mysql国家法定节假日脚本
- 如何4天时间通过马克思近代史两门公共课?
- ODBC数据源的使用--Qt
- ACL2023:LLM相关论文总结
- 2019TFE计算机科学排名,2019年TFE Times公布七大硕士专业排名 美国留学选校新参考...
- python里isalpha_python isdigit()、isalpha()、isalnum() 三个函数
- XCZU15EG学习资料保存第527篇:基于3U VPX XCZU15EG+TMS320C6678的信号处理板
- Android基础知识 - ListView
- wordpress首页调取最新评论代码
- IT项目管理总结一部分小的知识点