Cesium v1.97 Release Notes

Release Date: 2022-09-01 // about 1 month ago
  • Major Announcements :loudspeaker:

    • CesiumJS has switched to a new architecture for loading glTF models and tilesets that enables features includes:
    • Usage notes for the new glTF architecture:
      • Those using ModelExperimental.fromGltf() should now use Model.fromGltf()
      • The enableModelExperimental flag was removed, as tilesets and entities always use the new architecture
      • The new implementation of Model uses the same public API as before, so no other changes are necessary.

    ๐Ÿ’ฅ Breaking Changes :mega:

    • ๐Ÿฑ glTF 1.0 assets are no longer fully supported. glTF 1.0 techniques are converted to PBR materials where possible, but more complex techniques will no longer function correctly. If custom GLSL shaders are needed, use CustomShader instead. #10648
    • The glTF 2.0 extension KHR_techniques_webgl and KHR_materials_common are also no longer fully supported. Materials are converted to PBR materials where possible.
    • ๐Ÿ‘Œ Support for rendering instanced models on the CPU has been removed.
    • ๐Ÿšš Model.gltf, Model.basePath, Model.pendingTextureLoads (properties), and Model.dequantizeInShader (constructor option) have been removed.
    • ๐Ÿšš ModelMesh and ModelMaterial have been removed.
    โž• Additions :tada:
    • ๐Ÿฑ Model can now classify other assets with a given classificationType. #10623
    • ๐Ÿ‘ Model now supports back face culling for point clouds. #10703
    • ๐Ÿ“ฆ The sideEffects field in package.json is now defined, allowing more conservative bundlers like Webpack to enable tree shaking by default.
    ๐Ÿ›  Fixes :wrench:
    • Fixed bug with Viewer.flyTo where camera could go underground when target is an Entity with ModelGraphics with HeightReference.CLAMP_TO_GROUND or HeightReference.RELATIVE_TO_GROUND. #10631
    • ๐Ÿ›  Fixed issues running CesiumJS under Node.js when using ESM modules. #10684
    • ๐Ÿ›  Fixed the incorrect lighting of instanced models. #10690
    • ๐Ÿ›  Fixed developer error with Camera.flyTo with an orientation and a Rectangle value for destination. #10704
    • ๐Ÿ›  Fixed rendering bug with points in .vctr format, where points wouldn't show until picked or styled. #10707

Previous changes from v1.96

  • Major Announcements :loudspeaker:
    • โšก๏ธ Built Cesium.js is no longer AMD format. This may or may not be a breaking change depending on how you use Cesium in your app. See our blog post for the full details. #10399
      • Built Cesium.js has gone from 12.5MB to 8.4MB unminified and from 4.3MB to 3.6MB minified. Cesium.js.map has gone from 22MB to 17.2MB.
      • If you were ingesting individual ESM-style modules from the combined file Build/Cesium/Cesium.js or Build/CesiumUnminified/Cesium.js, instead use Build/Cesium/index.js or Build/CesiumUnminified/index.js respectively.
      • Using ESM from Source will require a bundler to resolve third party node dependencies.
      • CESIUM_BASE_URL should be set to either Build/Cesium or Build/CesiumUnminified.
    ๐Ÿ’ฅ Breaking Changes :mega:
    • Model.boundingSphere now returns the bounding sphere in ECEF coordinates instead of the local coordinate system. #10589
    โž• Additions :tada:
    • Models and tilesets that use the CESIUM_primitive_outline extension can now toggle outlines at runtime with the showOutline property. Furthermore, the color of the outlines can now be controlled by the outlineColor property. #10506
    • โž• Added optional blurActiveElementOnCanvasFocus option to set the behavior of blurring the active element when interacting with the canvas. #10518
    • โž• Added ModelExperimental.getNode to allow users to modify the transforms of model nodes at runtime. #10540
    • โž• Added support for point cloud styling for tilesets loaded with ModelExperimental. #10569
    • ๐ŸŽ Upgraded earcut from version 2.2.2 to version 2.2.4 which includes 10-15% better performance in triangulation. #10593
    ๐Ÿ›  Fixes :wrench:
    • Fixed crash when loading glTF models with the EXT_mesh_features and EXT_structural_metadata extensions without channels property. #10511
    • ๐Ÿ›  Fixed a crash in the 3D Tiles Feature Styling sandcastle that occurred when using ModelExperimental. #10514
    • ๐Ÿ›  Fixed improper handling of double-sided materials in ModelExperimental. #10507
    • ๐Ÿ›  Fixed a bug where the alpha component of model.color would not update in the 3D Models Coloring sandcastle when using ModelExperimental. #10519
    • ๐Ÿ›  Fixed a bug where .cmpt files were not cached correctly in ModelExperimental. #10524
    • ๐Ÿ›  Fixed a crash in the 3D Tiles Formats sandcastle when loading draco-compressed point clouds with ModelExperimental. #10521
    • ๐Ÿ›  Fixed a bug where per-feature post-processing was not working with ModelExperimental. #10528
    • ๐Ÿ›  Fixed error in loadAndExecuteScript and favorite icon lost in sandcaslte when CesiumJS was running in cross-origin isloated evironment.#10515
    • ๐Ÿ›  Fixed a bug where Viewer.zoomTo would continuously throw errors if a Cesium3DTileset failed to load.#10523
    • ๐Ÿ›  Fixed a bug where styles would not apply to tilesets if they were applied while the tileset was hidden. #10582
    • ๐Ÿ›  Fixed a bug where .i3dm models with quantized positions were not being correctly loaded by ModelExperimental. #10598
    • ๐Ÿ›  Fixed a bug where dynamic geometry was not marked as ready. #10517
    Deprecated :hourglass_flowing_sand:
    • ๐Ÿ‘Œ Support for rendering instanced models on the CPU has been deprecated and will be removed in CesiumJS 1.97. #10589
    • ๐Ÿšš The polyfills requestAnimationFrame and cancelAnimationFrame have been deprecated and will be removed in 1.99. Use the native browser methods instead. #10579