上一篇写了怎么把 Cesium 导入到 uniapp,且真机运行不报错
但是在某些设备上运行的时候,会出现 png 图片加载不全的问题
我们拿个图片渲染测试一下,原图是这样的
渲染之后是这样的
这个现象让我很迷惑,明明以前用低版本1.95的时候,是可以正常加载的,为什么用了 1.113 就不行了呢,看控制台,有有明显的报错
大概是说关于 webgl 的错误,又把版本更新到 1.95 之后,发现可以正常渲染
既然是版本的问题,那么解决方法就简单了,113 - 95 = 18个版本
用二分法把这测试各个版本,看是哪个版本出的这个问题就好了
测试方法,去 github 拉取 Cesium 源码,切换到对应版本的分支,执行 build 命令,把 build 之后的源码放到项目中去运行
我的测试顺序是 95-113 的中间版本 104 发现有此问题然后缩小范围,95-104 之间的 100 版本,发现问题消失了
那么问题就出在 100 - 104 版本之间,本着科学严谨追根的态度,对中间的每个版本都测试了一下,发现只要是 102+ 版本,就会有这个问题,101 版本就没有
然后找到 Cesium 的 changelog 链接
https://github.com/CesiumGS/cesium/blob/main/CHANGES.md
在里面搜索 1.102,发现 Cesium 在 102 版本之后,使用了 webgl2 去渲染 Cesium,但是不是所有移动设备都支持 webgl2
解决办法就是按照官方写的,在高版本自己去配置使用 webgl1 去渲染 Cesium,至此,webgl 导致图片渲染的问题解决
本文使用 文章同步助手 同步