当前位置:   article > 正文

大分辨率(5120*1600)屏幕使用cesium加载高精度倾斜摄影数据浏览器报错崩溃解决方案_typeerror: failed to execute 'shadersource' on 'we

typeerror: failed to execute 'shadersource' on 'webglrenderingcontext': para

做项目的时候使用cesium遇到一个问题,就是当我在大分辨率(5120*1600)的屏幕上使用Cesium加载比较高精度的倾斜摄影数据的时候会出现报错的情况,下面是具体的报错信息:

An error occurred while rendering.Rendering has stopped.

TypeError:Failed to execute 'shaderSource' on 'WebGLRenderingContext':parameter 1 is not of type 'WebGLShader'.

还会附带警告:WebGL:CONTEXT_LOST_WEBGL:loseContext:context lost

一开始我以为是电脑的硬件不行才会报错,但是后面换到运行内存为16g、显卡是3080ti的电脑上面运行一样会报这个错,后来经查阅资料,报错的原因是因为浏览器GPU进程被撑爆所导致的,这是 webGL 自身的安全措施,当它认为 GPU 占用过高的时候,就会关闭一个或者更多的 webGL 网页,与硬件无关。

解决的方法:

加载3dtitles的时候设置一个关键参数maximumScreenSpaceError,把这个值设大一点,我这里设置成64(默认16),就不会出现报错的这种问题了,但是这个参数不能设置得太大,如果设置太大,会让你的倾斜摄影数据加载的层级没那么高,使得最终成像效果变模糊。

最后奉上我的3dtitles设置参数分享给大家:

  1. set3Dtitle3 () {
  2. tileset1 = new Cesium.Cesium3DTileset({
  3. skipLevelOfDetail: true,
  4. baseScreenSpaceError: 1024,
  5. maximumScreenSpaceError: 64, // 数值加大,能让最终成像变模糊
  6. skipScreenSpaceErrorFactor: 16,
  7. skipLevels: 1,
  8. immediatelyLoadDesiredLevelOfDetail: false,
  9. loadSiblings: true, // 如果为true则不会在已加载完概况房屋后,自动从中心开始超清化房屋
  10. cullWithChildrenBounds: true,
  11. cullRequestsWhileMoving: true,
  12. cullRequestsWhileMovingMultiplier: 10, // 值越小能够更快的剔除
  13. preloadWhenHidden: true,
  14. preferLeaves: true,
  15. maximumMemoryUsage: 512, // 内存分配变小有利于倾斜摄影数据回收,提升性能体验
  16. progressiveResolutionHeightFraction: 0.5, // 数值偏于0能够让初始加载变得模糊
  17. // dynamicScreenSpaceErrorDensity: 0.1, // 数值加大,能让周边加载变快
  18. dynamicScreenSpaceErrorDensity: 1, // 数值加大,能让周边加载变快
  19. dynamicScreenSpaceErrorFactor: 1, // 不知道起了什么作用没,反正放着吧先
  20. dynamicScreenSpaceError: true // 根据测试,有了这个后,会在真正的全屏加载完之后才清晰化房屋
  21. })
  22. // 非异步加载
  23. // viewer.scene.primitives.add(tileset)
  24. // 异步加载
  25. tileset1.readyPromise.then(function (tileset) {
  26. viewer.scene.primitives.add(tileset1, 1)
  27. }).otherwise(function (error) {
  28. console.log(error)
  29. })
  30. },

成像效果图:

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/545374
推荐阅读
相关标签
  

闽ICP备14008679号