cesium加载GB级别3dtiles问题记录,cacheBytes和maximumCacheOverflowBytes

遇到的问题

使用cesiumlab osgb转3dtiles,数据量大约120G,加载到cesium场景后,当视图缩小全图范围后,整个瓦片会一直刷新。

这里使用的是免费的cesiumlab转换,没有使用它的付费功能,顶层重建,顶点压缩和纹理压缩。

desktop 2024-09-26 10-58-12

搜索了一大堆文章,没有搜到写相关问题的,没办法只能自己探索,猜测。

在这里插入图片描述
仔细读了官网文档的每个参数,怀疑就是设置这个cacheBytes参数。
百度翻译一下就是:

用于缓存图块的GPU内存量(以字节为单位)。此内存使用量是根据加载的图块的几何体、纹理和批处理表纹理估计的。对于点云,此值还包括每点元数据。
不在视野中的瓷砖会被卸载以强制执行此操作。 如果减小此值会导致卸载图块,则下一帧将卸载图块。
如果需要大小超过cacheBytes的图块来满足当前视图的所需屏幕空间错误(由Cesium3DTileset#maximumScreenSpaceError确定),则加载的图块的内存使用量将超过cacheByte,最多可达maximumCacheOverflowBytes。例如,如果cacheBytes为500000,但需要600000字节的图块来满足屏幕空间错误,则可以加载600000字节图块(如果maximumCacheOverflowBytes至少为100000)。当这些瓷砖消失在视线之外时,它们将被卸载。

总结下来差不多就是,默认的cacheBytes的值为536870912 byte≈0.5GB,加载太大的数据时,0.5GB的缓存不够,当缩放到较高的视角时,达到最大缓存值后就会一直重绘。

我的解决方案是:将cacheBytes调大

cacheBytes: 5368709120, // 5G缓存,超过则会重新刷新,可能会导致显存崩溃
maximumCacheOverflowBytes: 536870912, //允许超过缓存多少

当然,我觉得最好的还是使用cesiumlab的付费功能,重建顶层,顶点压缩和纹理压力,我看了他们使用后的效果,确实提升很大。

倾斜模型OSGB转3dtiles格式,合并索引

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值