新版本cesium的注意点

之前基于1.99版本写了一套插件,最近想替换成目前的新版本(114),发现有很多写法都不能用了,这里做一下记录。

  1. 100版本发布了@cesium/engine@cesium/widgets,引用方式上就会有些变化;
  2. 102版本默认采用了webgl2,如果不支持则会回退到webgl1。这样牵扯了很多shader中的用法,比如片元着色器中的varing改成ingl_FragColor改成out_FragColortexture2D改成texture等,如果不想用webgl2,可以用以下方式:
const viewer = new Viewer("cesiumContainer", {
  contextOptions: {
    requestWebgl1: true,
  },
});
  1. 104版本开始弃用readyPromise,3dtiles的加载方式也发生了变化,Cesium3DTileset不能被直接实例化,而是采用Cesium3DTileset.fromUrl. 加载gltf模型也发生了变化。
// 加载3dtiles
try {
  const tileset = await Cesium.Cesium3DTileset.fromUrl(url);
  viewer.scene.primitives.add(tileset);
} catch (error) {
  console.log(`Failed to load tileset: ${error}`);
}

// 加载gltf/glb
try {
  const model = await Cesium.Model.fromGltfAsync({
    url: "../../SampleData/models/CesiumMan/Cesium_Man.glb",
  });
  viewer.scene.primitives.add(model);
  model.readyEvent.addEventListener(() => {
    // model is ready for rendering
  });
} catch (error) {
  console.log(`Failed to load model. ${error}`);
}
  1. 104版本中,imageryProvider也被删除,改用baseLayer代替;地形加载方式也有了新的变化。
try {
  const viewer = new Cesium.Viewer("cesiumContainer", {
    terrainProvider: await Cesium.createWorldTerrainAsync(),
    baseLayer: new Cesium.ImageryLayer(new Cesium.UrlTemplateImageryProvider({
        url: "http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
        maximumLevel: 16,
    })),
  });
} catch (error) {
  console.log(`Failed to created terrain: ${error}`);
}
  1. 109版本中,Firefox 114 现在是运行 CesiumJS 所需的最低 Firefox 版本,为了方便Web Worker加载并删除过时的依赖项。
  2. 110版本中,Cesium3DTileset.maximumMemoryUsage被删除,使用Cesium3DTileset.cacheBytesCesium3DTileset.maximumCacheOverflowBytes代替。
  3. 114版本中,默认情况下,屏幕空间相机控制器将不再进入Cesium3DTileset;默认启用Cesium3DTileset.dynamicScreenSpaceError来进行场景优化,可以提高水平方向上加载的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搞GIS图形的sky.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值