首页 / 浏览问题 / 三维GIS / 问题详情
iClient3D for Cesium 显存溢出场景崩溃
1EXP 2023年11月29日

设置s3m图层clearMemoryImmediately为false后, 长时间浏览三维图层会出现浏览器占用显存持续升高, 超过显卡专用GPU内存时场景崩溃;

使用产品: SuperMap iClient3D 11i(2023) SP1 for Cesium

客户端硬件: 内存(32G) 显卡1080(8g)

代码配置:

Cesium.MemoryManager.setMaxMemory: 20480

Cesium.MemoryManager.setCacheSize: 10240

scene.context.memoryThreshold=4

layer.clearMemoryImmediately=false

layer.indexedDBSetting.isGeoTilesRootNodeSave = true

layer.LoadingPriority = Cesium.LoadingPriorityMode.UsePagedLodInfo

问题详细描述:设置场景总的显存大小(4g), 小于显存(8g), 浏览时为什么Cesium占用显存持续升高? 是否Cesium内存参数配置不合理?

1个回答

您好,

S3MTilesLayer.clearMemoryImmediately 的意思是否及时释放内存,默认值为true。

其表现在加载倾斜或者其他S3M图层完全加载到了客户端,但是一转动视角,不在视野范围内的模型消失(这是默认的渲染机制,为了保证性能),再把视角转回来,它会继续加载(按说数据已经加载过了)。

您不及时释放内存的话,内存的占用率肯定会越来越高的,超出您的浏览器内存阈值自然就崩了
4,071EXP 2023年11月29日
clearMemoryImmediately = false;时设置下面几个参数对Cesium占用的内存或显存都没有作用吗? 如果有作用, 显存最大值是下面哪个参数配置的?

为何显存会持续增长, 当Cesium占用内存/显存超过最大值时没有清理策略吗?

Cesium.MemoryManager.setMaxMemory: 20480

Cesium.MemoryManager.setCacheSize: 10240

scene.context.memoryThreshold=4
参数设置的是前端WebGL的显存阈值

浏览器的阈值不是由代码控制的

修改浏览器的阈值请根据自己使用的浏览器产品使用对应的方法设置
...