项目里有很多BIM是同事用3DMaxs建的,经过沟通他们提供我的是obj文件。
注意:obj包括obj、mtl文件和图片三种文件,所有文件名字中不要出现中文。然后我们就可以将obj转为gltf或3Dtiles加载了。
加载的代码就不说了,到处都是。我想说的是加载后网站总是很卡而且很容易崩。(我的网站数据很多:三个3DTiles文件48G+9G+16G,正射影像切片20G,天地图影像缓存3G,GLTF若干) 数据太多一开始怀疑是3dtiles的问题,找了很久才发现是gltf太大导致的。我的机器是工作站配置一般总体还说得过去。
问题原因:gltf太大导致cesium网站卡顿崩溃,如果你加载gltf后变卡极有可能就是gltf太大导致的(其实gltf也是一个json文件用编辑器打开就能看见),经过多次测试
obj大小M | gltf大小M | 3Dtiles | 浏览器测试 |
3M | 41 | 几秒 | |
20M | 48M | 三十几秒 | |
20M | 109M | 卡40s左右 | |
62M | 170M | 很卡甚至崩溃 | |
240M | 加载到157M崩溃 | ||
87M | —— | 287M |
48M的GLTF读取需要二十几秒。到加载出来实际要三十几秒。
107M的gltf读取要28s。到加载完成更多要40s左右。
换成240M的模型直接崩溃是的崩溃。文件转换后大小要更具贴图等决定不能一概而论。
可以看到最大加载157M左右的gltf浏览器就会崩溃。
那么怎么办呢?我想的是两种思路
一:拆分gltf文件:3DMaxs里分成几个obj导出
二:obj转3Dtiles。cesiumlab提供了转换。如果转换不了就换台电脑用cesiumlab(我电脑就转不了但我笔记本可以)
人工模型切片=》小场景切片=》支持obj、dae、fbx、3ds、ifc转为3Dtiles。