其实也算是最近几个月的摸索一个小小的总结。让有缘人少走弯路。
其实,我目前(也可能是从现在往后推一两年)很不推荐这个方法,大家看过我之前的文章也知道,我花费了比较多的时间在这,结果,之前研究的库被废弃了。
然后,新的库虽然部署方便,但是,里面很多的交互都是有问题(bug)的,例如分层、定位等等。有想法有能力的,可以贡献一下修复bug的代码上去,提升一下他们的效率。
当然,如果你只是单纯的想要展示这个模型,并不需要一些特别的交互,例如分层、广告牌展示等等,那这个还是可以使用的。
毕竟,从渲染的角度来说,它真的是挺好用的,也不用劳烦后端兄弟。
这种方法没别的,就是要钱。
当然,要注意的是,这类方法其实并不是直接渲染IFC模型的,都是会帮你把IFC解析并转换成别的格式去渲染的。
只是表面上看,你上传的是一个IFC模型文件而已。
拿到IFC模型后,由自己或者建模师帮忙通过建模工具进行转换,建模工具一般都是要收费的,但是,价格跟商用引擎相比较肯定是小很多的。
目前,兜兜转转,我们找到了阿里云,它有一个云数据库可以提供这个服务,把IFC模型上传后,就可以转成想要的格式,目前我们是转成了
3dtiles
和gltf(glb)
的形式。然后,通过接口请求的形式获取模型数据并渲染。
难度瞬间下降了,有木有?!(玛德…)
1、别期待一个模型格式完成所有!
2、如果构件不多,就一个简单(里面空空)的 gltf外壳模型,等到进入到楼层级别的时候,再加载对应的精细完整的楼层模型;
3、如果构件多,那就换成外壳由 3dtiles 去加载,等到内部楼层等需要精细对待的时候,可以用别的模型去加载。我们这里用的是3dtiles + glb
的形式去加载的,不知道还有没有别的更加优化的方法,也欢迎大家评论。
4、因为 3dtiles 作为外壳的话,那就意味着主要是渲染OK就行了,所以,可以使用NASA自己出的一个three.js渲染3dtiles的插件去渲染——NASA-AMMOS/3DTilesRendererJS。