首页 / 浏览问题 / 三维GIS / 问题详情
模型加载时一段一段的加载,能不能优化
298EXP 2022年10月10日
例如一条道路BIM模型,生成缓存发布服务后在webgl端会一小段一小段的加载显示,因为模型的长度很短,能不能整体一起显示

2 个回答

您好,这个加载一块一块的取决于切三维缓存时的瓦片边长,如果想要瓦片tile块大一些的话,切缓存时的瓦片边长给大一些。

希望可以帮助到您。
9,653EXP 2022年10月10日
瓦片边长设置太大的话有没有其它别的影响
总的数据范围和瓦片边长,决定了你的缓存一共会被分成多少个tiles,相对来说单块tiles越大,加载单块时间越长一些,你数据量如果不大的话还好。
如果模型长宽都只有10多米,我设置瓦片边长时设置300,或设置为推荐的10米,tiles块和大小应该还是一样的吧
你模型长宽十米,但是tile分块是从边界角点开始分的,不是从你模型中心,所以可能分成9块tile呢。
有一份模型,模型长宽只有10多米,但是每次加载时都要等待好几秒才显示出来,切出来的s3m缓存文件也不大,这是什么原因呢
硬件性能这块没啥问题的话,切缓存前看一下你这套模型的总三角面数多少和大致空间复杂度(存在模型区域内单位空间体积的三角面数)。
三角面数不多  才244个。模型很简单,就是一个路面
总的模型有几百米,被分类成了多个数据集,按照您说的增大瓦片边长,有一份数据集确实不会一段一段的加载了,但有个数据集长宽只有十多米,三角面数200多个,现在只有它加载显示最慢,别的数据集中的模型都显示出来了,它还要等几秒钟才显示。所以针对这个数据集有没有优化办法?

另外tile分块是根据对应的数据集的范围进行划分的吧?
是的,剖分是根据数据集本身的范围来进行的。

切场景缓存的话,如果多个数据集,每个图层设置边长这些是独立的,记得全都要设置。

单个数据集性能有问题的话,对该数据集进行移除重复线、重复三角面、子对象什么的优化一下。

看一下是在多个图层的场景里才会卡,还是只有他一个图层也会卡。
在多个图层的场景里才会卡
那这个你要看看网络请求了,到底是哪个缓存tiles的请求返回时间比较的长。

多图层可能是其他图层慢导致的,还有就是小范围数据集的话,如果有这种卡顿就不建议多数据集去拆了。

如果要做分类管理用属性字段去管理,合到一个数据集里。

或者用三维数据-生成缓存-多图层合并生成缓存,生成单图层缓存。
是使用批量生成缓存的方式将多个数据集生成一个scp缓存吗?

另外怎么查看到底是哪个缓存tiles的请求返回时间比较长?现在是将一个模型拆分成了多个数据集,每个数据集单独生成的缓存
f12网络请求里看地址、路径、请求体
像上面说的一个是瓦片边长上设置,还有就是有一个LOD的设置,如果不想一段一段加载可以把LOD设置成很小,但是同样的消耗资源也会更多。
555EXP 2022年10月10日
...