Cesium官方发行日志

Cesium官方发行日志

Cesium官方基本保持每个月初发布新的版本。大家可以在GitHub上看到相应的版本:https://github.com/CesiumGS/cesium/releases

1.117- 2024-05-01

@cesium/engine
Additions 🎉
  • Added ClippingPolygon and ClippingPolygonCollection for applying multiple clipping regions, with support for concave regions and inverse clipping regions, to 3D Tiles and Terrain. #11750
  • Added Cesium3DTileset.clippingPolygons, Globe.clippingPolygons, and Model.clippingPolygons properties for defining clipping regions from world positions. #11750
Fixes 🔧
  • Fixed a bug where a data source was not automatically rendered after is was added in request render mode. #11934
  • Fixes Typescript definition for Event.raiseEvent. #10498
@cesium/widgets
Fixes 🔧
  • Fixed leaked CSS styling from I3SBuildingSceneLayerExplorer widget. #11959

1.116 - 2024-04-01

@cesium/engine
Breaking Changes 📣
  • Cesium3DTileset.disableCollision has been removed. Use Cesium3DTileset.enableCollision instead.
  • Globe.terrainExaggeration and Globe.terrainExaggerationRelativeHeight have been removed. Use Scene.verticalExaggeration and Scene.verticalExaggerationRelativeHeight instead.
Additions 🎉
  • Surface normals are now computed for clipping and shape bounds in VoxelEllipsoidShape and VoxelCylinderShape. #11847
  • Implemented sharper rendering and lighting on voxels with CYLINDER and ELLIPSOID shape. #11875
  • Implemented vertical exaggeration for voxels with BOX shape. #11887
  • Added the Check object of validators to the public api and types. #11901
Fixes 🔧
  • Fixed issue with BingMapsImageryProvider where given culture option is ineffective #11695
  • Fixed a bug with performance in scenes with multiple tilesets #11878
  • Fixes issue with PolygonGeometry uvs are improperly computed #11767
  • Fixed voxel rendering bugs for non-spherical ellipsoid shapes #11848
  • Fixed a bug where dynamic geometries caused the Scene to continuously render when running in requestRenderMode #6631

1.115 - 2024-03-01

@cesium/engine
Breaking Changes 📣
  • By default, instances of Cesium3DTileset will no longer default to enable collisions for camera collision or for clamping entities. #11829
    • This behavior can be enabled by setting Cesium3DTileset.enableCollision to true.
Additions 🎉
  • Added support for I3S Building Scene Layer. #11678
  • Added Scene.pickVoxel to pick individual cells from a VoxelPrimitive, and VoxelCell to report information about the picked cell. #11828
  • Added Scene.defaultLogDepthBuffer to allow changing the default behavior of the logDepthBuffer for newly created Scene instances. #11859
  • Added SensorVolumePortionToDisplay to assist CzmlDataSource in parsing CZML. #11859
Fixes 🔧
  • Fixed a bug where the camera can stay underground when 3D Tiles are loading in. #11824
  • Fixed a bug with where a mix of empty and non-empty tiles were not refining. #9356
  • Fixed a bug with camera collision with tilesets containing tiles with interleaved buffers #11812
  • Fixed a bug affecting voxel shader compilation in WebGL1 contexts. #11798
  • Fixed a bug where legacy B3DM files that contained glTF 1.0 data that used a CONSTANT technique in the KHR_material_common extension and only defined ambient- or emissive textures (but no diffuse textures) showed up without any texture #11825
  • Fixed an error when the screenSpaceEventHandler was destroyed before Viewer #10576
  • Fixed how Camera.changed handles changes in roll. #11844
Deprecated ⏳
  • Cesium3DTileset.disableCollision has been deprecated and will be removed in 1.116. Use Cesium3DTileset.enableCollision instead.
@cesium/engine
Additions 🎉
  • Added I3SBuildingSceneLayerExplorer widget for working with I3S Building Scene Layer data. #11678

1.114 - 2024-02-01

@cesium/engine
Breaking Changes 📣
  • By default, the screen space camera controller will no longer go inside or under instances of Cesium3DTileset. #11581
    • This behavior can be disabled by setting Cesium3DTileset.disableCollision to true.
    • This feature is enabled by default only for WebGL 2 and above, but can be enabled for WebGL 1 by setting the enablePick option to true when creating the Cesium3DTileset.
  • Clamping to ground, HeightReference.CLAMP_TO_GROUND, and HeightReference.RELATIVE_TO_GROUND now take into account 3D Tilesets. These opions will clamp to either 3D Tilesets or Terrain, whichever has a greater height. #11604
    • To restore previous behavior where an entity is clamped only to terrain or relative only to terrain, set heightReference to HeightReference.CLAMP_TO_TERRAIN or HeightReference.RELATIVE_TO_TERRAIN respectively.
  • Removed the need for node internal packages http, https, url and zlib in the Resource class. This means they do not need to be marked external by build tools anymore. #11773
    • This slightly changed the contents of the RequestErrorEvent error that is thrown in node environments when a request fails. The response property is now a Response object instead of an http.IncomingMessage
  • The Cesium3DTileset.dynamicScreenSpaceError optimization is now enabled by default, as this improves performance for street-level horizon views. Furthermore, the default settings of this feature were tuned for improved performance. Cesium3DTileset.dynamicScreenSpaceErrorDensity was changed from 0.00278 to 0.0002. Cesium3DTileset.dynamicScreenSpaceErrorFactor was changed from 4 to 24. #11718
  • PolygonGeometry.computeRectangle has been removed. Use PolygonGeometry.computeRectangleFromPositions instead.
Additions 🎉
  • Added HeightReference.CLAMP_TO_TERRAIN, HeightReference.RELATIVE_TO_TERRAIN, HeightReference.CLAMP_TO_3D_TILE, and HeightReference.RELATIVE_TO_3D_TILE to position relatve to terrain or 3D tilesets exclusively.#11604
  • Added Cesium3DTileset.getHeight to sample height values of the loaded tiles. If using WebGL 1, the enablePick option must be set to true to use this function. #11581
  • Added Cesium3DTileset.disableCollision to allow the camera from to go inside or below a 3D tileset, for instance, to be used with 3D Tiles interiors. #11581
  • Fog rendering now applies to glTF models and 3D Tiles. This can be configured using scene.fog and scene.atmosphere. #11744
  • Added scene.atmosphere to store common atmosphere lighting parameters. #11744 and #11681
  • Added createWorldBathymetryAsync helper function to make it easier to load Bathymetry terrain. #11790
Fixes 🔧
  • Fixed an issue where DataSource objects incorrectly shared a single PolylineCollection in the PolylineGeometryUpdater. Updated PolylineGeometryUpdater to create a distinct PolylineCollection instance per DataSource. This resolves the crashes reported under #7758 and #9154.
  • Fixed a geometry displacement on iOS devices that was caused by NaN value in czm_translateRelativeToEye function. #7100
  • Fixed improper scaling of ellipsoid inner radii in 3D mode. #11656 and #10245
  • Updated approximateTerrainHeights.json to account for CWB heights to help with ground primitives when using Cesium World Bathymetry #11805
  • Fix globe materials when lighting is false. Slope/Aspect material no longer rely on turning on lighting or shadows. #11563
  • Fixed a bug where GregorianDate constructor would not validate the input parameters for valid date. #10057
  • Fixed a bug where the Cesium3DTileset constructor was ignoring the options dynamicScreenSpaceError, dynamicScreenSpaceErrorDensity, dynamicScreenSpaceErrorFactor and dynamicScreenSpaceErrorHeightFalloff. #11677
  • Fixed a bug where transforms that had been defined with the KHR_texture_transform extension had not been applied to Property Textures in EXT_structural_metadata. #11708
  • Fixed a bug where transforms that had been defined with the KHR_texture_transform extension had not been applied to Feature ID Textures in EXT_mesh_features. #11731
  • Fixed Entity documentation for orientation property. #11762
  • The EntityCollection#add method was documented to throw a DeveloperError for duplicate IDs, but did throw a RuntimeError in this case. This is now changed to throw a DeveloperError. #11776
  • Parts of the documentation have been updated to resolve potential issues with the generated TypedScript definitions. #11776
  • Fixed type definition for Camera.constrainedAxis. #11475
@cesium/widgets
Fixes 🔧
  • Fixed a bug where the 3D Tiles Inspector’s dynamicScreenSpaceErrorDensity slider did not update the tileset #6143

1.113 - 2024-01-02

@cesium/engine
Additions 🎉
  • Vertical exaggeration can now be applied to a Cesium3DTileset. Exaggeration of Terrain and Cesium3DTileset can be controlled simultaneously via the new Scene properties Scene.verticalExaggeration and Scene.verticalExaggerationRelativeHeight. #11655
Fixes 🔧
  • Changes the default RequestScheduler.maximumRequestsPerServer from 6 to 18. This should improve performance on HTTP/2 servers and above. #11627
  • Corrected JSDoc and Typescript definitions that marked optional arguments as required in ImageryProvider constructor. #11625
  • The Quaternion.computeAxis function created an axis that was (0,0,0) for the unit quaternion, and an axis that was (NaN,NaN,NaN) for the quaternion (0,0,0,-1) (which describes a rotation about 360 degrees). Now, it returns the x-axis (1,0,0) in both of these cases. #11665
Deprecated ⏳
  • Globe.terrainExaggeration and Globe.terrainExaggerationRelativeHeight have been deprecated in CesiumJS 1.113. They will be removed in 1.116. Use Scene.verticalExaggeration and Scene.verticalExaggerationRelativeHeight instead. #11655

1.112 - 2023-12-01

@cesium/engine
Fixes 🔧
  • Fixed terrain lockups in requestTileGeometry by ensuring promise handling aligns with CesiumJS’s expectations. #11630
  • Corrected JSDoc and Typescript definitions that marked optional arguments as required in Cesium3dTileset.fromIonAssetId #11623, and IonImageryProvider.fromAssetId #11624

1.111 - 2023-11-01

@cesium/engine
Additions 🎉
  • BingMapsImageryProvider.fromUrl now takes an optional mapLayer parameter which is a string that maps directly to the mapLayer template parameters specified in the Bing Maps documentation.
Fixes 🔧
  • By default, createGooglePhotorealistic3DTileset no longer shows credits on screen but links to them instead, as this is compliant with the minimum required attribution. To restore this behavior, pass the option showCreditsOnScreen: true. #11589
  • Fixed an issue with polygon hole rendering. #11583
  • Fixed error with rhumb lines that have a 0 degree heading. #11573
  • Fixed czm_normal, czm_normal3D, czm_inverseNormal, and czm_inverseNormal3D for cases where the model matrix has non-uniform scale. #11553
  • Fixed issue with clustered labels when dataSource.show was toggled. #11560
  • Fixed inconsistent clustering when dataSource.show was toggled. #11560

1.110.1 - 2023-10-25

@cesium/engine
Breaking Changes 📣
  • CesiumJS no longer ships with a demo Google Maps API key. GoogleMaps.defaultApiKey is no longer defined by default.

  • createGooglePhotorealistic3DTileset by default now provides tiles via Cesium ion if the GoogleMaps.defaultApiKey is not set.

  • If you wish to continue to use your own Google Maps API key, you can go back to the previous behavior:

    Cesium.GoogleMaps.defaultApiKey = "your-api-key";
    
    const tileset = await Cesium.createGooglePhotorealistic3DTileset();
    viewer.scene.primitives.add(tileset));
    

1.110 - 2023-10-02

@cesium/engine
Breaking Changes 📣
  • Cesium3DTileset.maximumMemoryUsage has been removed. Use Cesium3DTileset.cacheBytes and Cesium3DTileset.maximumCacheOverflowBytes instead.
Additions 🎉
  • Worker files are now embedded in Build/Cesium/Cesium.js and Build/CesiumUnminified/Cesium.js. #11519
  • Added PolygonGeometry.computeRectangleFromPositions for computing a Rectangle that encloses a polygon, including cases over the international date line and the poles.
  • Added Stereographic for computing 2D operations in stereographic, or polar, coordinates.
  • Adds events to PrimitiveCollection for primitive added/removed. #11531
  • Adds an optional rejectOnTileFail parameter to sampleTerrain and sampleTerrainMostDetailed to allow handling of tile request failures. #11530
Fixes 🔧
  • Fixed rendering of polygons spanning extents of 90 degrees or more. #4871
  • Fixed ground primitive polygon visual artifacts at pole. #8033
  • Fixed bug in Cesium3DTilePass affecting the PRELOAD pass. #11525
  • Fixed bug where sky atmosphere could not be shown when globe.show is initialized to false. #11266
  • Fixed issue loading workers in cross-origin Build/Cesium/Cesium.js and Build/CesiumUnminified/Cesium.js requests. #11505
  • Fixed showOnScreen behavior for Model and Cesium3DTileset credits. #11538
  • Remove reading of import.meta meta-property because webpack does not support it. #11511
  • Fixed label background rendering in request render mode. #11529
Deprecated ⏳
  • PolygonGeometry.computeRectangle has been deprecated. It will be removed in 1.112. Use PolygonGeometry.computeRectangleFromPositions instead.

1.109 - 2023-09-01

@cesium/engine
Breaking Changes 📣
  • Firefox 114 is now the minimum Firefox version required to run CesiumJS. #11400
  • TaskProcessor now loads worker files as ESM instead of AMD. #11400
Additions 🎉
  • Added the retinaTiles option to the OpenStreetMapImageryProvider contructor options to allow requesting tiles at the 2x resolution for retina displays. #11485
  • The TypeScript definition of defined now uses type predicates to allow TypeScript to use the result during compliation.
Fixes 🔧
  • Restore previous behavior for cut out terrain loading. #11482
  • The return type of SingleTileImageryProvider.fromUrl has been fixed to be Promise.<SingleTileImageryProvider> (was void). #11432
  • Fixed request render mode when models are loading without incrementallyLoadTextures. #11486
@cesium/widgets
Additions 🎉
  • Added two additional default imagery providers from Stadia maps to the BaseLayerPicker widget: Alidade Smooth and Alidade Smooth Dark. #11485
Fixes 🔧
  • Use updated URLs and attribution for Stamen Map styles in the default BaseLayerPicker widget. #11451
  • Fixed types for ProviderViewModel.CreationFunction. #11452
  • Fixed I3dmLoader manually compute positions when RTC_CENTER is ZERO #11466

1.108 - 2023-08-01

Major Announcements 📢
@cesium/engine
Fixes 🔧
  • Fixed issue where terrain with multiple layers was loading higher LOD tiles inconsistently. #11312
  • Fixed OpenStreetMapImageryProvider usage in comments, change default url and add tile.openstreetmap.org to RequestScheduler.requestsByServer. #11407
  • Fixed calculation of GroundPolyline bounding spheres in regions with negative terrain heights. #11184
  • Fixed CzmlDataSource in cases of custom Ellipsoid.WGS84 definitions. #11190
  • Fixed mipmaps for textures using the KHR_texture_transform extension. #11411
@cesium/widgets
Fixes 🔧
  • Fixed conflicting geocoder suggestions for latitude and longitude pairs by removing CartographicGeocoderService from the default geocoder services in GeocoderViewModel. #11433.

1.107.2 - 2023-07-13

This is an npm-only release to fix a dependency issue published in 1.107.1

1.107.1 - 2023-07-13

@cesium/engine
Fixes 🔧
  • Fixed a bug where Model would not respond to different alpha values in a Cesium3DTileStyle. #11399
  • Fixed dimensions of tangentEC in custom shaders. #11394
@cesium/widgets
Fixes 🔧
  • Fixed promise return value when using viewer.flyTo to navigate to an ImageryLayer. #11392
  • Fixed depthTestAgainstTerrain value being overridden when using the base layer picker widget. #11393

1.107 - 2023-07-03

Major Announcements 📢
  • The readyPromise pattern has been removed across the API. This has been done to facilitate better asynchronous flow and error handling. For example:
try {
  const tileset = await Cesium.Cesium3DTileset.fromUrl(url);
  viewer.scene.primitives.add(tileset);
} catch (error) {
  console.log(`Failed to load tileset: ${error}`);
}
try {
  const viewer = new Cesium.Viewer("cesiumContainer", {
    terrainProvider: await Cesium.createWorldTerrainAsync();
  });
} catch (error) {
  console.log(`Failed to created terrain: ${error}`);
}
@cesium/engine
Breaking Changes 📣
  • CesiumWidget constructor option options.imageryProvider has been removed. Use options.baseLayer instead.
  • ImageryProvider.ready and ImageryProvider.readyPromise have been removed.
  • ImageryProvider.defaultAlpha, ImageryProvider.defaultNightAlpha, ImageryProvider.defaultDayAlpha, ImageryProvider.defaultBrightness, ImageryProvider.defaultContrast, ImageryProvider.defaultHue, ImageryProvider.defaultSaturation, ImageryProvider.defaultGamma, ImageryProvider.defaultMinificationFilter, ImageryProvider.defaultMagnificationFilter have been removed. Use ImageryLayer.alpha, ImageryLayer.nightAlpha, ImageryLayer.dayAlpha, ImageryLayer.brightness, ImageryLayer.contrast, ImageryLayer.hue, ImageryLayer.saturation, ImageryLayer.gamma, ImageryLayer.minificationFilter, ImageryLayer.magnificationFilterinstead.
  • ImageryLayer.getViewableRectangle was removed. Use ImageryLayer.getImageryRectangle instead.
  • ArcGisMapServerImageryProvider constructor parameter url,ArcGisMapServerImageryProvider.ready, and ArcGisMapServerImageryProvider.readyPromise have been removed. Use ArcGisMapServerImageryProvider.fromUrl instead.
  • BingMapsImageryProvider constructor parameter url,BingMapsImageryProvider.ready, and BingMapsImageryProvider.readyPromise have been removed. Use BingMapsImageryProvider.fromUrl instead.
  • GoogleEarthEnterpriseImageryProvider constructor parameters options.url and options.metadata, GoogleEarthEnterpriseImageryProvider.ready, and GoogleEarthEnterpriseImageryProvider.readyPromise have been removed. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead.
  • GoogleEarthEnterpriseMapsProvider constructor parameters options.url and options.channel, GoogleEarthEnterpriseMapsProvider.ready, and GoogleEarthEnterpriseMapsProvider.readyPromise have been removed. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead.
  • GridImageryProvider.ready and GridImageryProvider.readyPromise have been removed.
  • IonImageryProvider constructor parameter assetId,BIonImageryProvider.ready, and IonImageryProvider.readyPromise have been removed. Use IonImageryProvider.fromAssetId instead.
  • MapboxImageryProvider.ready and MapboxImageryProvider.readyPromise have been removed.
  • MapboxStyleImageryProvider.ready and MapboxStyleImageryProvider.readyPromise have been removed.
  • OpenStreetMapImageryProvider.ready and OpenStreetMapImageryProvider.readyPromise have been removed.
  • SingleTileImageryProvider constructor parameters options.tileHeight and options.tileWidth became required in CesiumJS 1.104. Omitting these properties will result in an error in 1.107. Provide options.tileHeight and options.tileWidth, or use SingleTileImageryProvider.fromUrl instead.
  • SingleTileImageryProvider.ready and SingleTileImageryProvider.readyPromise have been removed. Use SingleTileImageryProvider.fromUrl instead.
  • TileCoordinatesImageryProvider.ready and TileCoordinatesImageryProvider.readyPromise have been removed.
  • TileMapServiceImageryProvider constructor parameter options.url, TileMapServiceImageryProvider.ready, and TileMapServiceImageryProvider.readyPromise have been removed. Use TileMapServiceImageryProvider.fromUrl instead.
  • UrlTemplateImageryProvider.reinitialize, UrlTemplateImageryProvider.ready, and UrlTemplateImageryProvider.readyPromise have been removed.
  • WebMapServiceImageryProvider.ready, and WebMapServiceImageryProvider.readyPromise have been removed.
  • WebMapTileServiceImageryProvider.ready, and WebMapTileServiceImageryProvider.readyPromise have been removed.
  • TerrainProvider.ready and TerrainProvider.readyPromise have been removed.
  • createWorldImagery was removed. Use createWorldImageryAsync instead.
  • ArcGISTiledElevationTerrainProvider constructor parameter options.url, ArcGISTiledElevationTerrainProvider.ready, and ArcGISTiledElevationTerrainProvider.readyPromise have been removed. Use ArcGISTiledElevationTerrainProvider.fromUrl instead.
  • CesiumTerrainProvider constructor parameter options.url, CesiumTerrainProvider.ready, and CesiumTerrainProvider.readyPromise have been removed. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead.
  • CustomHeightmapTerrainProvider.ready, and CustomHeightmapTerrainProvider.readyPromise were deprecated in CesiumJS 1.104.
  • EllipsoidTerrainProvider.ready, and EllipsoidTerrainProvider.readyPromise were deprecated in CesiumJS 1.104.
  • GoogleEarthEnterpriseMetadata constructor parameter options.url and GoogleEarthEnterpriseMetadata.readyPromise have been removed. Use GoogleEarthEnterpriseMetadata.fromUrl instead.
  • GoogleEarthEnterpriseTerrainProvider constructor parameters options.url and options.metadata, GoogleEarthEnterpriseTerrainProvider.ready, and GoogleEarthEnterpriseTerrainProvider.readyPromise have been removed. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.
  • VRTheWorldTerrainProvider constructor parameter options.url, VRTheWorldTerrainProvider.ready, and VRTheWorldTerrainProvider.readyPromise have been removed. Use VRTheWorldTerrainProvider.fromUrl instead.
  • createWorldTerrain was removed. Use createWorldTerrainAsync instead.
  • Cesium3DTileset constructor parameter options.url, Cesium3DTileset.ready, and Cesium3DTileset.readyPromise have been removed. Use Cesium3DTileset.fromUrl instead.
  • createOsmBuildings was removed. Use createOsmBuildingsAsync instead.
  • Model.fromGltf, Model.readyPromise, and Model.texturesLoadedPromise have been removed. Use Model.fromGltfAsync, Model.readyEvent, Model.errorEvent, and Model.texturesReadyEvent instead. For example:
    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}`);
    }
    
  • I3SDataProvider construction parameter options.url, I3SDataProvider.ready, and I3SDataProvider.readyPromise have been removed. Use I3SDataProvider.fromUrl instead.
  • TimeDynamicPointCloud.readyPromise was removed. Use TimeDynamicPointCloud.frameFailed to track any errors.
  • VoxelProvider.ready and VoxelProvider.readyPromise have been removed.
  • VoxelPrimitive.eadyPromise have been removed.
  • Cesium3DTilesVoxelProvider construction parameter options.url, Cesium3DTilesVoxelProvider.ready, and Cesium3DTilesVoxelProvider.readyPromise have been removed. Use Cesium3DTilesVoxelProvider.fromUrl instead.
  • Primitive.readyPromise, ClassificationPrimitive.readyPromise, GroundPrimitive.readyPromise, and GroundPolylinePrimitive.readyPromise have been removed. Wait for Primitive.ready, ClassificationPrimitive.ready, GroundPrimitive.ready, or GroundPolylinePrimitive.ready to return true instead.
  • CreditDisplay.addCredit, CreditDisplay.addDefaultCredit, and CreditDisplay.removeDefaultCredit have been removed. Use CreditDisplay.addCreditToNextFrame, CreditDisplay.addStaticCredit, and CreditDisplay.removeStaticCredit respectively instead.
Additions 🎉
  • Added Cesium3DTileset.cacheBytes and Cesium3DTileset.maximumCacheOverflowBytes to better control memory usage. To replicate previous behavior, convert maximumMemoryUsage from MB to bytes, assign the value to cacheBytes, and set maximumCacheOverflowBytes = Number.MAX_VALUE
Fixes 🔧
  • Fixed crash in CzmlDataSource when a 3D Tileset entity is hidden. #11357
  • Fixed PostProcessStage crash affecting point clouds rendered with attenuation. #11339
  • Fixed a race condition when loading cut-out terrain. #11382
  • Fixed debug label rendering in Cesium3dTilesInspector. #11355
  • Fixed credits for imagery layer shows up even when layer is hidden. #11340
  • Fixed Insufficient buffer size thrown by rendering 3dtiles. #11358
Deprecated ⏳
  • Cesium3DTileset.maximumMemoryUsage has been deprecated in CesiumJS 1.107. It will be removed in 1.110. Use Cesium3DTileset.cacheBytes and Cesium3DTileset.maximumCacheOverflowBytes instead. #11310
@cesium/widgets
Breaking Changes 📣
  • Viewer constructor option options.imageryProvider has been deprecated in CesiumJS 1.104. It will be removed in 1.107. Use options.baseLayer instead.

1.106.1 - 2023-06-02

This is an npm-only release to fix a dependency issue published in 1.106

1.106 - 2023-06-01

@cesium/engine
Fixes 🔧
  • Fixed label background rendering. #11293
  • Fixed color creation from CSS color string with modern “space-separated” syntax. #11271
  • Fixed tracked entity camera controls. #11286
  • Fixed a race condition when loading cut-out terrain. #11296
  • Fixed async behavior for custom terrain and imagery providers. #11274

1.105.2 - 2023-05-15

  • This is an npm-only release to fix a dependency issue published in 1.105.1.

1.105.1 - 2023-05-10

@cesium/engine
Additions 🎉
  • Added createGooglePhotorealistic3DTileset to create a 3D tileset streaming Google Photorealistic 3D Tiles.
  • Added GoogleMaps for managing credentials when loading data from the Google Map Tiles API.
Fixes 🔧
  • Improved camera controls when globe is off. #7171

1.105 - 2023-05-01

@cesium/engine
Additions 🎉
  • Added ArcGisMapServerImagery.fromBasemapType, and ArcGisBaseMapType, and ArcGisMapService for ease of use with the latest ArcGIS Imagery API.#11098
  • Added CesiumWidget.creditDisplay to access the onscreen and lightbox credits. #11241
  • Added CreditDisplay.addStaticCredit and CreditDisplay.removeStaticCredit such that Credit.showOnScreen value is taken into account. #6215
  • Added options.gltfCallback to Model.loadGltfAsync to allow apps to access the loaded glTF JSON. #11240
  • Added GeocoderService.credit and and attributions property to GeocoderService.Result to allow for geocoder services to attribute results. #11256
Fixes 🔧
  • Fixed Repeated URI parsing slows 3D Tiles performance #11197. Together with #11211, this can reduce tile parsing time by as much as 25% on large tilesets
  • Fixed atmosphere rendering performance issue. 10510
  • Fixed crashing when zooming to an entity without globe present. #10957
  • Fixed model rendering when emissiveTexture is defined and emissiveFactor is not. #11215
  • Fixed issue with calling switchToOrthographicFunction and camera.flyTo in immediate succession. #11210
  • Fixed an issue when zooming in an orthographic frustum. #11206
  • Fixed a crash when Cesium3DTileStyle’s scaleByDistance, translucencyByDistance or distanceDisplayCondition set to StyleExpression
    which returns undefined. #11228
  • Fixed handling of out_FragColor layout declarations when translating shaders to WebGL1. #11230
  • Fixed a problem with Ambient Occlusion that affected some MacOS hardware. #10106
  • Fixed UniformType.MAT3 value for custom shaders. #11235.
Deprecated ⏳
  • CreditDisplay.addCredit, CreditDisplay.addDefaultCredit, and CreditDisplay.removeDefaultCredit have been deprecated in CesiumJS 1.105. They will be removed in 1.107. Use CreditDisplay.addCreditToNextFrame, CreditDisplay.addStaticCredit, and CreditDisplay.removeStaticCredit respectively instead. #11241
@cesium/widgets
Additions 🎉
  • Added Viewer.creditDisplay to access the onscreen and lightbox credits. #11241
  • The Geocoder widget will now display attributions onscreen or in the lightbox for geocoder results if present, otherwise a default credit from a geocoder service if one is provided. #11256
Fixes 🔧
  • Fixed missing ContextOptions in generated TypeScript definitions. 10963

1.104 - 2023-04-03

Major Announcements 📢
  • Starting with CesiumJS 1.104 The readyPromise pattern has been deprecated across the API. It will be removed in CesiumJS 1.107. This has been done to facilitate better asynchronous flow and error handling. For example:
try {
  const tileset = await Cesium.Cesium3DTileset.fromUrl(url);
  viewer.scene.primitives.add(tileset);
} catch (error) {
  console.log(`Failed to load tileset: ${error}`);
}
@cesium/engine
Additions 🎉
  • Added ArcGisMapServerImageryProvider.fromUrl, ArcGISTiledElevationTerrainProvider.fromUrl, BingMapsImageryProvider.fromUrl, CesiumTerrainProvider.fromUrl, CesiumTerrainProvider.fromIonAssetId, GoogleEarthEnterpriseMetadata.fromUrl, GoogleEarthEnterpriseImageryProvider.fromMetadata, GoogleEarthEnterpriseMapsProvider.fromUrl, GoogleEarthEnterpriseTerrainProvider.fromMetadata, ImageryLayer.fromProviderAsync, IonImageryProvider.fromAssetId, SingleTileImageryProvider.fromUrl, Terrain, TileMapServiceImageryProvider.fromUrl, VRTheWorldTerrainProvider.fromUrl, createWorldTerrainAsync, Cesium3DTileset.fromUrl, Cesium3DTileset.fromIonAssetId, createOsmBuildingsAsync, Model.fromGltfAsync, Model.readyEvent, Model.errorEvent,Model.texturesReadyEvent, I3SDataProvider.fromUrl, and Cesium3DTilesVoxelProvider.fromUrl for better async flow and error handling. #11059
  • Send X-Cesium-* headers to requests to cesium ion. #11200
Fixes 🔧
  • Fixed issue where passing children in the Entity constructor options will override children. #11101
  • Fixed error type to be RequestErrorEvent in Resource.retryCallback. #11177
  • Fixed issue when render OrthographicFrustum geometry by DebugCameraPrimitive. #11159
  • Fixed ion URL in RequestScheduler throttling overrides. #11193
  • Fixed SingleTileImageryProvider fetching image when show is false by allowing lazy-loading for SingleTileImageryProvider if tileWidth and tileHeight are provided to the constructor. #9529
  • Fixed various race conditions from async operations. #10909
Deprecated ⏳
  • CesiumWidget constructor option options.imageryProvider has been deprecated in CesiumJS 1.104. It will be removed in 1.107. Use options.baseLayer instead.
  • ImageryProvider.ready and ImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • ImageryProvider.defaultAlpha, ImageryProvider.defaultNightAlpha, ImageryProvider.defaultDayAlpha, ImageryProvider.defaultBrightness, ImageryProvider.defaultContrast, ImageryProvider.defaultHue, ImageryProvider.defaultSaturation, ImageryProvider.defaultGamma, ImageryProvider.defaultMinificationFilter, ImageryProvider.defaultMagnificationFilter were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use ImageryLayer.alpha, ImageryLayer.nightAlpha, ImageryLayer.dayAlpha, ImageryLayer.brightness, ImageryLayer.contrast, ImageryLayer.hue, ImageryLayer.saturation, ImageryLayer.gamma, ImageryLayer.minificationFilter, ImageryLayer.magnificationFilterinstead.
  • ImageryLayer.getViewableRectangle was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use ImageryLayer.getImageryRectangle instead.
  • ArcGisMapServerImageryProvider constructor parameter url,ArcGisMapServerImageryProvider.ready, and ArcGisMapServerImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead.
  • BingMapsImageryProvider constructor parameter url,BingMapsImageryProvider.ready, and BingMapsImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use BingMapsImageryProvider.fromUrl instead.
  • GoogleEarthEnterpriseImageryProvider constructor parameters options.url and options.metadata, GoogleEarthEnterpriseImageryProvider.ready, and GoogleEarthEnterpriseImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead.
  • GoogleEarthEnterpriseMapsProvider constructor parameters options.url and options.channel, GoogleEarthEnterpriseMapsProvider.ready, and GoogleEarthEnterpriseMapsProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead.
  • GridImageryProvider.ready and GridImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • IonImageryProvider constructor parameter assetId,BIonImageryProvider.ready, and IonImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use IonImageryProvider.fromAssetId instead.
  • MapboxImageryProvider.ready and MapboxImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • MapboxStyleImageryProvider.ready and MapboxStyleImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • OpenStreetMapImageryProvider.ready and OpenStreetMapImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • SingleTileImageryProvider constructor parameters options.tileHeight and options.tileWidth became required in CesiumJS 1.104. Omitting these properties will result in an error in 1.107. Provide options.tileHeight and options.tileWidth, or use SingleTileImageryProvider.fromUrl instead.
  • SingleTileImageryProvider.ready and SingleTileImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use SingleTileImageryProvider.fromUrl instead.
  • TileCoordinatesImageryProvider.ready and TileCoordinatesImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • TileMapServiceImageryProvider constructor parameter options.url, TileMapServiceImageryProvider.ready, and TileMapServiceImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use TileMapServiceImageryProvider.fromUrl instead.
  • UrlTemplateImageryProvider.reinitialize, UrlTemplateImageryProvider.ready, and UrlTemplateImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • WebMapServiceImageryProvider.ready, and WebMapServiceImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • WebMapTileServiceImageryProvider.ready, and WebMapTileServiceImageryProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • TerrainProvider.ready and TerrainProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • createWorldImagery was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use createWorldImageryAsync instead.
  • ArcGISTiledElevationTerrainProvider constructor parameter options.url, ArcGISTiledElevationTerrainProvider.ready, and ArcGISTiledElevationTerrainProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead.
  • CesiumTerrainProvider constructor parameter options.url, CesiumTerrainProvider.ready, and CesiumTerrainProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead.
  • CustomHeightmapTerrainProvider.ready, and CustomHeightmapTerrainProvider.readyPromise were deprecated in CesiumJS 1.104.
  • EllipsoidTerrainProvider.ready, and EllipsoidTerrainProvider.readyPromise were deprecated in CesiumJS 1.104.
  • GoogleEarthEnterpriseMetadata constructor parameter options.url and GoogleEarthEnterpriseMetadata.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead.
  • GoogleEarthEnterpriseTerrainProvider constructor parameters options.url and options.metadata, GoogleEarthEnterpriseTerrainProvider.ready, and GoogleEarthEnterpriseTerrainProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.
  • VRTheWorldTerrainProvider constructor parameter options.url, VRTheWorldTerrainProvider.ready, and VRTheWorldTerrainProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use VRTheWorldTerrainProvider.fromUrl instead.
  • createWorldTerrain was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use createWorldTerrainAsync instead.
  • Cesium3DTileset constructor parameter options.url, Cesium3DTileset.ready, and Cesium3DTileset.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use Cesium3DTileset.fromUrl instead.
  • createOsmBuildings was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use createOsmBuildingsAsync instead.
  • Model.fromGltf, Model.readyPromise, and Model.texturesLoadedPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use Model.fromGltfAsync, Model.readyEvent, Model.errorEvent, and Model.texturesReadyEvent instead. For example:
    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}`);
    }
    
  • I3SDataProvider construction parameter options.url, I3SDataProvider.ready, and I3SDataProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use I3SDataProvider.fromUrl instead.
  • TimeDynamicPointCloud.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use TimeDynamicPointCloud.frameFailed to track any errors.
  • VoxelProvider.ready and VoxelProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107.
  • Cesium3DTilesVoxelProvider construction parameter options.url, Cesium3DTilesVoxelProvider.ready, and Cesium3DTilesVoxelProvider.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead.
  • Primitive.readyPromise, ClassificationPrimitive.readyPromise, GroundPrimitive.readyPromise, and GroundPolylinePrimitive.readyPromise were deprecated in CesiumJS 1.104. They will be removed in 1.107. Wait for Primitive.ready, ClassificationPrimitive.ready, GroundPrimitive.ready, or GroundPolylinePrimitive.ready to return true instead.
@cesium/widgets
Fixes 🔧
  • Fixed Cesium.Viewer instantiated inside my lit component: CreditDisplay is missing its styles #10907
  • Fixed allowing false for imageryProvider in Viewer.ConstructorOptions. #11179
Deprecated ⏳
  • Viewer constructor option options.imageryProvider has been deprecated in CesiumJS 1.104. It will be removed in 1.107. Use options.baseLayer instead.

1.103 - 2023-03-01

@cesium/engine
Additions 🎉
  • Added smooth zoom with mouse wheel. #11062
  • Enabled lighting on voxels with BOX shape. #11076
Fixes 🔧
  • Fixed browser warning for willReadFrequently option. #11025
  • Replaced constructor types with primitive types in JSDoc and generated TypeScript definitions. #11080
  • Adjusted render order of voxels and opaque entities. #11120
  • Fixed artifacts on edges of voxels with BOX shape. #11050
  • Fixed initial textures visibility for particle systems. #11099
  • Fixed Primitive.getGeometryInstanceAttributes cache acquisition speed. #11066
  • Fixed requestWebgl1 hint error in context. #11082
@cesium/widgets
Fixes 🔧
  • Replaced constructor types with primitive types in JSDoc and generated TypeScript definitions. #11080

1.102 - 2023-02-01

@cesium/engine
Major Announcements 📢
  • CesiumJS now defaults to using a WebGL2 context for rendering. WebGL2 is widely supported on all platforms and this results in better feature support across devices, especially mobile.
    • WebGL1 is supported. If WebGL2 is not available, CesiumJS will automatically fall back to WebGL1.
    • In order to work in a WebGL2 context, any custom materials, custom primitives or custom shaders will need to be upgraded to use GLSL 300.
    • Otherwise to request a WebGL 1 context, set requestWebgl1 to true when providing ContextOptions as shown below:
      const viewer = new Viewer("cesiumContainer", {
        contextOptions: {
          requestWebgl1: true,
        },
      });
      
Additions 🎉
  • Added FeatureDetection.supportsWebgl2 to detect if a WebGL2 rendering context in the current browser.
Fixes 🔧
  • Fixed label background rendering. #11040
  • Fixed a bug decoding glTF Draco attributes with quantization bits above 16. #7471
  • Fixed an edge case in viewer.flyTo when flying to a imagery layer with certain terrain providers. #10937
  • Fixed a crash in terrain sampling if any points have an undefined position due to being outside the rectangle. #10931
  • Fixed a bug where scale was not being applied to the top-level tileset geometric error. #11047
  • Updating Bing Maps top page hyperlink to Bing Maps ToU hyperlink #11049

1.101 - 2023-01-02

Major Announcements 📢
  • Starting with version 1.102, CesiumJS will default to using a WebGL2 context for rendering. WebGL2 is widely supported on all platforms and this change will result in better feature support across devices, especially mobile.
    • WebGL1 will still be supported. If WebGL2 is not available, CesiumJS will automatically fall back to WebGL1.
    • In order to work in a WebGL2 context, any custom materials, custom primitive or custom shaders will need to be upgraded to use GLSL 300.
    • Otherwise to request a WebGL 1 context, set requestWebgl1 to true when providing ContextOptions as shown below:
      const viewer = new Viewer("cesiumContainer", {
        contextOptions: {
          requestWebgl1: true,
        },
      });
      
@cesium/engine
Additions 🎉
  • Added vertexShadowDarkness parameter to Globe to control the amount of darkness of the vertex shadow when terrain lighting is enabled. #10914
  • Added experimental support for 3D Tiles voxels with the 3DTILES_content_voxels extension. The current implementation is intended for development use, as the voxel format has not yet been finalized and is subject to breaking changes without deprecation.
Fixes 🔧
  • Fixed a bug where the scale of a PointPrimitive was incorrect when scaleByDistance was set to a NearFarScalar. #10912
  • Fixed glTF models with a mix of Draco and non-Draco attributes. #10936
  • Fixed a bug where billboards with alignedAxis properties were not properly aligned in 2D and Columbus View. #10965
  • Fixed a bug where *.ktx2 image loading from a URI failed. #10869
  • Fixed a bug where a Model would sometimes disappear when loaded in Columbus View. #10945
  • Fixed a bug where the entity collection of a GpxDataSource did not have the owner property set. #10921
  • Fixed the JSDoc and TypeScript definitions of arguments in Matrix2.multiplyByScalar, Matrix3.multiplyByScalar, and several functions in the S2Cell class. #10899
  • Fixed a bug where result parameters were omitted from the TypeScript definitions. #10864
Deprecated ⏳
  • ContextOptions.requestWebgl2 was deprecated in CesiumJS 1.101 and will be removed in 1.102. Instead, CesiumJS will default to using a WebGL2 context for rendering. Use ContextOptions.requestWebgl1 to request a WebGL1 or WebGL2 context.
@cesium/widgets
Additions 🎉
  • Added viewerVoxelInspectorMixin and VoxelInspector to support experimental 3D Tiles voxels.

1.100 - 2022-12-01

Major Announcements 📢
  • CesiumJS is now published alongside two smaller packages @cesium/engine and @cesium/widgets #10824:
    • The source code has been paritioned into two folders: packages/engine and packages/widgets.
    • These workspaces packages will follow semantic versioning.
    • These workspaces packages will be published as ES modules with TypeScript definitions.
    • In the combined CesiumJS release, the Source folder only contains the following:
      • Cesium.js
      • Cesium.d.ts
      • Assets
      • ThirdParty
      • Widgets(CSS files only)
    • The ability to import modules and TypeScript definitions from individual files has been removed. Any imports should originate from the cesium module (import { Cartesian3 } from "cesium";) or the combined Cesium.js file (import { Cartesian3 } from "Source/Cesium.js";);
Breaking Changes 📣
  • The viewer parameter in KmlTour.prototype.play was removed. Instead of a Viewer, pass a CesiumWidget instead. #10845

1.99 - 2022-11-01

Major Announcements 📢
  • Starting with version 1.100, CesiumJS will be published alongside two smaller packages @cesium/engine and @cesium/widgets #10824:
    • The source code will been paritioned into two folders: packages/engine and packages/widgets.
    • These workspaces packages will follow semantic versioning.
    • These workspaces packages will be published as ES modules with TypeScript definitions.
    • The combined CesiumJS release will continue to be published, however, the Source folder will only contain the following:
      • Cesium.js
      • Cesium.d.ts
      • Assets
      • ThirdParty
      • Widgets(CSS files only)
    • The ability to import modules and TypeScript definitions from individual files will been removed. Any imports should originate from the cesium module (import { Cartesian3 } from "cesium";) or the combined Cesium.js file (import { Cartesian3 } from "Source/Cesium.js";);
Breaking Changes 📣
  • The polyfills requestAnimationFrame and cancelAnimationFrame have been removed. Use the native browser methods instead. #10579
Additions 🎉
  • Added support for I3S 3D Object and IntegratedMesh Layers. #9634
Deprecated ⏳
  • The viewer parameter in KmlTour.prototype.play was deprecated in Cesium 1.99. It will be removed in 1.100. Instead of a Viewer, pass a CesiumWidget instead. #10845
Fixes 🔧
  • Fixed a bug where the scale of a Model was being incorrectly applied to its bounding sphere. #10855
  • Fixed a bug where rendering a Model with image-based lighting while specular environment maps were unsupported caused a crash. #10859
  • Fixed a bug where request render mode was broken when a ground primitive is added. #10756

1.98.1 - 2022-10-03

  • This is an npm only release to fix the improperly published 1.98.

1.98 - 2022-10-03

Breaking Changes 📣
  • As of the previous release (1.97), new Model() is an internal constructor and must not be used directly. Use Model.fromGltf() instead. #10778
  • The .getPropertyNames methods of Cesium3DTileFeature, Cesium3DTilePointFeature, and ModelFeature have been removed. Use the .getPropertyIds methods instead.
Additions 🎉
  • Added support for the WEB3D_quantized_attributes extension found in some glTF 1.0 models. #10758
Fixes 🔧
  • Fixed a bug where instanced models without normals would not render. #10765
  • Fixed a regression where i3dm with scale and without rotation would render incorrectly. #10808
  • Fixed a regression where instanced feature IDs were not processed correctly #10771
  • Fixed a regression where Cesium3DTileFeature.setProperty() was not creating properties for unknown property IDs. #10775
  • Fixed a regression where pnts tiles with 3DTILES_draco_point_compression and <= 8 quantization bits were being rendered incorrectly. #10794
  • Fixed a regression where glTF models with unused nodes would crash #10813
  • Fixed a regression where tilesets would not load in multiple Viewers. #10828
  • Fixed a bug where camera would not follow the Viewer.trackedEntity if it had a model with a HeightReference other than NONE. #10805
  • Fixed a bug where calling removeAll on a ClippingPlaneCollection attached to a Model would cause a crash. #10827
  • Fixed a bug where replacing a Model’s ClippingPlaneCollection with one of the same length would cause a crash. #10831
  • Fixed a bug where KMLs with a NetworkLink with viewRefreshMode==‘onRegion’ would cause Cesium to make numerous resource requests and possibly trigger an out of memory error. #10790
  • Fixed a bug where calling Vector3DTileContent.getFeature before a render update could result in no feature being returned. #10819

1.97 - 2022-09-01

Major Announcements 📢
  • CesiumJS has switched to a new architecture for loading glTF models and tilesets to enable:
  • 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 📣
  • 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.
  • new Model() is an internal constructor and must not be used directly. Use Model.fromGltf() instead. #10778
Additions 🎉
  • Model can now classify other assets with a given classificationType. #10623
  • Model now supports back face culling for point clouds. #10703
  • Export asset files such as CSS in package.json, allowing bundlers to import without additional configuration. #9212
  • The sideEffects field in package.json is now specified, allowing more conservative bundlers like Webpack to enable tree shaking by default. #10714
  • Model entities now support CustomShader. #10747
Fixes 🔧
  • 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 ES 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
  • Fixed bounding volume calculations for glTF models with KHR_mesh_quantization and normalized positions. #10741

1.96 - 2022-08-01

Major Announcements 📢
  • 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 📣
  • Model.boundingSphere now returns the bounding sphere in ECEF coordinates instead of the local coordinate system. #10589
  • Cesium3DTileStyle.readyPromise and Cesium3DTileStyle.ready have been removed. If loading a style from a url, use Cesium3DTileStyle.fromUrl instead. #10348
Additions 🎉
  • 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 🔧
  • 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 ⏳
  • 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

1.95 - 2022-07-01

Breaking Changes 📣
  • Tilesets rendered with ModelExperimental must set projectTo2D to true in order to be accurately projected and rendered in 2D / CV mode. #10440
Additions 🎉
  • Memory statistics for ModelExperimental now appear in the Cesium3DTilesInspector. This includes binary metadata memory, which is not counted by Model. #10397
  • Memory statistics for ResourceCache (used by ModelExperimental) now appear in the Cesium3DTilesInspector. #10413
  • Added support for rendering individual models in 2D / CV using ModelExperimental. #10419
  • Added support for rendering instanced tilesets in 2D / CV using ModelExperimental. #10433
  • Added modelUpAxis and modelForwardAxis constructor options to Cesium3DTileset #10439
  • Added heightReference to ModelExperimental. #10448
  • Added silhouetteSize and silhouetteColor to ModelExperimental. #10457
  • Added support for mipmapped textures in ModelExperimental. #10231
  • Added distanceDisplayCondition to ModelExperimental. #10481
  • Added support for AGI_articulations to ModelExperimental. #10479
  • Added credit to ModelExperimental. #10489
  • Added asynchronous to ModelExperimental.fromGltf. #10490
  • Added id to ModelExperimental. #10491
  • ExperimentalFeatures.enableModelExperimental now enables ModelExperimental for entities and CZML in addition to 3D Tiles. #10492
Fixes 🔧
  • Fixed FeatureDetection for Microsoft Edge. #10429
  • Fixed broken links in documentation of CesiumTerrainProvider. #7478
  • Warn if Cesium3DTile content.uri property is empty, and load empty tile. #7263
  • Updated text highlighting for code examples in documentation. #10051
  • Updated ModelExperimental shader defaults to match glTF spec. #9992
  • Fixed shadow rendering artifacts that appeared in ModelExperimental. #10501
Deprecated ⏳
  • The .getPropertyNames methods of Cesium3DTileFeature, Cesium3DTilePointFeature, and ModelFeature have been deprecated and will be removed in 1.98. Use the .getPropertyIds methods instead.

1.94.3 - 2022-06-10

  • Fixed a crash with vector tilesets with lines when clamping to terrain or 3D tiles. #10447

1.94.2 - 2022-06-03

  • This is an npm only release to fix the improperly published 1.94.1.

1.94.1 - 2022-06-03

Additions 🎉
  • Added support for rendering individual models in 2D / CV using ModelExperimental. #10419
Fixes 🔧
  • Fixed Cesium3DTileColorBlendMode.REPLACE for certain tilesets. #10424
  • Fixed a crash when applying a style to a vector tileset with point features. #10427

1.94 - 2022-06-01

Breaking Changes 📣
  • Removed individual image-based lighting parameters from Model and Cesium3DTileset. #10388
  • Models and tilesets rendered with ModelExperimental must set enableDebugWireframe to true in order for debugWireframe to work in WebGL1. #10344
  • Removed ImagerySplitPosition and Scene.imagerySplitPosition. Use SplitDirection and Scene.splitPosition instead.#10418
  • Tilesets and models should now specify image-based lighting parameters in ImageBasedLighting instead of as individual options. #10226
Additions 🎉
  • Added Cesium3DTileStyle.fromUrl for loading a style from a url. #10348
  • Added IndexDatatype.fromTypedArray. #10350
  • Added ModelAnimationCollection.animateWhilePaused and ModelAnimation.animationTime to allow explicit control over a model’s animations. #9339
  • Replaced options.gltf with options.url in ModelExperimental.fromGltf. #10371
  • Added support for 2D / CV mode for non-instanced tilesets rendered with ModelExperimental. #10384
  • Added PolygonGraphics.textureCoordinates, PolygonGeometry.textureCoordinates, CoplanarPolygonGeometry.textureCoordinates, which override the default stRotation-based texture coordinate calculation behaviour with the provided texture coordinates, specified in the form of a PolygonHierarchy of Cartesian2 points. #10109
Fixes 🔧
  • Fixed the rendering issues related to order-independent translucency on iOS devices. #10417
  • Fixed the inaccurate computation of bounding spheres for models not centered at (0,0,0) in their local space. #10395
  • Fixed the inaccurate computation of bounding spheres for ModelExperimental. #10339
  • Fixed error when destroying a 3D tileset before it has finished loading. [#10363](Fixes https://github.com/CesiumGS/cesium/issues/10363)
  • Fixed race condition which can occur when updating Cesium3DTileStyle before its readyPromise has resolved. #10345
  • Fixed label background rendering. #10342
  • Enabled support for loading web assembly modules in Edge. #6541
  • Fixed crash for zero-area region bounding volumes in a 3D Tileset. #10351
  • Fixed Cesium3DTileset.debugShowUrl so that it works for implicit tiles too. #10372
  • Fixed crash when loading a tileset without a metadata schema but has external tilesets with tile or content metadata. #10387
  • Fixed winding order for negatively scaled models in ModelExperimental. #10405
  • Fixed error when calling sampleTerrain over a large area that required lots of tile requests. #10425
Deprecated ⏳
  • Cesium3DTileStyle constructor parameters of string or Resource type have been deprecated and will be removed in CesiumJS 1.96. If loading a style from a url, use Cesium3DTileStyle.fromUrl instead. #10348
  • Cesium3DTileStyle.readyPromise and Cesium3DTileStyle.ready have been deprecated and will be removed in CesiumJS 1.96. If loading a style from a url, use Cesium3DTileStyle.fromUrl instead. #10348
  • Model.gltf, Model.basePath, Model.pendingTextureLoads (properties), and Model.dequantizeInShader (constructor option) have been deprecated and will be removed in CesiumJS 1.97. #10415
  • Support for glTF 1.0 assets has been deprecated and will be removed in CesiumJS 1.97. Please convert any glTF 1.0 assets to glTF 2.0. #10414
  • Support for the glTF extension KHR_techniques_webgl has been deprecated and will be removed in CesiumJS 1.97. If custom GLSL shaders are needed, use CustomShader instead. #10414
  • Model.boundingSphere currently returns results in the model’s local coordinate system, but in CesiumJS 1.96 it will be changed to return results in ECEF coordinates. #10415

1.93 - 2022-05-02

Breaking Changes 📣
  • Temporarily disable Scene.orderIndependentTranslucency by default on iPad and iOS due to a WebGL regression, see #9827. The old default will be restored once the issue has been resolved.
Additions 🎉
  • Improved rendering of ground and sky atmosphere. #10063
  • Added support for morph targets in ModelExperimental. #10271
  • Added support for skins in ModelExperimental. #10282
  • Added support for animations in ModelExperimental. #10314
  • Added debugWireframe to ModelExperimental. #10332
  • Added GeoJsonSource.process to support adding features without removing existing entities, similar to CzmlDataSource.process. #9275
  • KmlDataSource now exposes the camera and canvas properties, which are used to provide information about the state of the Viewer when making network requests for a Link. Passing these values in the constructor is now optional.
  • Prevent text selection in the Timeline widget. #10325
Fixes 🔧
  • Fixed GoogleEarthEnterpriseImageryProvider.requestImagery, GridImageryProvider.requestImagery, and TileCoordinateImageryProvider.requestImagery return types to match interface. #10265
  • Various property and return TypeScript definitions were corrected, and the Event class was made generic in order to support strongly typed event callbacks. #10292
  • Fixed debug label rendering in Cesium3dTilesInspector. #10246
  • Fixed a crash that occurred in ModelExperimental when loading a Draco-compressed model with tangents. #10294
  • Fixed an incorrect model matrix computation for i3dm tilesets that are loaded using ModelExperimental. #10302
  • Fixed race condition during billboard clamping when the height reference changes. #10191
  • Fixed ability to run test and other support tasks from within the release zip file. #10311

1.92 - 2022-04-01

Breaking Changes 📣
  • Removed Cesium.when. Any Promise in the Cesium API has changed to the native Promise API. Code bases using cesium will likely need updates after this change. See the upgrade guide for instructions on how to update your code base to be compliant with native promises.
  • ArcGisMapServerImageryProvider.readyPromise will not reject if there is a failure unless the request cannot be retried.
  • SingleTileImageryProvider.readyPromise will not reject if there is a failure unless the request cannot be retried.
  • Removed links to SpecRunner.html and related Jasmine files for running unit tests in browsers.
Additions 🎉
  • Added experimental support for the 3D Tiles 1.1 draft. #10189
  • Added support for EXT_structural_metadata property attributes in CustomShader #10228
  • Added partial support for EXT_structural_metadata property textures in CustomShader #10247
  • Added minimumPixelSize, scale, and maximumScale to ModelExperimental. #10092
  • Cesium3DTileset now has a splitDirection property, allowing the tileset to only be drawn on the left or right side of the screen. This is useful for visual comparison of tilesets. #10193
  • Added lightColor to ModelExperimental #10207
  • Added image-based lighting to ModelExperimental. #10234
  • Added clipping planes to ModelExperimental. #10250
  • Added Cartesian2.clamp, Cartesian3.clamp, and Cartesian4.clamp. #10197
  • Added a ‘renderable’ property to ‘Fog’ to disable its visual rendering while preserving tiles culling at a distance. #10186
  • Refactored metadata API so tileset.metadata and content.group.metadata are more symmetric with content.metadata and tile.metadata. #10224
Fixes 🔧
  • Fixed Scene documentation for msaaSamples property. #10205
  • Fixed a bug where pnts tiles would crash when Cesium.ExperimentalFeatures.enableModelExperimental was true. #10183
  • Fixed an issue with Firefox and dimensionless SVG images. #9191
  • Fixed ShadowMap documentation for options.pointLightRadius type. #10195
  • Fixed evaluation of minimumLevel on metadataFailure for TileMapServiceImageryProvider. #10198
  • Fixed a bug where models without normals would render as solid black. Now, such models will use unlit shading. #10237
Deprecated ⏳
  • ImagerySplitDirection and Scene.imagerySplitPosition have been deprecated and will be removed in CesiumJS 1.94. Use SplitDirection and Scene.splitPosition instead.
  • Tilesets and models should now specify image-based lighting parameters in ImageBasedLighting instead of as individual options. The individual parameters are deprecated and will be removed in CesiumJS 1.94. #10226

1.91 - 2022-03-01

Breaking Changes 📣
  • In Cesium 1.92, when.js will be removed and replaced with native promises. Cesium.when is deprecated and will be removed in 1.92. Any Promise returned from a function as of 1.92 will switch the native Promise API. Code bases using cesium will likely need updates after this change. See the upgrade guide for instructions on how to update your code base to be compliant with native promises.
  • Fixed an inconsistently handled exception in camera.getPickRay that arises when the scene is not rendered. camera.getPickRay can now return undefined. #10139
Additions 🎉
  • Added MSAA support for WebGL2. Enabled in the Viewer constructor with the msaaSamples option and can be controlled through Scene.msaaSamples.
  • glTF contents now use ModelExperimental by default. #10055
  • Added the ability to toggle back-face culling in ModelExperimental. #10070
  • Added depthPlaneEllipsoidOffset to Viewer and Scene constructors to address rendering artifacts below the WGS84 ellipsoid. #9200
  • Added support for debugColorTiles in ModelExperimental. #10071
  • Added support for shadows in ModelExperimental. #10077
  • Added packArray and unpackArray for matrix types. #10118
  • Added more affine transformation helper functions to Matrix2, Matrix3, and Matrix4. #10124
    • Added setScale, setUniformScale, setRotation, getRotation, and multiplyByUniformScale to Matrix2.
    • Added setScale, setUniformScale, setRotation, and multiplyByUniformScale to Matrix3.
    • Added setUniformScale, setRotation, getRotation, and fromRotation to Matrix4.
  • Added AxisAlignedBoundingBox.fromCorners. #10130
  • Added BoundingSphere.fromTransformation. #10130
  • Added OrientedBoundingBox.fromTransformation, OrientedBoundingBox.computeCorners, and OrientedBoundingBox.computeTransformation. #10130
  • Added Rectangle.subsection. #10130
  • Added option to show tileset credits on screen. #10144
  • glTF copyrights now appear under the credits display. #10138
  • Credits are now sorted based on their number of occurrences. #10141
Fixes 🔧
  • Fixed a bug where updating ModelExperimental’s model matrix would not update its bounding sphere. #10078
  • Fixed feature ID texture artifacts on Safari. #10111
  • Fixed a bug where a translucent shader applied to a ModelExperimental with opaque features was not being rendered. #10110

1.90 - 2022-02-01

Additions 🎉
  • Feature IDs for styling and picking in ModelExperimental can now be selected via (tileset|model).featureIdIndex and (tileset|model).instanceFeatureIdIndex. #10018
  • Added support for all types of feature IDs in CustomShader. #10018
  • Moved documentation for CustomShader into Documentation/CustomShaderGuide/ to make it more discoverable. #10054
  • Added getters Cesium3DTileFeature.featureId and ModelFeature.featureId so the feature ID or batch ID can be accessed from a picked feature. #10022
  • Added I3dmLoader to transcode .i3dm to ModelExperimental. #9968
  • Added PntsLoader to transcode .pnts to ModelExperimental. #9978
  • Added point cloud attenuation support to ModelExperimental. #9998
Fixes 🔧
  • Fixed an error when loading GeoJSON with null stroke or fill properties but valid opacity values. #9717
  • Fixed scene.pickTranslucentDepth for translucent point clouds with eye dome lighting. #9991
  • Added a setter for tileset.pointCloudShading that throws if set to undefined to clarify that this is disallowed. #9998
  • Fixes handling .b3dm _BATCHID accessors in ModelExperimental #10008 and 10031
  • Fixed path entity being drawn when data is unavailable #1704
  • Fixed setting tileset.imageBasedLightingFactor has no effect on i3dm tile content. #10020
  • Zooming out is no longer sluggish when close to screenSpaceCameraController.minimumDistance. #9932
  • Fixed Particle System Weather sandcastle demo to work with new ES6 rules. #10045

1.89 - 2022-01-03

Breaking Changes 📣
  • Removed Scene.debugShowGlobeDepth. #9965
  • Removed CesiumInspectorViewModel.globeDepth and CesiumInspectorViewModel.pickDepth. #9965
  • barycentricCoordinates returns undefined when the input triangle is degenerate. #9175
Additions 🎉
  • Added a pointSize field to custom vertex shaders for more control over shading point clouds. #9960
  • Added lambertDiffuseMultiplier property to Globe object to enhance terrain lighting. #9878
  • Added getFeatureInfoUrl option to WebMapServiceImageryProvider which reads the getFeatureInfo request URL for WMS service if it differs with the getCapabilities URL. #9563
  • Added tileset.enableModelExperimental so tilesets with Model and ModelExperimental can be mixed in the same scene. #9982
Fixes 🔧
  • Fixed handling of vec3 vertex colors in ModelExperimental. #9955
  • Fixed handling of Draco quantized vec3 vertex colors in ModelExperimental. #9957
  • Fixed handling of vec3 vertex colors in CustomShaderPipelineStage. #9964
  • Fixes how Camera.changed handles changes in heading. #9970
  • Fixed handling of subtree root transforms in Implicit3DTileContent. #9971
  • Fixed issue in ModelExperimental where indices were not the correct data type after draco decode. #9974
  • Fixed WMS 1.3.0 GetMap bbox parameter so that it follows the axis ordering as defined in the EPSG database. #9797
  • Fixed KmlDataSource so that it can handle relative URLs for additional elements - video, audio, iframe etc. #9328

1.88 - 2021-12-01

Fixes 🔧
  • Fixed a bug with .ktx2 textures having an incorrect minification filter. #9876
  • Fixed incorrect diffuse texture alpha in glTFs with the KHR_materials_pbrSpecularGlossiness extension. #9943

1.87.1 - 2021-11-09

Additions 🎉

1.87 - 2021-11-01

Additions 🎉
  • Added ScreenOverlay support to KmlDataSource. #9864
  • Added back some support for Draco attribute quantization as a workaround until a full fix in the next Draco version. #9904
  • Added CumulusCloud.color for customizing cloud colors. #9877
Fixes 🔧
  • Point cloud styles that reference a missing property now treat the missing property as undefined rather than throwing an error. #9882
  • Fixed Draco attribute quantization in point clouds. #9908
  • Fixed crashes caused by the cloud noise texture exceeding WebGL’s maximum supported texture size. #9885
  • Updated third-party zip.js library to 2.3.12 to fix compatibility with Webpack 4. #9897

1.86.1 - 2021-10-15

Fixes 🔧
  • Fixed zip.js configurations causing CesiumJS to not work with Node 16. #9861
  • Fixed a bug in Rectangle.union with rectangles that span the entire globe. #9866

1.86 - 2021-10-01

Breaking Changes 📣
  • Updated to Draco 1.4.1 and temporarily disabled attribute quantization. #9847
Fixes 🔧
  • Fixed incorrect behavior in CameraFlightPath when using Columbus View. #9192

1.85 - 2021-09-01

Breaking Changes 📣
  • Removed Scene.terrainExaggeration and options.terrainExaggeration for CesiumWidget, Viewer, and Scene, which were deprecated in CesiumJS 1.83. Use Globe.terrainExaggeration instead.
Additions 🎉
  • Added CloudCollection and CumulusCloud for adding procedurally generated clouds to a scene. #9737
  • BingMapsGeocoderService now takes an optional Culture Code for localizing results. #9729
Fixes 🔧
  • Fixed several crashes related to point cloud eye dome lighting. #9719

1.84 - 2021-08-02

Breaking Changes 📣
  • Dropped support for Internet Explorer, which was deprecated in CesiumJS 1.83.
Additions 🎉
  • Added a polylinePositions getter to Cesium3DTileFeature that gets the decoded positions of a polyline vector feature. #9684
  • Added ImageryLayerCollection.pickImageryLayers, which determines the imagery layers that are intersected by a pick ray. #9651
Fixes 🔧
  • Fixed an issue where styling vector points based on their batch table properties would crash. #9692
  • Fixed an issue in TileBoundingRegion.distanceToCamera that caused incorrect results when the camera was on the opposite site of the globe. #9678
  • Fixed an error with removing a CZML datasource when the clock interval has a duration of zero. #9637
  • Fixed the ability to set a material’s image to undefined and Material.DefaultImageId. #9644
  • Fixed render crash when creating a polylineVolume with very close points. #9669
  • Fixed a bug in PolylineGeometry that incorrectly shifted colors when duplicate positions were removed. #9676
  • Fixed the calculation of OrientedBoundingBox.distancedSquaredTo such that they handle halfAxes with magnitudes near zero. #9670
  • Fixed a crash that would hang the browser if a Label was created with a soft hyphen in its text. #9682
  • Fixed the incorrect calculation of distanceSquaredTo in BoundingSphere. #9686

1.83 - 2021-07-01

Breaking Changes 📣
  • Dropped support for KTX1 and Crunch textures; use the ktx2ktx2 converter tool to update existing KTX1 files.
Additions 🎉
  • Added support for KTX2 and Basis Universal compressed textures. #9513
    • Added support for glTF models with the KHR_texture_basisu extension.
    • Added support for 8-bit, 16-bit float, and 32-bit float KTX2 specular environment maps.
    • Added support for KTX2 images in Material.
    • Added new PixelFormat and WebGLConstants enums from WebGL extensions WEBGL_compressed_texture_etc, WEBGL_compressed_texture_astc, and EXT_texture_compression_bptc.
  • Added dynamic terrain exaggeration with Globe.terrainExaggeration and Globe.terrainExaggerationRelativeHeight. #9603
  • Added CustomHeightmapTerrainProvider, a simple TerrainProvider that gets height values from a callback function. #9604
  • Added the ability to hide outlines on OSM Buildings and other tilesets and glTF models using the CESIUM_primitive_outline extension. #8959
  • Added checks for supported 3D Tiles extensions. #9552
  • Added option to ignore extraneous colorspace information in glTF textures and ImageBitmap. #9624
  • Added options.fadingEnabled parameter to ShadowMap to control whether shadows fade out when the light source is close to the horizon. #9565
  • Added documentation clarifying that the outlineWidth property will be ignored on all major browsers on Windows platforms. #9600
  • Added documentation for KmlTour, KmlTourFlyTo, and KmlTourWait. Added documentation and a kmlTours getter to KmlDataSource. Removed references to KmlTourSoundCues. #8073
Fixes 🔧
  • Fixed a regression where older tilesets without a top-level geometricError would fail to load. #9618
  • Fixed an issue in WebMapTileServiceImageryProvider where using URL subdomains caused query parameters to be dropped from requests. #9606
  • Fixed an issue in ScreenSpaceCameraController.tilt3DOnTerrain that caused unexpected camera behavior when tilting terrain diagonally along the screen. #9562
  • Fixed error handling in GlobeSurfaceTile to print terrain tile request errors to console. #9570
  • Fixed broken image URL in the KML Sandcastle. #9579
  • Fixed an error where the positionToEyeEC and tangentToEyeMatrix properties for custom materials were not set in GlobeFS. #9597
  • Fixed misleading documentation in Matrix4.inverse and Matrix4.inverseTransformation that used “affine transformation” instead of “rotation and translation” specifically. #9608
  • Fixed a regression where external images in glTF models were not being loaded with preferImageBitmap, which caused them to decode on the main thread and cause frame rate stuttering. #9627
  • Fixed misleading “else” case condition for color and show in Cesium3DTileStyle. A default color value is used if no color conditions are given. The default value for show, true, is used if no show conditions are given. #9633
  • Fixed a crash that occurred after disabling and re-enabling a post-processing stage. This also prevents the screen from randomly flashing when enabling stages for the first time. #9649
Deprecated ⏳
  • Scene.terrainExaggeration and options.terrainExaggeration for CesiumWidget, Viewer, and Scene have been deprecated and will be removed in CesiumJS 1.85. They will be replaced with Globe.terrainExaggeration.
  • Support for Internet Explorer has been deprecated and will end in CesiumJS 1.84.

1.82.1 - 2021-06-01

  • This is an npm only release to fix the improperly published 1.82.0.

1.82 - 2021-06-01

Additions 🎉
  • Added FeatureDetection.supportsBigInt64Array, FeatureDetection.supportsBigUint64Array and FeatureDetection.supportsBigInt.
Fixes 🔧
  • Fixed processTerrain in decodeGoogleEarthEnterprisePacket to handle a newer terrain packet format that includes water surface meshes after terrain meshes. #9519

1.81 - 2021-05-01

Fixes 🔧
  • Fixed an issue where Camera.flyTo would not work properly with a non-WGS84 Ellipsoid. #9498
  • Fixed an issue where setting the ViewportQuad rectangle after creating the viewport had no effect.#9511
  • Fixed an issue where TypeScript was not picking up type defintions for ArcGISTiledElevationTerrainProvider. #9522
Deprecated ⏳
  • loadCRN and loadKTX have been deprecated and will be removed in CesiumJS 1.83. They will be replaced with support for KTX2. #9478

1.80 - 2021-04-01

Additions 🎉
  • Added support for drawing ground primitives on translucent 3D Tiles. #9399

1.79.1 - 2021-03-01

Fixes 🔧
  • Fixed a regression in 1.79 that broke terrain exaggeration. #9397
  • Fixed an issue where interpolating certain small rhumblines with surface distance 0.0 would not return the expected result. #9430

1.79 - 2021-03-01

Breaking Changes 📣
  • Removed Cesium3DTileset.url, which was deprecated in CesiumJS 1.78. Use Cesium3DTileset.resource.url to retrieve the url value.
  • Removed EasingFunction.QUADRACTIC_IN, which was deprecated in CesiumJS 1.77. Use EasingFunction.QUADRATIC_IN.
  • Removed EasingFunction.QUADRACTIC_OUT, which was deprecated in CesiumJS 1.77. Use EasingFunction.QUADRATIC_OUT.
  • Removed EasingFunction.QUADRACTIC_IN_OUT, which was deprecated in CesiumJS 1.77. Use EasingFunction.QUADRATIC_IN_OUT.
  • Changed TaskProcessor.maximumActiveTasks constructor option to be infinity by default. #9313
Fixes 🔧
  • Fixed an issue that prevented use of the full CesiumJS zip release package in a Node.js application.
  • Fixed an issue where certain inputs to EllipsoidGeodesic would result in a surfaceDistance of NaN. #9316
  • Fixed sampleTerrain and sampleTerrainMostDetailed not working for ArcGISTiledElevationTerrainProvider. #9286
  • Consistent with the spec, CZML polylineVolume now expects its shape positions to specified using the cartesian2 property. Use of the cartesian is also supported for backward-compatibility. #9384
  • Removed an unnecessary matrix copy each time a Cesium3DTileset is updated. #9366

1.78 - 2021-02-01

Additions 🎉
  • Added BillboardCollection.show, EntityCluster.show, LabelCollection.show, PointPrimitiveCollection.show, and PolylineCollection.show for a convenient way to control show of the entire collection #9307
  • TaskProcessor now accepts an absolute URL in addition to a worker name as it’s first parameter. This makes it possible to use custom web workers with Cesium’s task processing system without copying them to Cesium’s Workers directory. #9338
  • Added Cartesian2.cross which computes the magnitude of the cross product of two vectors whose Z values are implicitly 0. #9305
  • Added Math.previousPowerOfTwo. #9310
Fixes 🔧
  • Fixed an issue with Math.mod introducing a small amount of floating point error even when the input did not need to be altered. #9354
Deprecated ⏳
  • Cesium3DTileset.url has been deprecated and will be removed in Cesium 1.79. Instead, use Cesium3DTileset.resource.url to retrieve the url value.

1.77 - 2021-01-04

Additions 🎉
  • Added ElevationBand material, which maps colors and gradients to exact elevations. #9132
Fixes 🔧
  • Fixed an issue where changing a model or tileset’s color, backFaceCulling, or silhouetteSize would trigger an error. #9271
Deprecated ⏳
  • EasingFunction.QUADRACTIC_IN was deprecated and will be removed in Cesium 1.79. It has been replaced with EasingFunction.QUADRATIC_IN. #9220
  • EasingFunction.QUADRACTIC_OUT was deprecated and will be removed in Cesium 1.79. It has been replaced with EasingFunction.QUADRATIC_OUT. #9220
  • EasingFunction.QUADRACTIC_IN_OUT was deprecated and will be removed in Cesium 1.79. It has been replaced with EasingFunction.QUADRATIC_IN_OUT. #9220

1.76 - 2020-12-01

Fixes 🔧
  • Fixed an issue where tileset styles would be reapplied every frame when a tileset has a style and tileset.preloadWhenHidden is true and tileset.show is false. Also fixed a related issue where styles would be reapplied if the style being set is the same as the active style. #9223
  • Fixed JSDoc and TypeScript type definitions for EllipsoidTangentPlane.fromPoints which didn’t list a return type. #9227
  • Updated DOMPurify from 1.0.8 to 2.2.2. #9240

1.75 - 2020-11-02

Fixes 🔧
  • Fixed an issue in the PBR material where models with the KHR_materials_unlit extension had the normal attribute disabled. #9173.
  • Fixed JSDoc and TypeScript type definitions for writeTextToCanvas which listed incorrect return type. #9196
  • Fixed JSDoc and TypeScript type definitions for Viewer.globe constructor option to allow disabling the globe on startup. #9063

1.74 - 2020-10-01

Additions 🎉
  • Added Matrix3.inverseTranspose and Matrix4.inverseTranspose. #9135
Fixes 🔧
  • Fixed an issue where the camera zooming is stuck when looking up. #9126
  • Fixed an issue where Plane doesn’t rotate correctly around the main local axis. #8268
  • Fixed clipping planes with non-uniform scale. #9135
  • Fixed an issue where ground primitives would get clipped at certain camera angles. #9114
  • Fixed a bug that could cause half of the globe to disappear when setting the `terrainProvider. #9161
  • Fixed a crash when loading Cesium OSM buildings with shadows enabled. #9172

1.73 - 2020-09-01

Breaking Changes 📣
  • Removed MapboxApi, which was deprecated in CesiumJS 1.72. Pass your access token directly to the MapboxImageryProvider or MapboxStyleImageryProvider constructors.
  • Removed BingMapsApi, which was deprecated in CesiumJS 1.72. Pass your access key directly to the BingMapsImageryProvider or BingMapsGeocoderService constructors.
Additions 🎉
  • Added support for the CSS line-height specifier in the font property of a Label. #8954
  • Viewer now has default pick handling for Cesium3DTileFeature data and will display its properties in the default Viewer InfoBox as well as set Viewer.selectedEntity to a transient Entity instance representing the data. #9121.
Fixes 🔧
  • Fixed several artifacts on mobile devices caused by using insufficient precision. #9064
  • Fixed handling of data: scheme for the Cesium ion logo URL. #9085
  • Fixed an issue where the boundary rectangles in TileAvailability are not sorted correctly, causing terrain to sometimes fail to achieve its maximum detail. #9098
  • Fixed an issue where a request for an availability tile of the reference layer is delayed because the throttle option is on. #9099
  • Fixed an issue where Node.js tooling could not resolve package.json. #9105
  • Fixed classification artifacts on some mobile devices. #9108
  • Fixed an issue where Resource silently fails to load if being used multiple times. #9093

1.72 - 2020-08-03

Breaking Changes 📣
  • CesiumJS no longer ships with a default Mapbox access token and Mapbox imagery layers have been removed from the BaseLayerPicker defaults. If you are using MapboxImageryProvider or MapboxStyleImageryProvider, use options.accessToken when initializing the imagery provider.
Additions 🎉
  • Added support for glTF multi-texturing via TEXCOORD_1. #9075
Deprecated ⏳
  • MapboxApi.defaultAccessToken was deprecated and will be removed in CesiumJS 1.73. Pass your access token directly to the MapboxImageryProvider or MapboxStyleImageryProvider constructors.
  • BingMapsApi was deprecated and will be removed in CesiumJS 1.73. Pass your access key directly to the BingMapsImageryProvider or BingMapsGeocoderService constructors.
Fixes 🔧
  • Fixed Color.fromCssColorString when color string contains spaces. #9015
  • Fixed 3D Tileset replacement refinement when leaf is empty. #8996
  • Fixed a bug in the assessment of terrain tile visibility #9033
  • Fixed vertical polylines with arcType: ArcType.RHUMB, including lines drawn via GeoJSON. #9028
  • Fixed wall rendering when underground #9041
  • Fixed issue where a side of the wall was missing if the first position and the last position were equal #9044
  • Fixed translucencyByDistance for label outline color #9003
  • Fixed return value for SampledPositionProperty.removeSample #9017
  • Fixed issue where wall doesn’t have correct texture coordinates when there are duplicate positions input #9042
  • Fixed an issue where clipping planes would not clip at the correct distances on some Android devices, most commonly reproducible on devices with Mali GPUs that do not support float textures via WebGL #9023

1.71 - 2020-07-01

Breaking Changes 📣
  • Updated WallGeometry to respect the order of positions passed in, instead of making the positions respect a counter clockwise winding order. This will only affect the look of walls with an image material. If this changed the way your wall is drawing, reverse the order of the positions. #8955
Additions 🎉
  • Added backFaceCulling property to Cesium3DTileset and Model to support viewing the underside or interior of a tileset or model. #8981
  • Added Ellipsoid.surfaceArea for computing the approximate surface area of a rectangle on the surface of an ellipsoid. #8986
  • Added support for PolylineVolume in CZML. #8841
  • Added Color.toCssHexString for getting the CSS hex string equivalent for a color. #8987
Fixes 🔧
  • Fixed issue where tileset was not playing glTF animations. #8962
  • Fixed a divide-by-zero bug in Ellipsoid.geodeticSurfaceNormal when given the origin as input. undefined is returned instead. #8986
  • Fixed error with WallGeometry when there were adjacent positions with very close values. #8952
  • Fixed artifact for skinned model when log depth is enabled. #6447
  • Fixed a bug where certain rhumb arc polylines would lead to a crash. #8787
  • Fixed handling of Label’s backgroundColor and backgroundPadding option #8949
  • Fixed several bugs when rendering CesiumJS in a WebGL 2 context. #797
  • Fixed a bug where switching from perspective to orthographic caused triangles to overlap each other incorrectly. #8346
  • Fixed a bug where switching to orthographic camera on the first frame caused the zoom level to be incorrect. #8853
  • Fixed scene.pickFromRay intersection inaccuracies. #8439
  • Fixed a bug where a null or undefined name property passed to the Entity constructor would throw an exception.#8832
  • Fixed JSDoc and TypeScript type definitions for ScreenSpaceEventHandler.getInputAction which listed incorrect return type. #9002
  • Improved the style of the error panel. #8739
  • Fixed animation widget SVG icons not appearing in iOS 13.5.1. #8993

1.70.1 - 2020-06-10

Additions 🎉
  • Add a toString method to the Resource class in case an instance gets logged as a string. #8722
  • Exposed Transforms.rotationMatrixFromPositionVelocity method from Cesium’s private API. #8927
Fixes 🔧
  • Fixed JSDoc and TypeScript type definitions for all ImageryProvider types, which were missing defaultNightAlpha and defaultDayAlpha properties. #8908
  • Fixed JSDoc and TypeScript for MaterialProperty, which were missing the ability to take primitive types in their constructor. #8904
  • Fixed JSDoc and TypeScript type definitions to allow the creation of GeometryInstance instances using XXXGeometry classes. #8941.
  • Fixed JSDoc and TypeScript for buildModuleUrl, which was accidentally excluded from the official CesiumJS API. #8923
  • Fixed JSDoc and TypeScript type definitions for EllipsoidGeodesic which incorrectly listed result as required. #8904
  • Fixed JSDoc and TypeScript type definitions for EllipsoidTangentPlane.fromPoints, which takes an array of Cartesian3, not a single instance. #8928
  • Fixed JSDoc and TypeScript type definitions for EntityCollection.getById and CompositeEntityCollection.getById, which can both return undefined. #8928
  • Fixed JSDoc and TypeScript type definitions for Viewer options parameters.
  • Fixed a memory leak where some 3D Tiles requests were being unintentionally retained after the requests were cancelled. #8843
  • Fixed a bug with handling of PixelFormat’s flipY. #8893

1.70.0 - 2020-06-01

Major Announcements 📢
  • All Cesium ion users now have access to Cesium OSM Buildings - a 3D buildings layer covering the entire world built with OpenStreetMap building data, available as 3D Tiles. Read more about it on our blog.
  • CesiumJS now ships with official TypeScript type definitions! #8878
    • If you import CesiumJS as a module, the new definitions will automatically be used by TypeScript and related tooling.
    • If you import individual CesiumJS source files directly, you’ll need to add "types": ["cesium"] in your tsconfig.json in order for the definitions to be used.
    • If you’re using your own custom definitions and you’re not yet ready to switch, you can delete Source/Cesium.d.ts after install.
    • See our blog post for more information and a technical overview of how it all works.
  • CesiumJS now supports underground rendering with globe translucency! #8726
    • Added options for controlling globe translucency through the new GlobeTranslucency object including front face alpha, back face alpha, and a translucency rectangle.
    • Added Globe.undergroundColor and Globe.undergroundColorAlphaByDistance for controlling how the back side of the globe is rendered when the camera is underground or the globe is translucent. #8867
    • Improved camera controls when the camera is underground. #8811
    • Sandcastle examples: Globe Translucency, Globe Interior, and Underground Color
Additions 🎉
  • Our API reference documentation has received dozens of fixes and improvements, largely due to the TypeScript effort.
  • Added Cesium3DTileset.extensions to get the extensions property from the tileset JSON. #8829
  • Added Camera.completeFlight, which causes the current camera flight to immediately jump to the final destination and call its complete callback. #8788
  • Added nightAlpha and dayAlpha properties to ImageryLayer to control alpha separately for the night and day sides of the globe. #8868
  • Added SkyAtmosphere.perFragmentAtmosphere to switch between per-vertex and per-fragment atmosphere shading. #8866
  • Added a new sandcastle example to show how to add fog using a PostProcessStage #8798
  • Added frustumSplits option to DebugCameraPrimitive. 8849
  • Supported #rgba and #rrggbbaa formats in Color.fromCssColorString. 8873
Fixes 🔧
  • Fixed a bug that could cause rendering of a glTF model to become corrupt when switching from a Uint16 to a Uint32 index buffer to accomodate new vertices added for edge outlining. #8820
  • Fixed a bug where a removed billboard could prevent changing of the TerrainProvider. #8766
  • Fixed an issue with 3D Tiles point cloud styling where ${feature.propertyName} and ${feature["propertyName"]} syntax would cause a crash. Also fixed an issue where property names with non-alphanumeric characters would crash. #8785
  • Fixed a bug where DebugCameraPrimitive was ignoring the near and far planes of the Camera. #8848
  • Fixed sky atmosphere artifacts below the horizon. #8866
  • Fixed ground primitives in orthographic mode. #5110
  • Fixed the depth plane in orthographic mode. This improves the quality of polylines and other primitives that are rendered near the horizon. 8858

1.69.0 - 2020-05-01

Breaking Changes 📣
  • The property Scene.sunColor has been removed. Use scene.light.color and scene.light.intensity instead. #8774
  • Removed isArray. Use the native Array.isArray function instead. #8779
Additions 🎉
  • Added RequestScheduler to the public API; this allows users to have more control over the requests made by CesiumJS. #8384
  • Added support for high-quality edges on solid geometry in glTF models. #8776
  • Added Scene.cameraUnderground for checking whether the camera is underneath the globe. #8765
Fixes 🔧
  • Fixed several problems with polylines when the logarithmic depth buffer is enabled, which is the default on most systems. #8706
  • Fixed a bug with very long view ranges requiring multiple frustums even with the logarithmic depth buffer enabled. Previously, such scenes could resolve depth incorrectly. #8727
  • Fixed an issue with glTF skinning support where an optional property skeleton was considered required by Cesium. #8175
  • Fixed an issue with clamping of non-looped glTF animations. Subscribers to animation update events should expect one additional event firing as an animation stops. #7387
  • Geometry instance floats now work for high precision floats on newer iOS devices. #8805
  • Fixed a bug where the elevation contour material’s alpha was not being applied. #8749
  • Fix potential memory leak when destroying CesiumWidget instances. #8591
  • Fixed displaying the Cesium ion icon when running in an Android, iOS or UWP WebView. #8758

1.68.0 - 2020-04-01

Additions 🎉
  • Added basic underground rendering support. When the camera is underground the globe will be rendered as a solid surface and underground entities will not be culled. #8572
  • The CesiumUnminified build now includes sourcemaps. #8572
  • Added glTF STEP animation interpolation. #8786
  • Added the ability to edit CesiumJS shaders on-the-fly using the SpectorJS Shader Editor. #8608
Fixes 🔧
  • Cesium can now be used in Node.JS 12 and later, with or without --experimental-modules. It can still be used in earlier versions as well. #8572
  • Interacting with the Cesium canvas will now blur the previously focused element. This prevents unintended modification of input elements when interacting with the globe. #8662
  • TileMapServiceImageryProvider will now force minimumLevel to 0 if the tilemapresource.xml metadata request fails and the rectangle is too large for the given detail level #8448
  • Fixed ground atmosphere rendering when using a smaller ellipsoid. #8683
  • Fixed globe incorrectly occluding objects when using a smaller ellipsoid. #7124
  • Fixed a regression introduced in 1.67 which caused overlapping colored ground geometry to have visual artifacts. #8694
  • Fixed a clipping problem when viewing a polyline up close with the logarithmic depth buffer enabled, which is the default on most systems. #8703

1.67.0 - 2020-03-02

Breaking Changes 📣
  • Cesium3DTileset.skipLevelOfDetail is now false by default. #8631
  • glTF models are now rendered using the LEQUALS depth test function instead of LESS. This means that when geometry overlaps, the later geometry will be visible above the earlier, where previously the opposite was true. We believe this is a more sensible default, and makes it easier to render e.g. outlined buildings with glTF. #8646
Additions 🎉
  • Massively improved performance of clamped Entity ground geometry with dynamic colors. #8630
  • Added Entity.tileset for loading a 3D Tiles tileset via the Entity API using the new Cesium3DTilesetGraphics class. #8580
  • Added tileset.uri, tileset.show, and tileset.maximumScreenSpaceError properties to CZML processing for loading 3D Tiles. #8580
  • Added Color.lerp for linearly interpolating between two RGB colors. #8607
  • CesiumTerrainProvider now supports terrain tiles using a WebMercatorTilingScheme by specifying "projection": "EPSG:3857" in layer.json. It also now supports numbering tiles from the North instead of the South by specifying "scheme": "slippyMap" in layer.json. #8563
  • Added basic support for isNaN, isFinite, null, and undefined in the 3D Tiles styling GLSL backend for point clouds. #8621
  • Added sizeInMeters to ParticleSystem. #7746
Fixes 🔧
  • Fixed a bug that caused large, nearby geometry to be clipped when using a logarithmic depth buffer, which is the default on most systems. #8600
  • Fixed a bug where tiles would not load if the camera was tracking a moving tileset. #8598
  • Fixed a bug where applying a new 3D Tiles style during a flight would not update all existing tiles. #8622
  • Fixed a bug where Cartesian vectors could not be packed to typed arrays #8568
  • Updated knockout from 3.5.0 to 3.5.1. #8424
  • Cesium’s local development server now works in Node 12 & 13 #8648
Deprecated ⏳
  • The isArray function has been deprecated and will be removed in Cesium 1.69. Use the native Array.isArray function instead. #8526

1.66.0 - 2020-02-03

Deprecated ⏳
  • The property Scene.sunColor has been deprecated and will be removed in Cesium 1.69. Use scene.light.color and scene.light.intensity instead. #8493
Additions 🎉
  • useBrowserRecommendedResolution flag in Viewer and CesiumWidget now defaults to true. This ensures Cesium rendering is fast and smooth by default across all devices. Set it to false to always render at native device resolution instead at the cost of performance on under-powered devices. #8548
  • Cesium now creates a WebGL context with a powerPreference value of high-performance. Some browsers use this setting to enable a second, more powerful, GPU. You can set it back to default, or opt-in to low-power mode, by passing the context option when creating a Viewer or CesiumWidget instance:
var viewer = new Viewer("cesiumContainer", {
  contextOptions: {
    webgl: {
      powerPreference: "default",
    },
  },
});
  • Added more customization to Cesium’s lighting system. #8493
    • Added Light, DirectionalLight, and SunLight classes for creating custom light sources.
    • Added Scene.light for setting the scene’s light source, which defaults to a SunLight.
    • Added Globe.dynamicAtmosphereLighting for enabling lighting effects on atmosphere and fog, such as day/night transitions. It is true by default but may be set to false if the atmosphere should stay unchanged regardless of the scene’s light direction.
    • Added Globe.dynamicAtmosphereLightingFromSun for using the sun direction instead of the scene’s light direction when Globe.dynamicAtmosphereLighting is enabled. See the moonlight example in the Lighting Sandcastle example.
    • Primitives and the globe are now shaded with the scene light’s color.
  • Updated SampleData models to glTF 2.0. #7802
  • Added Globe.showSkirts to support the ability to hide terrain skirts when viewing terrain from below the surface. #8489
  • Added minificationFilter and magnificationFilter options to Material to control texture filtering. #8473
  • Updated earcut to 2.2.1. #8528
  • Added a font cache to improve label performance. #8537
Fixes 🔧
  • Fixed a bug where the camera could go underground during mouse navigation. #8504
  • Fixed a bug where rapidly updating a PolylineCollection could result in an instanceIndex is out of range error. #8546
  • Fixed issue where RequestScheduler double-counted image requests made via createImageBitmap. #8162
  • Reduced Cesium bundle size by avoiding unnecessarily importing Cesium3DTileset in Picking.js. #8532
  • Fixed a bug where files with backslashes were not loaded in KMZ files. #8533
  • Fixed WebGL warning message about EXT_float_blend being implicitly enabled. #8534
  • Fixed a bug where toggling point cloud classification visibility would result in a grey screen on Linux / Nvidia. #8538
  • Fixed a bug where a point in a PointPrimitiveCollection was rendered in the middle of the screen instead of being clipped. #8542
  • Fixed a crash when deleting and re-creating polylines from CZML. ReferenceProperty now returns undefined when the target entity or property does not exist, instead of throwing. #8544
  • Fixed terrain tile picking in the Cesium Inspector. #8567
  • Fixed a crash that could occur when an entity was deleted while the corresponding Primitive was being created asynchronously. #8569
  • Fixed a crash when calling camera.lookAt with the origin (0, 0, 0) as the target. This could happen when looking at a tileset with the origin as its center. #8571
  • Fixed a bug where camera.viewBoundingSphere was modifying the offset parameter. #8438
  • Fixed a crash when creating a plane with both position and normal on the Z-axis. #8576
  • Fixed BoundingSphere.projectTo2D when the bounding sphere’s center is at the origin. #8482

1.65.0 - 2020-01-06

Breaking Changes 📣
  • OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions now require a pixelRatio argument before the result argument. The previous function definition has been deprecated since 1.63. #8320
  • The function Matrix4.getRotation has been renamed to Matrix4.getMatrix3. Matrix4.getRotation has been deprecated since 1.62. #8183
  • createTileMapServiceImageryProvider and createOpenStreetMapImageryProvider have been removed. Instead, pass the same options to new TileMapServiceImageryProvider and new OpenStreetMapImageryProvider respectively. The old functions have been deprecated since 1.62. #8174
Additions 🎉
  • Added Globe.backFaceCulling to support viewing terrain from below the surface. #8470
Fixes 🔧
  • Fixed Geocoder auto-complete suggestions when hosted inside Web Components. #8425
  • Fixed terrain tile culling problems when under ellipsoid. #8397
  • Fixed primitive culling when below the ellipsoid but above terrain. #8398
  • Improved the translucency calculation for the Water material type. #8455
  • Fixed bounding volume calculation for GroundPrimitive. #4883
  • Fixed OrientedBoundingBox.fromRectangle for rectangles with width greater than 180 degrees. #8475
  • Fixed globe picking so that it returns the closest intersecting triangle instead of the first intersecting triangle. #8390
  • Fixed horizon culling issues with large root tiles. #8487
  • Fixed a lighting bug affecting Macs with Intel integrated graphics where glTF 2.0 PBR models with double sided materials would have flipped normals. #8494

1.64.0 - 2019-12-02

Fixes 🔧
  • Fixed an issue in image based lighting where an invalid environment map would silently fail. #8303
  • Various small internal improvements

1.63.1 - 2019-11-06

Fixes 🔧
  • Fixed regression in 1.63 where ground atmosphere and labels rendered incorrectly on displays with window.devicePixelRatio greater than 1.0. #8351
  • Fixed regression in 1.63 where some primitives would show through the globe when log depth is disabled. #8368

1.63 - 2019-11-01

Major Announcements 📢
  • Cesium has migrated to ES6 modules. This may or may not be a breaking change for your application depending on how you use Cesium. See our blog post for the full details.
  • We’ve consolidated all of our website content from cesiumjs.org and cesium.com into one home on cesium.com. Here’s where you can now find:
    • Sandcastle - https://sandcastle.cesium.com
    • API Docs - https://cesium.com/learn/cesiumjs/ref-doc/
    • Downloads - https://cesium.com/downloads/
    • Hosted releases can be found at https://cesium.com/downloads/cesiumjs/releases/<CesiumJS Version Number>/Build/Cesium/Cesium.js
    • See our blog post for more information.
Additions 🎉
  • Decreased Web Workers bundle size by a factor of 10, from 8384KB (2624KB gzipped) to 863KB (225KB gzipped). This makes Cesium load faster, especially on low-end devices and slower network connections.
  • Added full UTF-8 support to labels, greatly improving support for non-latin alphabets and emoji. #7280
  • Added "type": "module" to package.json to take advantage of native ES6 module support in newer versions of Node.js. This also enables module-based front-end development for tooling that relies on Node.js module resolution.
  • The combined Build/Cesium/Cesium.js and Build/CesiumUnminified/Cesium.js have been upgraded from IIFE to UMD modules that support IIFE, AMD, and commonjs.
  • Added pixelRatio parameter to OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions. Pass in scene.pixelRatio for dimensions in CSS pixel units or 1.0 for dimensions in native device pixel units. #8237
Fixes 🔧
  • Fixed css pixel usage for polylines, point clouds, models, primitives, and post-processing. #8113
  • Fixed a bug where scene.sampleHeightMostDetailed and scene.clampToHeightMostDetailed would not resolve in request render mode. #8281
  • Fixed seam artifacts when log depth is disabled, scene.globe.depthTestAgainstTerrain is false, and primitives are under the globe. #8205
  • Fix dynamic ellipsoids using innerRadii, minimumClock, maximumClock, minimumCone or maximumCone. #8277
  • Fixed rendering billboard collections containing more than 65536 billboards. #8325
Deprecated ⏳
  • OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions now take a pixelRatio argument before the result argument. The previous function definition will no longer work in 1.65. #8237

1.62 - 2019-10-01

Deprecated ⏳
  • createTileMapServiceImageryProvider and createOpenStreetMapImageryProvider have been deprecated and will be removed in Cesium 1.65. Instead, pass the same options to new TileMapServiceImageryProvider and new OpenStreetMapImageryProvider respectively.
  • The function Matrix4.getRotation has been deprecated and renamed to Matrix4.getMatrix3. Matrix4.getRotation will be removed in version 1.65.
Additions 🎉
  • Added ability to create partial ellipsoids using both the Entity API and CZML. New ellipsoid geometry properties: innerRadii, minimumClock, maximumClock, minimumCone, and maximumCone. This affects both EllipsoidGeometry and EllipsoidOutlineGeometry. See the updated Sandcastle example. #5995
  • Added useBrowserRecommendedResolution flag to Viewer and CesiumWidget. When true, Cesium renders at CSS pixel resolution instead of native device resolution. This replaces the workaround in the 1.61 change list. 8215
  • Added TileMapResourceImageryProvider and OpenStreetMapImageryProvider classes to improve API consistency: #4812
  • Added credit parameter to CzmlDataSource, GeoJsonDataSource, KmlDataSource and Model. #8173
  • Added Matrix3.getRotation to get the rotational component of a matrix with scaling removed. #8182
Fixes 🔧
  • Fixed labels not showing for individual entities in data sources when clustering is enabled. #6087
  • Fixed an issue where polygons, corridors, rectangles, and ellipses on terrain would not render on some mobile devices. #6739
  • Fixed a bug where GlobeSurfaceTile would not render the tile until all layers completed loading causing globe to appear to hang. #7974
  • Spread out KMl loading across multiple frames to prevent freezing. #8195
  • Fixed a bug where extruded polygons would sometimes be missing segments. #8035
  • Made pixel sizes consistent for polylines and point clouds when rendering at different pixel ratios. #8113
  • Camera.flyTo flies to the correct location in 2D when the destination crosses the international date line #7909
  • Fixed 3D tiles style coloring when multiple tilesets are in the scene #8051
  • 3D Tiles geometric error now correctly scales with transform. #8182
  • Fixed per-feature post processing from sometimes selecting the wrong feature. #7929
  • Fixed a bug where dynamic polylines did not use the given arcType. #8191
  • Fixed atmosphere brightness when High Dynamic Range is disabled. #8149
  • Fixed brightness levels for procedural Image Based Lighting. #7803
  • Fixed alpha equation for BlendingState.ALPHA_BLEND and BlendingState.ADDITIVE_BLEND. #8202
  • Improved display of tile coordinates for TileCoordinatesImageryProvider #8131
  • Reduced size of approximateTerrainHeights.json #7959
  • Fixed undefined quadDetails error from zooming into the map really close. #8011
  • Fixed a crash for 3D Tiles that have zero volume. #7945
  • Fixed relative-to-center check, depthFailAppearance resource freeing for Primitive #8044

1.61 - 2019-09-03

Additions 🎉
  • Added optional index parameter to PrimitiveCollection.add. #8041
  • Cesium now renders at native device resolution by default instead of CSS pixel resolution, to go back to the old behavior, set viewer.resolutionScale = 1.0 / window.devicePixelRatio. #8082
  • Added getByName method to DataSourceCollection allowing to retrieve DataSources by their name property from the collection
Fixes 🔧
  • Disable FXAA by default. To re-enable, set scene.postProcessStages.fxaa.enabled = true #7875
  • Fixed a crash when a glTF model used KHR_texture_transform without a sampler defined. #7916
  • Fixed post-processing selection filtering to work for bloom. #7984
  • Disabled HDR by default to improve visual quality in most standard use cases. Set viewer.scene.highDynamicRange = true to re-enable. #7966
  • Fixed a bug that causes hidden point primitives to still appear on some operating systems. #8043
  • Fix negative altitude altitude handling in GoogleEarthEnterpriseTerrainProvider. #8109
  • Fixed issue where KTX or CRN files would not be properly identified. #7979
  • Fixed multiple globe materials making the globe darker. #7726

1.60 - 2019-08-01

Additions 🎉
  • Reworked label rendering to use signed distance fields (SDF) for crisper text. #7730
  • Added a new Sandcastle example to showcase the new SDF labels.
  • Added support for polygon holes to CZML. #7991
  • Added totalScale property to Label which is the total scale of the label taking into account the label’s scale and the relative size of the desired font compared to the generated glyph size.
Fixes 🔧
  • Fixed crash when using ArcGIS terrain with clipping planes. #7998
  • PolygonGraphics.hierarchy now converts constant array values to a PolygonHierarchy when set, so code that accesses the value of the property can rely on it always being a PolygonHierarchy.
  • Fixed a bug with lengthwise texture coordinates in the first segment of ground polylines, as observed in some WebGL implementations such as Chrome on Linux. #8017

1.59 - 2019-07-01

Additions 🎉
  • Adds ArcGISTiledElevationTerrainProvider to support LERC encoded terrain from ArcGIS ImageServer. #7940
  • Added CZML support for heightReference to box, cylinder, and ellipsoid, and added CZML support for classificationType to corridor, ellipse, polygon, polyline, and rectangle. #7899
  • Adds exportKML function to export Entity instances with Point, Billboard, Model, Label, Polyline and Polygon graphics. #7921
  • Added support for new Mapbox Style API. #7698
  • Added support for the AGI_articulations vendor extension of glTF 2.0 to the Entity API and CZML. #7907
Fixes 🔧
  • Fixed a bug that caused missing segments for ground polylines with coplanar points over large distances and problems with polylines containing duplicate points. #7885
  • Fixed a bug where billboards were not pickable when zoomed out completely in 2D View. #7908
  • Fixed a bug where image requests that returned HTTP code 204 would prevent any future request from succeeding on browsers that supported ImageBitmap. #7914
  • Fixed polyline colors when scene.highDynamicRange is enabled. #7924
  • Fixed a bug in the inspector where the min/max height values of a picked tile were undefined. #7904
  • Fixed Math.factorial to return the correct values. (https://github.com/CesiumGS/cesium/pull/7969)
  • Fixed a bug that caused 3D models to appear darker on Android devices. #7944

1.58.1 - 2018-06-03

This is an npm-only release to fix a publishing issue.

1.58 - 2019-06-03

Additions 🎉
  • Added support for new BingMapsStyle values ROAD_ON_DEMAND and AERIAL_WITH_LABELS_ON_DEMAND. The older versions of these, ROAD and AERIAL_WITH_LABELS, have been deprecated by Bing. #7808
  • Added syntax to delete data from existing properties via CZML. #7818
  • Added checkerboard material to CZML. #7845
  • BingMapsImageryProvider now uses DiscardEmptyTileImagePolicy by default to detect missing tiles as zero-length responses instead of inspecting pixel values. #7810
  • Added support for the AGI_articulations vendor extension of glTF 2.0 to the Model primitive graphics API. #7835
  • Reduce the number of Bing transactions and ion Bing sessions used when destroying and recreating the same imagery layer to 1. #7848
Fixes 🔧
  • Fixed an edge case where Cesium would provide ion access token credentials to non-ion servers if the actual asset entrypoint was being hosted by ion. #7839
  • Fixed a bug that caused Cesium to request non-existent tiles for terrain tilesets lacking tile availability, i.e. a layer.json file.
  • Fixed memory leak when removing entities that had a HeightReference of CLAMP_TO_GROUND or RELATIVE_TO_GROUND. This includes when removing a DataSource.
  • Fixed 3D Tiles credits not being shown in the data attribution box. #7877

1.57 - 2019-05-01

Additions 🎉
  • Improved 3D Tiles streaming performance, resulting in ~67% camera tour load time reduction, ~44% camera tour load count reduction. And for general camera movement, ~20% load time reduction with ~27% tile load count reduction. Tile load priority changed to focus on loading tiles in the center of the screen first. Added the following tileset optimizations, which unless stated otherwise are enabled by default. #7774
    • Added Cesium3DTileset.cullRequestsWhileMoving option to ignore requests for tiles that will likely be out-of-view due to the camera’s movement when they come back from the server.
    • Added Cesium3DTileset.cullRequestsWhileMovingMultiplier option to act as a multiplier when used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.
    • Added Cesium3DTileset.preloadFlightDestinations option to preload tiles at the camera’s flight destination while the camera is in flight.
    • Added Cesium3DTileset.preferLeaves option to prefer loading of leaves. Good for additive refinement point clouds. Set to false by default.
    • Added Cesium3DTileset.progressiveResolutionHeightFraction option to load tiles at a smaller resolution first. This can help get a quick layer of tiles down while full resolution tiles continue to load.
    • Added Cesium3DTileset.foveatedScreenSpaceError option to prioritize loading tiles in the center of the screen.
    • Added Cesium3DTileset.foveatedConeSize option to control the cone size that determines which tiles are deferred for loading. Tiles outside the cone are potentially deferred.
    • Added Cesium3DTileset.foveatedMinimumScreenSpaceErrorRelaxation option to control the starting screen space error relaxation for tiles outside the foveated cone.
    • Added Cesium3DTileset.foveatedInterpolationCallback option to control how screen space error threshold is interpolated for tiles outside the foveated cone.
    • Added Cesium3DTileset.foveatedTimeDelay option to control how long in seconds to wait after the camera stops moving before deferred tiles start loading in.
  • Added new parameter to PolylineGlowMaterial called taperPower, that works similar to the existing glowPower parameter, to taper the back of the line away. #7626
  • Added Cesium3DTileset.preloadWhenHidden tileset option to preload tiles when tileset.show is false. Loads tiles as if the tileset is visible but does not render them. #7774
  • Added support for the KHR_texture_transform glTF extension. #7549
  • Added functions to remove samples from SampledProperty and SampledPositionProperty. #7723
  • Added support for color-to-alpha with a threshold on imagery layers. #7727
  • Add CZML processing for heightReference and extrudedHeightReference for geoemtry types that support it.
  • CesiumMath.toSNorm documentation changed to reflect the function’s implementation. #7774
  • Added CesiumMath.normalize to convert a scalar value in an arbitrary range to a scalar in the range [0.0, 1.0]. #7774
Fixes 🔧
  • Fixed an error when loading the same glTF model in two separate viewers. #7688
  • Fixed an error where clampToHeightMostDetailed or sampleHeightMostDetailed would crash if entities were created when the promise resolved. #7690
  • Fixed an issue with compositing merged entity availability. #7717
  • Fixed an error where many imagery layers within a single tile would cause parts of the tile to render as black on some platforms. #7649
  • Fixed a bug that could cause terrain with a single, global root tile (e.g. that uses WebMercatorTilingScheme) to be culled unexpectedly in some views. #7702
  • Fixed a problem where instanced 3D models were incorrectly lit when using physically based materials. #7775
  • Fixed a bug where glTF models with certain blend modes were rendered incorrectly in browsers that support ImageBitmap. #7795

1.56.1 - 2019-04-02

Additions 🎉
  • Resource.fetchImage now takes a preferImageBitmap option to use createImageBitmap when supported to move image decode off the main thread. This option defaults to false.
Breaking Changes 📣
  • The following breaking changes are relative to 1.56. The Resource.fetchImage behavior is now identical to 1.55 and earlier.
    • Changed Resource.fetchImage back to return an Image by default, instead of an ImageBitmap when supported. Note that an ImageBitmap cannot be flipped during texture upload. Instead, set flipY : true during fetch to flip it.
    • Changed the default flipY option in Resource.fetchImage to false. This only has an effect when ImageBitmap is used.

1.56 - 2019-04-01

Breaking Changes 📣
  • Resource.fetchImage now returns an ImageBitmap instead of Image when supported. This allows for decoding images while fetching using createImageBitmap to greatly speed up texture upload and decrease frame drops when loading models with large textures. #7579
  • Cesium3DTileStyle.style now has an empty Object as its default value, instead of undefined. #7567
  • Scene.clampToHeight now takes an optional width argument before the result argument. #7693
  • In the Resource class, addQueryParameters and addTemplateValues have been removed. Please use setQueryParameters and setTemplateValues instead. #7695
Deprecated ⏳
  • Resource.fetchImage now takes an options object. Use resource.fetchImage({ preferBlob: true }) instead of resource.fetchImage(true). The previous function definition will no longer work in 1.57. #7579
Additions 🎉
  • Added support for touch and hold gesture. The touch and hold delay can be customized by updating ScreenSpaceEventHandler.touchHoldDelayMilliseconds. #7286
  • Resource.fetchImage now has a flipY option to vertically flip an image during fetch & decode. It is only valid when ImageBitmapOptions is supported by the browser. #7579
  • Added backFaceCulling and normalShading options to PointCloudShading. Both options are only applicable for point clouds containing normals. #7399
  • Cesium3DTileStyle.style reacts to updates and represents the current state of the style. #7567
Fixes 🔧
  • Fixed the value for BlendFunction.ONE_MINUS_CONSTANT_COLOR. #7624
  • Fixed HeadingPitchRoll.pitch being NaN when using .fromQuaternion due to a rounding error for pitches close to +/- 90°. #7654
  • Fixed a type of crash caused by the camera being rotated through terrain. #6783
  • Fixed an error in Resource when used with template replacements using numeric keys. #7668
  • Fixed an error in Cesium3DTilePointFeature where anchorLineColor used the same color instance instead of cloning the color #7686

1.55 - 2019-03-01

Breaking Changes 📣
  • czm_materialInput.slope is now an angle in radians between 0 and pi/2 (flat to vertical), rather than a projected length 1 to 0 (flat to vertical).
Additions 🎉
  • Updated terrain and imagery rendering, resulting in terrain/imagery loading ~33% faster and using ~33% less data #7061
  • czm_materialInput.aspect was added as an angle in radians between 0 and 2pi (east, north, west to south).
  • Added CZML arcType support for polyline and polygon, which supersedes followSurface. followSurface is still supported for compatibility with existing documents. #7582
Fixes 🔧
  • Fixed an issue where models would cause a crash on load if some primitives were Draco encoded and others were not. #7383
  • Fixed an issue where RTL labels not reversing correctly non alphabetic characters #7501
  • Fixed Node.js support for the Resource class and any functionality using it internally.
  • Fixed an issue where some ground polygons crossing the Prime Meridian would have incorrect bounding rectangles. #7533
  • Fixed an issue where polygons on terrain using rhumb lines where being rendered incorrectly. #7538
  • Fixed an issue with EllipsoidRhumbLines.findIntersectionWithLongitude when longitude was IDL. #7551
  • Fixed model silhouette colors when rendering with high dynamic range. #7563
  • Fixed an issue with ground polylines on globes that use ellipsoids other than WGS84. #7552
  • Fixed an issue where Draco compressed models with RGB per-vertex color would not load in Cesium. #7576
  • Fixed an issue where the outline geometry for extruded Polygons didn’t calculate the correct indices. #7599

1.54 - 2019-02-01

Highlights 🎇
  • Added support for polylines and textured entities on 3D Tiles. #7437 and #7434
  • Added support for loading models and 3D tilesets with WebP images using the EXT_texture_webp glTF extension. #7486
  • Added support for rhumb lines to polygon and polyline geometries. #7492
Breaking Changes 📣
  • Billboards with HeightReference.CLAMP_TO_GROUND are now clamped to both terrain and 3D Tiles. #7434
  • The default classificationType for GroundPrimitive, CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics is now ClassificationType.BOTH. #7434
  • The properties ModelAnimation.speedup and ModelAnimationCollection.speedup have been removed. Use ModelAnimation.multiplier and ModelAnimationCollection.multiplier respectively instead. #7494
Deprecated ⏳
  • Scene.clampToHeight now takes an optional width argument before the result argument. The previous function definition will no longer work in 1.56. #7287
  • PolylineGeometry.followSurface has been superceded by PolylineGeometry.arcType. The previous definition will no longer work in 1.57. Replace followSurface: false with arcType: Cesium.ArcType.NONE and followSurface: true with arcType: Cesium.ArcType.GEODESIC. #7492
  • SimplePolylineGeometry.followSurface has been superceded by SimplePolylineGeometry.arcType. The previous definition will no longer work in 1.57. Replace followSurface: false with arcType: Cesium.ArcType.NONE and followSurface: true with arcType: Cesium.ArcType.GEODESIC. #7492
Additions 🎉
  • Added support for textured ground entities (entities with unspecified height) and GroundPrimitives on 3D Tiles. #7434
  • Added support for polylines on 3D Tiles. #7437
  • Added classificationType property to PolylineGraphics and GroundPolylinePrimitive which specifies whether a polyline clamped to ground should be clamped to terrain, 3D Tiles, or both. #7437
  • Added the ability to specify the width of the intersection volume for Scene.sampleHeight, Scene.clampToHeight, Scene.sampleHeightMostDetailed, and Scene.clampToHeightMostDetailed. #7287
  • Added a new Sandcastle example on using nodeTransformations to rotate a model’s wheels based on its velocity. #7361
  • Added a new Sandcastle example for drawing polylines on 3D Tiles #7522
  • Added EllipsoidRhumbLine class as a rhumb line counterpart to EllipsoidGeodesic. #7484
  • Added rhumb line support to PolygonGeometry, PolygonOutlineGeometry, PolylineGeometry, GroundPolylineGeometry, and SimplePolylineGeometry. #7492
  • When using Cesium in Node.js, we now use the combined and minified version for improved performance unless NODE_ENV is specifically set to development.
  • Improved the performance of QuantizedMeshTerrainData.interpolateHeight. #7508
  • Added support for glTF models with WebP textures using the EXT_texture_webp extension. #7486
Fixes 🔧
  • Fixed 3D Tiles performance regression. #7482
  • Fixed an issue where classification primitives with the CESIUM_3D_TILE classification type would render on terrain. #7422
  • Fixed an issue where 3D Tiles would show through the globe. #7422
  • Fixed crash when entity geometry show value is an interval that only covered part of the entity availability range #7458
  • Fix rectangle positions at the north and south poles. #7451
  • Fixed image size issue when using multiple particle systems. #7412
  • Fixed Sandcastle’s “Open in New Window” button not displaying imagery due to blob URI limitations. #7250
  • Fixed an issue where setting scene.globe.cartographicLimitRectangle to undefined would cause a crash. #7477
  • Fixed PrimitiveCollection.removeAll to no longer contain removed primitives. #7491
  • Fixed GeoJsonDataSource to use polygons and polylines that use rhumb lines. #7492
  • Fixed an issue where some ground polygons would be cut off along circles of latitude. #7507
  • Fixed an issue that would cause IE 11 to crash when enabling image-based lighting. #7485

1.53 - 2019-01-02

Additions 🎉
  • Added image-based lighting for PBR models and 3D Tiles. #7172
    • Scene.specularEnvironmentMaps is a url to a KTX file that contains the specular environment map and convoluted mipmaps for image-based lighting of all PBR models in the scene.
    • Scene.sphericalHarmonicCoefficients is an array of 9 Cartesian3 spherical harmonics coefficients for the diffuse irradiance of all PBR models in the scene.
    • The specularEnvironmentMaps and sphericalHarmonicCoefficients properties of Model and Cesium3DTileset can be used to override the values from the scene for specific models and tilesets.
    • The luminanceAtZenith property of Model and Cesium3DTileset adjusts the luminance of the procedural image-based lighting.
  • Double click away from an entity to un-track it #7285
Fixes 🔧
  • Fixed 3D Tiles visibility checking when running multiple passes within the same frame. #7289
  • Fixed contrast on imagery layers. #7382
  • Fixed rendering transparent background color when highDynamicRange is enabled. #7427
  • Fixed translucent geometry when highDynamicRange is toggled. #7451

1.52 - 2018-12-03

Breaking Changes 📣
  • TerrainProviders that implement availability must now also implement the loadTileDataAvailability method.
Deprecated ⏳
  • The property ModelAnimation.speedup has been deprecated and renamed to ModelAnimation.multiplier. speedup will be removed in version 1.54. #7393
Additions 🎉
  • Added functions to get the most detailed height of 3D Tiles on-screen or off-screen. #7115
    • Added Scene.sampleHeightMostDetailed, an asynchronous version of Scene.sampleHeight that uses the maximum level of detail for 3D Tiles.
    • Added Scene.clampToHeightMostDetailed, an asynchronous version of Scene.clampToHeight that uses the maximum level of detail for 3D Tiles.
  • Added support for high dynamic range rendering. It is enabled by default when supported, but can be disabled with Scene.highDynamicRange. #7017
  • Added Scene.invertClassificationSupported for checking if invert classification is supported.
  • Added computeLineSegmentLineSegmentIntersection to Intersections2D. #7228
  • Added ability to load availability progressively from a quantized mesh extension instead of upfront. This will speed up load time and reduce memory usage. #7196
  • Added the ability to apply styles to 3D Tilesets that don’t contain features. #7255
Fixes 🔧
  • Fixed issue causing polyline to look wavy depending on the position of the camera #7209
  • Fixed translucency issues for dynamic geometry entities. #7364

1.51 - 2018-11-01

Additions 🎉
  • Added WMS-T (time) support in WebMapServiceImageryProvider #2581
  • Added cutoutRectangle to ImageryLayer, which allows cutting out rectangular areas in imagery layers to reveal underlying imagery. #7056
  • Added atmosphereHueShift, atmosphereSaturationShift, and atmosphereBrightnessShift properties to Globe which shift the color of the ground atmosphere to match the hue, saturation, and brightness shifts of the sky atmosphere. #4195
  • Shrink minified and gzipped Cesium.js by 27 KB (~3.7%) by delay loading seldom-used third-party dependencies. #7140
  • Added lightColor property to Cesium3DTileset, Model, and ModelGraphics to change the intensity of the light used when shading model. #7025
  • Added imageBasedLightingFactor property to Cesium3DTileset, Model, and ModelGraphics to scale the diffuse and specular image-based lighting contributions to the final color. #7025
  • Added per-feature selection to the 3D Tiles BIM Sandcastle example. #7181
  • Added Transforms.fixedFrameToHeadingPitchRoll, a helper function for extracting a HeadingPitchRoll from a fixed frame transform. #7164
  • Added Ray.clone. #7174
Fixes 🔧
  • Fixed issue removing geometry entities with different materials. #7163
  • Fixed texture coordinate calculation for polygon entities with perPositionHeight. #7188
  • Fixed crash when updating polyline attributes twice in one frame. #7155
  • Fixed entity visibility issue related to setting an entity show property and altering or adding entity geometry. #7156
  • Fixed an issue where dynamic Entities on terrain would cause a crash in platforms that do not support depth textures such as Internet Explorer. #7103
  • Fixed an issue that would cause a crash when removing a post process stage. #7210
  • Fixed an issue where pickPosition would return incorrect results when called after sampleHeight or clampToHeight. #7113
  • Fixed an issue where sampleHeight and clampToHeight would crash if picking a primitive that doesn’t write depth. #7120
  • Fixed a crash when using BingMapsGeocoderService. #7143
  • Fixed accuracy of rotation matrix generated by VelocityOrientationProperty. #6641
  • Fixed clipping plane crash when adding a plane to an empty collection. #7168
  • Fixed clipping planes on tilesets not taking into account the tileset model matrix. #7182
  • Fixed incorrect rendering of models using the KHR_materials_common lights extension. #7206

1.50 - 2018-10-01

Breaking Changes 📣
  • Clipping planes on tilesets now use the root tile’s transform, or the root tile’s bounding sphere if a transform is not defined. #7034
    • This is to make clipping planes’ coordinates always relative to the object they’re attached to. So if you were positioning the clipping planes as in the example below, this is no longer necessary:
    clippingPlanes.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
      tileset.boundingSphere.center
    );
    
    • This also fixes several issues with clipping planes not using the correct transform for tilesets with children.
Additions 🎉
  • Initial support for clamping to 3D Tiles. #6934
    • Added Scene.sampleHeight to get the height of geometry in the scene. May be used to clamp objects to the globe, 3D Tiles, or primitives in the scene.
    • Added Scene.clampToHeight to clamp a cartesian position to the scene geometry.
    • Requires depth texture support (WEBGL_depth_texture or WEBKIT_WEBGL_depth_texture). Added Scene.sampleHeightSupported and Scene.clampToHeightSupported functions for checking if height sampling is supported.
  • Added Cesium3DTileset.initialTilesLoaded to indicate that all tiles in the initial view are loaded. #6934
  • Added support for glTF extension KHR_materials_pbrSpecularGlossiness #7006.
  • Added support for glTF extension KHR_materials_unlit #6977.
  • Added support for glTF extensions KHR_techniques_webgl and KHR_blend. #6805
  • Update gltf-pipeline to 2.0. #6805
  • Added cartographicLimitRectangle to Globe. Use this to limit terrain and imagery to a specific Rectangle area. #6987
  • Added OpenCageGeocoderService, which provides geocoding via OpenCage. #7015
  • Added ground atmosphere lighting in 3D. This can be toggled with Globe.showGroundAtmosphere. 6877
    • Added Globe.nightFadeOutDistance and Globe.nightFadeInDistance to configure when ground atmosphere night lighting fades in and out. 6877
  • Added onStop event to Clock that fires each time stopTime is reached. #7066
Fixes 🔧
  • Fixed picking for overlapping translucent primitives. #7039
  • Fixed an issue in the 3D Tiles traversal where tilesets would render with mixed level of detail if an external tileset was visible but its root tile was not. #7099
  • Fixed an issue in the 3D Tiles traversal where external tilesets would not always traverse to their root tile. #7035
  • Fixed an issue in the 3D Tiles traversal where empty tiles would be selected instead of their nearest loaded ancestors. #7011
  • Fixed an issue where scaling near zero with an model animation could cause rendering to stop. #6954
  • Fixed bug where credits weren’t displaying correctly if more than one viewer was initialized [#6965](expect(https://github.com/CesiumGS/cesium/issues/6965)
  • Fixed entity show issues. #7048
  • Fixed a bug where polylines on terrain covering very large portions of the globe would cull incorrectly in 3d-only scenes. #7043
  • Fixed bug causing crash on entity geometry material change. #7047
  • Fixed MIME type behavior for Resource requests in recent versions of Edge #7085.

1.49 - 2018-09-04

Breaking Changes 📣
  • Removed ClippingPlaneCollection.clone. #6872
  • Changed Globe.pick to return a position in ECEF coordinates regardless of the current scene mode. This will only effect you if you were working around a bug to make Globe.pick work in 2D and Columbus View. Use Globe.pickWorldCoordinates to get the position in world coordinates that correlate to the current scene mode. #6859
  • Removed the unused frameState parameter in evaluate and evaluateColor functions in Expression, StyleExpression, ConditionsExpression and all other places that call the functions. #6890
  • Removed PostProcessStageLibrary.createLensFlarStage. Use PostProcessStageLibrary.createLensFlareStage instead. #6972
  • Removed Scene.fxaa. Use Scene.postProcessStages.fxaa.enabled instead. #6980
Additions 🎉
  • Added heightReference to BoxGraphics, CylinderGraphics and EllipsoidGraphics, which can be used to clamp these entity types to terrain. #6932
  • Added GeocoderViewModel.destinationFound for specifying a function that is called upon a successful geocode. The default behavior is to fly to the destination found by the geocoder. #6915
  • Added ClippingPlaneCollection.planeAdded and ClippingPlaneCollection.planeRemoved events. planeAdded is raised when a new plane is added to the collection and planeRemoved is raised when a plane is removed. #6875
  • Added Matrix4.setScale for setting the scale on an affine transformation matrix #6888
  • Added optional width and height to Scene.drillPick for specifying a search area. #6922
  • Added Cesium3DTileset.root for getting the root tile of a tileset. #6944
  • Added Cesium3DTileset.extras and Cesium3DTile.extras for getting application specific metadata from 3D Tiles. #6974
Fixes 🔧
  • Several performance improvements and fixes to the 3D Tiles traversal code. #6390
    • Improved load performance when skipLevelOfDetail is false.
    • Fixed a bug that caused some skipped tiles to load when skipLevelOfDetail is true.
    • Fixed pick statistics in the 3D Tiles Inspector.
    • Fixed drawing of debug labels for external tilesets.
    • Fixed drawing of debug outlines for empty tiles.
  • The Geocoder widget now takes terrain altitude into account when calculating its final destination. #6876
  • The Viewer widget now takes terrain altitude into account when zooming or flying to imagery layers. #6895
  • Fixed Firefox camera control issues with mouse and touch events. #6372
  • Fixed getPickRay in 2D. #2480
  • Fixed Globe.pick for 2D and Columbus View. #6859
  • Fixed imagery layer feature picking in 2D and Columbus view. #6859
  • Fixed intermittent ground clamping issues for all entity types that use a height reference. #6930
  • Fixed bug that caused a new ClippingPlaneCollection to be created every frame when used with a model entity. #6872
  • Improved Plane entities so they are better aligned with the globe surface. #6887
  • Fixed crash when rendering translucent objects when all shadow maps in the scene set fromLightSource to false. #6883
  • Fixed night shading in 2D and Columbus view. #4122
  • Fixed model loading failure when a glTF 2.0 primitive does not have a material. 6906
  • Fixed a crash when setting show to false on a polyline clamped to the ground. #6912
  • Fixed a bug where Cesium3DTileset wasn’t using the correct tilesetVersion. #6933
  • Fixed crash that happened when calling scene.pick after setting a new terrain provider. #6918
  • Fixed an issue that caused the browser to hang when using drillPick on a polyline clamped to the ground. 6907
  • Fixed an issue where color wasn’t updated properly for polylines clamped to ground. #6927
  • Fixed an excessive memory use bug that occurred when a data URI was used to specify a glTF model. #6928
  • Fixed an issue where switching from 2D to 3D could cause a crash. #6929
  • Fixed an issue where point primitives behind the camera would appear in view. #6904
  • The createGroundPolylineGeometry web worker no longer depends on GroundPolylinePrimitive, making the worker smaller and potentially avoiding a hanging build in some webpack configurations. #6946
  • Fixed an issue that cause terrain entities (entities with unspecified height) and GroundPrimitives to fail when crossing the international date line. #6951
  • Fixed normal calculation for CylinderGeometry when the top radius is not equal to the bottom radius #6863

1.48 - 2018-08-01

Additions 🎉
  • Added support for loading Draco compressed Point Cloud tiles for 2-3x better compression. #6559
  • Added TimeDynamicPointCloud for playback of time-dynamic point cloud data, where each frame is a 3D Tiles Point Cloud tile. #6721
  • Added CoplanarPolygonGeometry and CoplanarPolygonGeometryOutline for drawing polygons composed of coplanar positions that are not necessarily on the ellipsoid surface. #6769
  • Improved support for polygon entities using perPositionHeight, including supporting vertical polygons. This also improves KML compatibility. #6791
  • Added Cartesian3.midpoint to compute the midpoint between two Cartesian3 positions #6836
  • Added equalsEpsilon methods to OrthographicFrustum, PerspectiveFrustum, OrthographicOffCenterFrustum and PerspectiveOffCenterFrustum.
Deprecated ⏳
  • Support for 3D Tiles content.url is deprecated to reflect updates to the 3D Tiles spec. Use content.uri instead. Support for content.url will remain for backwards compatibility. #6744
  • Support for the 3D Tiles pre-version 1.0 Batch Table Hierarchy is deprecated to reflect updates to the 3D Tiles spec. Use the 3DTILES_batch_table_hierarchy extension instead. Support for the deprecated batch table hierarchy will remain for backwards compatibility. #6780
  • PostProcessStageLibrary.createLensFlarStage is deprecated due to misspelling and will be removed in Cesium 1.49. Use PostProcessStageLibrary.createLensFlareStage instead.
Fixes 🔧
  • Fixed a bug where 3D Tilesets using the region bounding volume don’t get transformed when the tileset’s modelMatrix changes. #6755
  • Fixed a bug that caused eye dome lighting for point clouds to fail in Safari on macOS and Edge on Windows by removing the dependency on floating point color textures. #6792
  • Fixed a bug that caused polylines on terrain to render incorrectly in 2D and Columbus View with a WebMercatorProjection. #6809
  • Fixed bug causing billboards and labels to appear the wrong size when switching scene modes #6745
  • Fixed PolygonGeometry when using VertexFormat.POSITION_ONLY, perPositionHeight and extrudedHeight [#6790](expect(https://github.com/CesiumGS/cesium/pull/6790)
  • Fixed an issue where tiles were missing in VR mode. #6612
  • Fixed issues related to updating entity show and geometry color #6835
  • Fixed PolygonGeometry and EllipseGeometry tangent and bitangent attributes when a texture rotation is used #6788
  • Fixed bug where entities with a height reference weren’t being updated correctly when the terrain provider was changed. #6820
  • Fixed an issue where glTF 2.0 models sometimes wouldn’t be centered in the view after putting the camera on them. #6784
  • Fixed the geocoder when Viewer is passed the option geocoder: true #6833
  • Improved performance for billboards and labels clamped to terrain #6781 #6844
  • Fixed a bug that caused billboard positions to be set incorrectly when using a CallbackProperty. #6815
  • Improved support for generating a TypeScript typings file using tsd-jsdoc #6767
  • Updated viewBoundingSphere to use correct zoomOptions #6848
  • Fixed a bug that caused the scene to continuously render after resizing the viewer when requestRenderMode was enabled. #6812

1.47 - 2018-07-02

Highlights 🎇
  • Added support for polylines on terrain #6689 #6615
  • Added heightReference and extrudedHeightReference properties to CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics. #6717
  • PostProcessStage has a selected property which is an array of primitives used for selectively applying a post-process stage. #6476
Breaking Changes 📣
  • glTF 2.0 models corrected to face +Z forwards per specification. Internally Cesium uses +X as forward, so a new +Z to +X rotation was added for 2.0 models only. To fix models that are oriented incorrectly after this change:
    • If the model faces +X forwards update the glTF to face +Z forwards. This can be done by loading the glTF in a model editor and applying a 90 degree clockwise rotation about the up-axis. Alternatively, add a new root node to the glTF node hierarchy whose matrix is [0,0,1,0,0,1,0,0,-1,0,0,0,0,0,0,1].
    • Apply a -90 degree rotation to the model’s heading. This can be done by setting the model’s orientation using the Entity API or from within CZML. See #6738 for more details.
  • Dropped support for directory URLs when loading tilesets to match the updated 3D Tiles spec. #6502
  • KML and GeoJSON now use PolylineGraphics instead of CorridorGraphics for polylines on terrain. #6706
Additions 🎉
  • Added support for polylines on terrain #6689 #6615
    • Use the clampToGround option for PolylineGraphics (polyline entities).
    • Requires depth texture support (WEBGL_depth_texture or WEBKIT_WEBGL_depth_texture), otherwise clampToGround will be ignored. Use Entity.supportsPolylinesOnTerrain to check for support.
    • Added GroundPolylinePrimitive and GroundPolylineGeometry.
  • PostProcessStage has a selected property which is an array of primitives used for selectively applying a post-process stage. #6476
    • The PostProcessStageLibrary.createBlackAndWhiteStage and PostProcessStageLibrary.createSilhouetteStage have per-feature support.
  • Added CZML support for zIndex with corridor, ellipse, polygon, polyline and rectangle. #6708
  • Added CZML clampToGround option for polyline. #6706
  • Added support for RTC_CENTER property in batched 3D model tilesets to conform to the updated 3D Tiles spec. #6488
  • Added heightReference and extrudedHeightReference properties to CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics. #6717
    • This can be used in conjunction with the height and/or extrudedHeight properties to clamp the geometry to terrain or set the height relative to terrain.
    • Note, this will not make the geometry conform to terrain. Extruded geoemtry that is clamped to the ground will have a flat top will sinks into the terrain at the base.
Fixes 🔧
  • Fixed a bug that caused Cesium to be unable to load local resources in Electron. #6726
  • Fixed a bug causing crashes with custom vertex attributes on Geometry crossing the IDL. Attributes will be barycentrically interpolated. #6644
  • Fixed a bug causing Point Cloud tiles with unsigned int batch-ids to not load. #6666
  • Fixed a bug with Draco encoded i3dm tiles, and loading two Draco models with the same url. #6668
  • Fixed a bug caused by creating a polygon with positions at the same longitude/latitude position but different heights #6731
  • Fixed terrain clipping when the camera was close to flat terrain and was using logarithmic depth. #6701
  • Fixed KML bug that constantly requested the same image if it failed to load. #6710
  • Improved billboard and label rendering so they no longer sink into terrain when clamped to ground. #6621
  • Fixed an issue where KMLs containing a colorMode of random could return the exact same color on successive calls to Color.fromRandom().
  • Iso8601.MAXIMUM_VALUE now formats to a string which can be parsed by fromIso8601.
  • Fixed material support when using an image that is already loaded #6729

1.46.1 - 2018-06-01

  • This is an npm only release to fix the improperly published 1.46.0. There were no code changes.

1.46 - 2018-06-01

Highlights 🎇
  • Added support for materials on terrain entities (entities with unspecified height) and GroundPrimitives. #6393
  • Added a post-processing framework. #5615
  • Added zIndex for ground geometry, including corridor, ellipse, polygon and rectangle entities. #6362
Breaking Changes 📣
  • ParticleSystem no longer uses forces. #6510
  • Particle no longer uses size, rate, lifeTime, life, minimumLife, maximumLife, minimumWidth, minimumHeight, maximumWidth, and maximumHeight. #6510
  • Removed Scene.copyGlobeDepth. Globe depth will now be copied by default when supported. #6393
  • The default classificationType for GroundPrimitive, CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics is now ClassificationType.TERRAIN. If you wish the geometry to color both terrain and 3D tiles, pass in the option classificationType: Cesium.ClassificationType.BOTH.
  • Removed support for the options argument for Credit #6373. Pass in an html string instead.
  • glTF 2.0 models corrected to face +Z forwards per specification. Internally Cesium uses +X as forward, so a new +Z to +X rotation was added for 2.0 models only. #6632
Deprecated ⏳
  • The Scene.fxaa property has been deprecated and will be removed in Cesium 1.47. Use Scene.postProcessStages.fxaa.enabled.
Additions 🎉
  • Added support for materials on terrain entities (entities with unspecified height) and GroundPrimitives. #6393
    • Only available for ClassificationType.TERRAIN at this time. Adding a material to a terrain Entity will cause it to behave as if it is ClassificationType.TERRAIN.
    • Requires depth texture support (WEBGL_depth_texture or WEBKIT_WEBGL_depth_texture), so materials on terrain entities and GroundPrimitives are not supported in Internet Explorer.
    • Best suited for notational patterns and not intended for precisely mapping textures to terrain - for that use case, use SingleTileImageryProvider.
  • Added GroundPrimitive.supportsMaterials and Entity.supportsMaterialsforEntitiesOnTerrain, both of which can be used to check if materials on terrain entities and GroundPrimitives is supported. #6393
  • Added a post-processing framework. #5615
    • Added Scene.postProcessStages which is a collection of post-process stages to be run in order.
      • Has a built-in ambientOcclusion property which will apply screen space ambient occlusion to the scene and run before all stages.
      • Has a built-in bloom property which applies a bloom filter to the scene before all other stages but after the ambient occlusion stage.
      • Has a built-in fxaa property which applies Fast Approximate Anti-aliasing (FXAA) to the scene after all other stages.
    • Added PostProcessStageLibrary which contains several built-in stages that can be added to the collection.
    • Added PostProcessStageComposite for multi-stage post-processes like depth of field.
    • Added a new Sandcastle label Post Processing to showcase the different built-in post-process stages.
  • Added zIndex for ground geometry, including corridor, ellipse, polygon and rectangle entities. #6362
  • Added Rectangle.equalsEpsilon for comparing the equality of two rectangles #6533
Fixes 🔧
  • Fixed a bug causing custom TilingScheme classes to not be able to use a GeographicProjection. #6524
  • Fixed incorrect 3D Tiles statistics when a tile fails during processing. #6558
  • Fixed race condition causing intermittent crash when changing geometry show value #3061
  • ProviderViewModels with no category are displayed in an untitled group in BaseLayerPicker instead of being labeled as 'Other' #6574
  • Fixed a bug causing intermittent crashes with clipping planes due to uninitialized textures. #6576
  • Added a workaround for clipping planes causing a picking shader compilation failure for gltf models and 3D Tilesets in Internet Explorer #6575
  • Allowed Bing Maps servers with a subpath (instead of being at the root) to work correctly. #6597
  • Added support for loading of Draco compressed glTF assets in IE11 #6404
  • Fixed polygon outline when using perPositionHeight and extrudedHeight. #6595
  • Fixed broken links in documentation of createTileMapServiceImageryProvider. #5818
  • Transitioning from 2 touches to 1 touch no longer triggers a new pan gesture. #6479

1.45 - 2018-05-01

Major Announcements 📢
  • We’ve launched Cesium ion! Read all about it in our blog post.
  • Cesium now uses ion services by default for base imagery, terrain, and geocoding. A demo key is provided, but to use them in your own apps you must sign up for a free ion Commmunity account.
Breaking Changes 📣
  • ClippingPlaneCollection now uses ClippingPlane objects instead of Plane objects. #6498
  • Cesium no longer ships with a demo Bing Maps API key.
  • BingMapsImageryProvider is no longer the default base imagery layer. (Bing imagery itself is still the default, however it is provided through Cesium ion)
  • BingMapsGeocoderService is no longer the default geocoding service.
  • If you wish to continue to use your own Bing API key for imagery and geocoding, you can go back to the old default behavior by constructing the Viewer as follows:
    Cesium.BingMapsApi.defaultKey = "yourBingKey";
    var viewer = new Cesium.Viewer("cesiumContainer", {
      imageryProvider: new Cesium.BingMapsImageryProvider({
        url: "https://dev.virtualearth.net",
      }),
      geocoder: [
        new Cesium.CartographicGeocoderService(),
        new Cesium.BingMapsGeocoderService(),
      ],
    });
    
Deprecated ⏳
  • Particle.size, ParticleSystem.rate, ParticleSystem.lifeTime, ParticleSystem.life, ParticleSystem.minimumLife, and ParticleSystem.maximumLife have been renamed to Particle.imageSize, ParticleSystem.emissionRate, ParticleSystem.lifetime, ParticleSystem.particleLife, ParticleSystem.minimumParticleLife, and ParticleSystem.maximumParticleLife. Use of the size, rate, lifeTime, life, minimumLife, and maximumLife parameters is deprecated and will be removed in Cesium 1.46.
  • ParticleSystem.forces array has been switched out for singular function ParticleSystems.updateCallback. Use of the forces parameter is deprecated and will be removed in Cesium 1.46.
  • Any width and height variables in ParticleSystem will no longer be individual components. ParticleSystem.minimumWidth and ParticleSystem.minimumHeight will now be ParticleSystem.minimumImageSize, ParticleSystem.maximumWidth and ParticleSystem.maximumHeight will now be ParticleSystem.maximumImageSize, and ParticleSystem.width and ParticleSystem.height will now be ParticleSystem.imageSize. Use of the minimumWidth, minimumHeight, maximumWidth, maximumHeight, width, and height parameters is deprecated and will be removed in Cesium 1.46.
Additions 🎉
  • Added option logarithmicDepthBuffer to Scene. With this option there is typically a single frustum using logarithmic depth rendered. This increases performance by issuing less draw calls to the GPU and helps to avoid artifacts on the connection of two frustums. #5851
  • When a log depth buffer is supported, the frustum near and far planes default to 0.1 and 1e10 respectively.
  • Added IonGeocoderService and made it the default geocoding service for the Geocoder widget.
  • Added createWorldImagery which provides Bing Maps imagery via a Cesium ion account.
  • Added PeliasGeocoderService, which provides geocoding via a Pelias server.
  • Added the ability for BaseLayerPicker to group layers by category. ProviderViewModel.category was also added to support this feature.
  • Added Math.log2 to compute the base 2 logarithm of a number.
  • Added GeocodeType enum and use it as an optional parameter to all GeocoderService instances to differentiate between autocomplete and search requests.
  • Added initWebAssemblyModule function to TaskProcessor to load a Web Assembly module in a web worker. #6420
  • Added supportsWebAssembly function to FeatureDetection to check if a browser supports loading Web Assembly modules. #6420
  • Improved MapboxImageryProvider performance by 300% via tiles.mapbox.com subdomain switching. #6426
  • Added ability to invoke sampleTerrain from node.js to enable offline terrain sampling
  • Added more ParticleSystem Sandcastle examples for rocket and comet tails and weather. #6375
  • Added color and scale attributes to the ParticleSystem class constructor. When defined the variables override startColor and endColor and startScale and endScale. #6429
Fixes 🔧
  • Fixed bugs in TimeIntervalCollection.removeInterval. #6418.
  • Fixed glTF support to handle meshes with and without tangent vectors, and with/without morph targets, sharing one material. #6421
  • Fixed glTF support to handle skinned meshes when no skin is supplied. #6061
  • Updated glTF 2.0 PBR shader to have brighter lighting. #6430
  • Allow loadWithXhr to work with string URLs in a web worker.
  • Updated to Draco 1.3.0 and implemented faster loading of Draco compressed glTF assets in browsers that support Web Assembly. #6420
  • GroundPrimitives and ClassificationPrimitives will become ready when show is false. #6428
  • Fix Firefox WebGL console warnings. #5912
  • Fix parsing Cesium.js in older browsers that do not support all TypedArray types. #6396
  • Fixed a bug causing crashes when setting colors on un-pickable models. $6442
  • Fix flicker when adding, removing, or modifying entities. #3945
  • Fixed crash bug in PolylineCollection when a polyline was updated and removed at the same time. #6455
  • Fixed crash when animating a glTF model with a single keyframe. #6422
  • Fixed Imagery Layers Texture Filters Sandcastle example. #6472.
  • Fixed a bug causing Cesium 3D Tilesets to not clip properly when tiles were unloaded and reloaded. #6484
  • Fixed TimeInterval so now it throws if fromIso8601 is given an ISO 8601 string with improper formatting. #6164
  • Improved rendering of glTF models that don’t contain normals with a temporary unlit shader workaround. #6501
  • Fixed rendering of glTF models with emissive-only materials. #6501
  • Fixed a bug in shader modification for glTF 1.0 quantized attributes and Draco quantized attributes. #6523

1.44 - 2018-04-02

Highlights 🎇
  • Added a new Sandcastle label, New in X.X which will include all new Sandcastle demos added for the current release. #6384
  • Added support for glTF models with Draco geometry compression. #5120
  • Added support for ordering in DataSourceCollection. #6316
Breaking Changes 📣
  • GeometryVisualizer now requires primitive and groundPrimitive parameters. #6316
  • For all classes/functions that take a Resource instance, all additional parameters that are part of the Resource class have been removed. This generally includes proxy, headers and query parameters. #6368
  • All low level load functions including loadArrayBuffer, loadBlob, loadImage, loadJson, loadJsonp, loadText, loadXML and loadWithXhr have been removed. Please use the equivalent fetch functions on the Resource class. #6368
Deprecated ⏳
  • ClippingPlaneCollection is now supported in Internet Explorer, so ClippingPlaneCollection.isSupported has been deprecated and will be removed in Cesium 1.45.
  • ClippingPlaneCollection should now be used with ClippingPlane objects instead of Plane. Use of Plane objects has been deprecated and will be removed in Cesium 1.45.
  • Credit now takes an html and showOnScreen parameters instead of an options object. Use of the options parameter is deprecated and will be removed in Cesium 1.46.
  • Credit.text, Credit.imageUrl and Credit.link properties have all been deprecated and will be removed in Cesium 1.46. Use Credit.html to retrieve the credit content.
  • Credit.hasImage and Credit.hasLink functions have been deprecated and will be removed in Cesium 1.46.
Additions 🎉
  • Added a new Sandcastle label, New in X.X which will include all new Sandcastle demos added for the current release. #6384
  • Added support for glTF models with Draco geometry compression. #5120
    • Added dequantizeInShader option parameter to Model and Model.fromGltf to specify if Draco compressed glTF assets should be dequantized on the GPU.
  • Added support for ordering in DataSourceCollection. #6316
    • All ground geometry from one DataSource will render in front of all ground geometry from another DataSource in the same collection with a lower index.
    • Use DataSourceCollection.raise, DataSourceCollection.lower, DataSourceCollection.raiseToTop and DataSourceCollection.lowerToBottom functions to change the ordering of a DataSource in the collection.
  • ClippingPlaneCollection updates #6201:
    • Removed the 6-clipping-plane limit.
    • Added support for Internet Explorer.
    • Added a ClippingPlane object to be used with ClippingPlaneCollection.
    • Added 3D Tiles use-case to the Terrain Clipping Planes Sandcastle.
  • Credit has been modified to take an HTML string as the credit content. #6331
  • Sharing Sandcastle examples now works by storing the full example directly in the URL instead of creating GitHub gists, because anonymous gist creation was removed by GitHub. Loading existing gists will still work. #6342
  • Updated WebMapServiceImageryProvider so it can take an srs or crs string to pass to the resource query parameters based on the WMS version. #6223
  • Added additional query parameter options to the CesiumViewer demo application #6328:
    • sourceType specifies the type of data source if the URL doesn’t have a known file extension.
    • flyTo=false optionally disables the automatic flyTo after loading the data source.
  • Added a multi-part CZML example to Sandcastle. #6320
  • Improved processing order of 3D tiles. #6364
Fixes 🔧
  • Fixed Cesium ion browser caching. #6353.
  • Fixed formula for Weighted Blended Order-Independent Transparency. #6340
  • Fixed support of glTF-supplied tangent vectors. #6302
  • Fixed model loading failure when containing unused materials. 6315
  • Fixed default value of alphaCutoff in glTF models. #6346
  • Fixed double-sided flag for glTF materials with BLEND enabled. #6371
  • Fixed animation for glTF models with missing animation targets. #6351
  • Fixed improper zoom during model load failure. #6305
  • Fixed rendering vector tiles when using invertClassification. #6349
  • Fixed occlusion when globe.show is false. #6374
  • Fixed crash for entities with static geometry and time-dynamic attributes. #6377
  • Fixed geometry tile rendering in IE. #6406

1.43 - 2018-03-01

Major Announcements 📢
  • Say hello to Cesium ion
  • Cesium, the JavaScript library, is now officially renamed to CesiumJS (no code changes required)
  • The STK World Terrain tileset is deprecated and will be available until September 1, 2018. Check out the new high-resolution Cesium World Terrain
Breaking Changes 📣
  • Removed GeometryUpdater.perInstanceColorAppearanceType and GeometryUpdater.materialAppearanceType. #6239
  • GeometryVisualizer no longer uses a type parameter. #6239
  • GeometryVisualizer no longer displays polylines. Use PolylineVisualizer instead. #6239
  • The experimental CesiumIon object has been completely refactored and renamed to Ion.
Deprecated ⏳
  • The STK World Terrain, ArcticDEM, and PAMAP Terrain tilesets hosted on assets.agi.com are deprecated and will be available until September 1, 2018. To continue using them, access them via Cesium ion
  • In the Resource class, addQueryParameters and addTemplateValues have been deprecated and will be removed in Cesium 1.45. Please use setQueryParameters and setTemplateValues instead.
Additions 🎉
  • Added new Ion, IonResource, and IonImageryProvider objects for loading data hosted on Cesium ion.
  • Added createWorldTerrain helper function for easily constructing the new Cesium World Terrain.
  • Added support for a promise to a resource for CesiumTerrainProvider, createTileMapServiceImageryProvider and Cesium3DTileset #6204
  • Added Cesium.Math.cbrt. #6222
  • Added PolylineVisualizer for displaying polyline entities #6239
  • Resource class #6205
    • Added put, patch, delete, options and head methods, so it can be used for all XHR requests.
    • Added preserveQueryParameters parameter to getDerivedResource, to allow us to append query parameters instead of always replacing them.
    • Added setQueryParameters and appendQueryParameters to allow for better handling of query strings.
  • Enable terrain in the CesiumViewer demo application #6198
  • Added Globe.tilesLoaded getter property to determine if all terrain and imagery is loaded. #6194
  • Added classificationType property to entities which specifies whether an entity on the ground, like a polygon or rectangle, should be clamped to terrain, 3D Tiles, or both. #6195
Fixes 🔧
  • Fixed bug where KmlDataSource did not use Ellipsoid to convert coordinates. Use options.ellipsoid to pass the ellipsoid to KmlDataSource constructors / loaders. #6176
  • Fixed bug where 3D Tiles Point Clouds would fail in Internet Explorer. #6220
  • Fixed issue where CESIUM_BASE_URL wouldn’t work without a trailing /. #6225
  • Fixed coloring for polyline entities with a dynamic color for the depth fail material #6245
  • Fixed bug with zooming to dynamic geometry. #6269
  • Fixed bug where AxisAlignedBoundingBox did not copy over center value when cloning an undefined result. #6183
  • Fixed a bug where imagery stops loading when changing terrain in request render mode. #6193
  • Fixed Resource.fetch when called with no arguments #6206
  • Fixed Resource.clone to clone the Request object, so resource can be used in parallel. #6208
  • Fixed Material so it can now take a Resource object as an image. #6199
  • Fixed an issue causing the Bing Maps key to be sent unnecessarily with every tile request. #6250
  • Fixed documentation issue for the Cesium.Math class. #6233
  • Fixed rendering 3D Tiles as classification volumes. #6295

1.42.1 - 2018-02-01

_This is an npm-only release to fix an issue with using Cesium in Node.js.__

  • Fixed a bug where Cesium would fail to load under Node.js. #6177

1.42 - 2018-02-01

Highlights 🎇
  • Added experimental support for 3D Tiles Vector and Geometry data. (#4665)
  • Added optional mode to reduce CPU usage. See Improving Performance with Explicit Rendering. (#6115)
  • Added experimental CesiumIon utility class for working with the Cesium ion beta API. #6136
  • Major refactor of URL handling. All classes that take a url parameter, can now take a Resource or a String. This includes all imagery providers, all terrain providers, Cesium3DTileset, KMLDataSource, CZMLDataSource, GeoJsonDataSource, Model, and Billboard.
Breaking Changes 📣
  • The clock does not animate by default. Set the shouldAnimate option to true when creating the Viewer to enable animation.
Deprecated ⏳
  • For all classes/functions that can now take a Resource instance, all additional parameters that are part of the Resource class have been deprecated and will be removed in Cesium 1.44. This generally includes proxy, headers and query parameters.
  • All low level load functions including loadArrayBuffer, loadBlob, loadImage, loadJson, loadJsonp, loadText, loadXML and loadWithXhr have been deprecated and will be removed in Cesium 1.44. Please use the equivalent fetch functions on the Resource class.
Additions 🎉
  • Added experimental support for 3D Tiles Vector and Geometry data (#4665). The new and modified Cesium APIs are:
    • Cesium3DTileStyle has expanded to include styling point features. See the styling specification for details.
    • Cesium3DTileFeature can modify color and show properties for polygon, polyline, and geometry features.
    • Cesium3DTilePointFeature can modify the styling options for a point feature.
  • Added optional mode to reduce CPU usage. #6115
    • Scene.requestRenderMode enables a mode which will only request new render frames on changes to the scene, or when the simulation time change exceeds scene.maximumRenderTimeChange.
    • Scene.requestRender will explicitly request a new render frame when in request render mode.
    • Added Scene.preUpdate and Scene.postUpdate events that are raised before and after the scene updates respectively. The scene is always updated before executing a potential render. Continue to listen to Scene.preRender and Scene.postRender events for when the scene renders a frame.
    • Added CreditDisplay.update, which updates the credit display before a new frame is rendered.
    • Added Globe.imageryLayersUpdatedEvent, which is raised when an imagery layer is added, shown, hidden, moved, or removed on the globe.
  • Added Cesium3DTileset.classificationType to specify if a tileset classifies terrain, another 3D Tiles tileset, or both. This only applies to vector, geometry and batched 3D model tilesets. The limitations on the glTF contained in the b3dm tile are:
    • POSITION and _BATCHID semantics are required.
    • All indices with the same batch id must occupy contiguous sections of the index buffer.
    • All shaders and techniques are ignored. The generated shader simply multiplies the position by the model-view-projection matrix.
    • The only supported extensions are CESIUM_RTC and WEB3D_quantized_attributes.
    • Only one node is supported.
    • Only one mesh per node is supported.
    • Only one primitive per mesh is supported.
  • Added geometric-error-based point cloud attenuation and eye dome lighting for point clouds using replacement refinement. #6069
  • Updated Viewer.zoomTo and Viewer.flyTo to take a Cesium3DTileset as a target. #6104
  • Added shouldAnimate option to the Viewer constructor to indicate if the clock should begin animating on startup. #6154
  • Added Cesium3DTileset.ellipsoid determining the size and shape of the globe. This can be set at construction and defaults to a WGS84 ellipsoid.
  • Added Plane.projectPointOntoPlane for projecting a Cartesian3 position onto a Plane. #6092
  • Added Cartesian3.projectVector for projecting one vector to another. #6093
  • Added Cesium3DTileset.tileFailed event that will be raised when a tile fails to load. The object passed to the event listener will have a url and message property. If there are no event listeners, error messages will be logged to the console. #6088
  • Added AttributeCompression.zigZagDeltaDecode which will decode delta and ZigZag encoded buffers in place.
  • Added pack and unpack functions to OrientedBoundingBox for packing to and unpacking from a flat buffer.
  • Added support for vertex shader uniforms when tileset.colorBlendMode is MIX or REPLACE. #5874
  • Added ClippingPlaneCollection.isSupported function for checking if rendering with clipping planes is supported.#6084
  • Added Cartographic.toCartesian to convert from Cartographic to Cartesian3. #6163
  • Added BoundingSphere.volume for computing the volume of a BoundingSphere. #6069
  • Added new file for the Cesium Code of Conduct. #6129
Fixes 🔧
  • Fixed a bug that could cause tiles to be missing from the globe surface, especially when starting with the camera zoomed close to the surface. #4969
  • Fixed applying a translucent style to a point cloud tileset. #6113
  • Fixed Sandcastle error in IE 11. #6169
  • Fixed a glTF animation bug that caused certain animations to jitter. #5740
  • Fixed a bug when creating billboard and model entities without a globe. #6109
  • Improved CZML Custom Properties Sandcastle example. #6086
  • Improved Particle System Sandcastle example for better visual. #6132
  • Fixed behavior of Camera.move* and Camera.look* functions in 2D mode. #5884
  • Fixed Camera.moveStart and Camera.moveEnd events not being raised when camera is close to the ground. #4753
  • Fixed OrientedBoundingBox documentation. #6147
  • Updated documentation links to reflect new locations on https://cesiumjs.org and https://cesium.com.

1.41 - 2018-01-02

  • Breaking changes
    • Removed the text, imageUrl, and link parameters from Credit, which were deprecated in Cesium 1.40. Use options.text, options.imageUrl, and options.link instead.
  • Added support for clipping planes. #5913, #5996
    • Added clippingPlanes property to ModelGraphics, Model, Cesium3DTileset, and Globe, which specifies a ClippingPlaneCollection to selectively disable rendering.
    • Added PlaneGeometry, PlaneOutlineGeometry, PlaneGeometryUpdater, PlaneOutlineGeometryUpdater, PlaneGraphics, and Entity.plane to visualize planes.
    • Added Plane.transformPlane to apply a transformation to a plane.
  • Fixed point cloud exception in IE. #6051
  • Fixed globe materials when Globe.enableLighting was false. #6042
  • Fixed shader compilation failure on pick when globe materials were enabled. #6039
  • Fixed exception when invertClassification was enabled, the invert color had an alpha less than 1.0, and the window was resized. #6046

1.40 - 2017-12-01

  • Deprecated
    • The text, imageUrl and link parameters from Credit have been deprecated and will be removed in Cesium 1.41. Use options.text, options.imageUrl and options.link instead.
  • Added Globe.material to apply materials to the globe/terrain for shading such as height- or slope-based color ramps. See the new Sandcastle example. #5919
  • Added CZML support for polyline.depthFailMaterial, label.scaleByDistance, distanceDisplayCondition, and disableDepthTestDistance. #5986
  • Fixed a bug where drill picking a polygon clamped to ground would cause the browser to hang. #5971
  • Fixed bug in KML LookAt bug where degrees and radians were mixing in a subtraction. #5992
  • Fixed handling of KMZ files with missing xsi namespace declarations. #6003
  • Added function that removes duplicate namespace declarations while loading a KML or a KMZ. #5972
  • Fixed a language detection issue. #6016
  • Fixed a bug where glTF models with animations of different lengths would cause an error. #5694
  • Added a clampAnimations parameter to Model and Entity.model. Setting this to false allows different length animations to loop asynchronously over the duration of the longest animation.
  • Fixed Invalid asm.js: Invalid member of stdlib console error by recompiling crunch.js with latest emscripten toolchain. #5847
  • Added file: scheme compatibility to joinUrls. #5989
  • Added a Reverse Geocoder Sandcastle example. #5976
  • Added ability to support touch event in Imagery Layers Split Sandcastle example. #5948
  • Added a new @experimental tag to the documentation. A small subset of the Cesium API tagged as such are subject to breaking changes without deprecation. See the Coding Guide for further explanation. #6010
  • Moved terrain and imagery credits to a lightbox that pops up when you click a link in the onscreen credits #3013

1.39 - 2017-11-01

  • Cesium now officially supports webpack. See our Integrating Cesium and webpack blog post for more details.
  • Added support for right-to-left language detection in labels, currently Hebrew and Arabic are supported. To enable it, set Cesium.Label.enableRightToLeftDetection = true at the start of your application. #5771
  • Fixed handling of KML files with missing xsi namespace declarations. #5860
  • Fixed a bug that caused KML ground overlays to appear distorted when rotation was applied. #5914
  • Fixed a bug where KML placemarks with no specified icon would be displayed with default icon. #5819
  • Changed KML loading to ignore NetworkLink failures and continue to load the rest of the document. #5871
  • Added the ability to load Cesium’s assets from the local file system if security permissions allow it. #5830
  • Added two new properties to ImageryLayer that allow for adjusting the texture sampler used for up and down-sampling of imagery tiles, namely minificationFilter and magnificationFilter with possible values LINEAR (the default) and NEAREST defined in TextureMinificationFilter and TextureMagnificationFilter. #5846
  • Fixed flickering artifacts with 3D Tiles tilesets with thin walls. #5940
  • Fixed bright fog when terrain lighting is enabled and added Fog.minimumBrightness to affect how bright the fog will be when in complete darkness. #5934
  • Fixed using arrow keys in geocoder widget to select search suggestions. #5943
  • Added support for the layer.json parentUrl property in CesiumTerrainProvider to allow for compositing of tilesets. #5864
  • Added invertClassification and invertClassificationColor to Scene. When invertClassification is true, any 3D Tiles geometry that is not classified by a ClassificationPrimitive or GroundPrimitive will have its color multiplied by invertClassificationColor. #5836
  • Added customTags property to the UrlTemplateImageryProvider to allow custom keywords in the template URL. #5696
  • Added eyeSeparation and focalLength properties to Scene to configure VR settings. #5917
  • Improved CZML Reference Properties example #5754

1.38 - 2017-10-02

  • Breaking changes
    • Scene/CullingVolume has been removed. Use Core/CullingVolume.
    • Scene/OrthographicFrustum has been removed. Use Core/OrthographicFrustum.
    • Scene/OrthographicOffCenterFrustum has been removed. Use Core/OrthographicOffCenterFrustum.
    • Scene/PerspectiveFrustum has been removed. Use Core/PerspectiveFrustum.
    • Scene/PerspectiveOffCenterFrustum has been removed. Use Core/PerspectiveOffCenterFrustum.
  • Added support in CZML for expressing orientation as the velocity vector of an entity, using velocityReference syntax. #5807
  • Fixed CZML processing of velocityReference within an interval. #5738
  • Added ability to add an animation to ModelAnimationCollection by its index. #5815
  • Fixed a bug in ModelAnimationCollection that caused adding an animation by its name to throw an error. #5815
  • Fixed issue in Internet Explorer and Edge with loading unicode strings in typed arrays that impacted 3D Tiles Batch Table values.
  • Zoom now maintains camera heading, pitch, and roll. #4639
  • Fixed a bug in PolylineCollection preventing the display of more than 16K points in a single collection. #5538
  • Fixed a 3D Tiles point cloud bug causing a stray point to appear at the center of the screen on certain hardware. #5599
  • Fixed removing multiple event listeners within event callbacks. #5827
  • Running buildApps now creates a built version of Sandcastle which uses the built version of Cesium for better performance.
  • Fixed a tileset traversal bug when the skipLevelOfDetail optimization is off. #5869

1.37 - 2017-09-01

  • Breaking changes
    • Passing options.clock when creating a new Viewer instance is removed, pass options.clockViewModel instead.
    • Removed GoogleEarthImageryProvider, use GoogleEarthEnterpriseMapsProvider instead.
    • Removed the throttleRequest parameter from TerrainProvider.requestTileGeometry and inherited terrain providers. It is replaced with an optional Request object. Set the request’s throttle property to true to throttle requests.
    • Removed the ability to provide a Promise for the options.url parameter of loadWithXhr and for the url parameter of loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadXML, loadImage, loadCRN, loadKTX, and loadCubeMap. Instead url must be a string.
  • Added classificationType to ClassificationPrimitive and GroundPrimitive to choose whether terrain, 3D Tiles, or both are classified. #5770
  • Fixed depth picking on 3D Tiles. #5676
  • Fixed glTF model translucency bug. #5731
  • Fixed replaceState bug that was causing the CesiumViewer demo application to crash in Safari and iOS. #5691
  • Fixed a 3D Tiles traversal bug for tilesets using additive refinement. #5766
  • Fixed a 3D Tiles traversal bug where out-of-view children were being loaded unnecessarily. #5477
  • Fixed Entity id type to be String in EntityCollection and CompositeEntityCollection #5791
  • Fixed issue where Model and BillboardCollection would throw an error if the globe is undefined. #5638
  • Fixed issue where the Model glTF cache loses reference to the model’s buffer data. #5720
  • Fixed some issues with disableDepthTestDistance. #5501 #5331 #5621
  • Added several new Bing Maps styles: CANVAS_DARK, CANVAS_LIGHT, and CANVAS_GRAY. #5737
  • Added small improvements to the atmosphere. #5741
  • Fixed a bug that caused imagery splitting to work incorrectly when CSS pixels were not equivalent to WebGL drawing buffer pixels, such as on high DPI displays in Microsoft Edge and Internet Explorer. #5743
  • Added Cesium3DTileset.loadJson to support overriding the default tileset loading behavior. #5685
  • Fixed loading of binary glTFs containing CRN or KTX textures. #5753
  • Fixed specular computation for certain models using the KHR_materials_common extension. #5773
  • Fixed a picking bug in the 3D Tiles Interactivity Sandcastle demo. #5703
  • Updated knockout from 3.4.0 to 3.4.2 #5703

1.36 - 2017-08-01

  • Breaking changes
    • The function Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result) was removed. Use Quaternion.fromHeadingPitchRoll(hpr, result) instead where hpr is a HeadingPitchRoll.
    • The function Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result) was removed. Use Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) instead where fixedFrameTransform is a a 4x4 transformation matrix (see Transforms.localFrameToFixedFrameGenerator).
    • The function Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result) was removed. Use Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) instead where fixedFrameTransform is a a 4x4 transformation matrix (see Transforms.localFrameToFixedFrameGenerator).
    • The color, show, and pointSize properties of Cesium3DTileStyle are no longer initialized with default values.
  • Deprecated
    • Scene/CullingVolume is deprecated and will be removed in 1.38. Use Core/CullingVolume.
    • Scene/OrthographicFrustum is deprecated and will be removed in 1.38. Use Core/OrthographicFrustum.
    • Scene/OrthographicOffCenterFrustum is deprecated and will be removed in 1.38. Use Core/OrthographicOffCenterFrustum.
    • Scene/PerspectiveFrustum is deprecated and will be removed in 1.38. Use Core/PerspectiveFrustum.
    • Scene/PerspectiveOffCenterFrustum is deprecated and will be removed in 1.38. Use Core/PerspectiveOffCenterFrustum.
  • Added glTF 2.0 support, including physically-based material rendering, morph targets, and appropriate updating of glTF 1.0 models to 2.0. #5641
  • Added ClassificationPrimitive which defines a volume and draws the intersection of the volume and terrain or 3D Tiles. #5625
  • Added tileLoad event to Cesium3DTileset. #5628
  • Fixed issue where scene would blink when labels were added. #5537
  • Fixed label positioning when height reference changes #5609
  • Fixed label positioning when using HeightReference.CLAMP_TO_GROUND and no position #5648
  • Fix for dynamic polylines with polyline dash material #5681
  • Added ability to provide a width and height to scene.pick. #5602
  • Fixed Viewer.flyTo not respecting zoom limits, and resetting minimumZoomDistance if the camera zoomed past the minimumZoomDistance. 5573
  • Added ability to show tile urls in the 3D Tiles Inspector. #5592
  • Fixed a bug when reading CRN compressed textures with multiple mip levels. #5618
  • Fixed issue where composite 3D Tiles that contained instanced 3D Tiles with an external model reference would fail to download the model.
  • Added behavior to Cesium3DTilesInspector that selects the first tileset hovered over if no tilest is specified. #5139
  • Added Entity.computeModelMatrix which returns the model matrix representing the entity’s transformation. #5584
  • Added ability to set a style’s color, show, or pointSize with a string or object literal. show may also take a boolean and pointSize may take a number. #5412
  • Added setter for KmlDataSource.name to specify a name for the datasource #5660.
  • Added setter for GeoJsonDataSource.name to specify a name for the datasource #5653
  • Fixed crash when using the Cesium3DTilesInspectorViewModel and removing a tileset #5607
  • Fixed polygon outline in Polygon Sandcastle demo #5642
  • Updated Billboard, Label and PointPrimitive constructors to clone NearFarScale parameters #5654
  • Added FrustumGeometry and FrustumOutlineGeometry. #5649
  • Added an options parameter to the constructors of PerspectiveFrustum, PerspectiveOffCenterFrustum, OrthographicFrustum, and OrthographicOffCenterFrustum to set properties. #5649

1.35.2 - 2017-07-11

  • This is an npm-only release to fix an issue with using Cesium in Node.js.
  • Fixed a bug where Cesium would fail to load under Node.js and some webpack configurations. #5593
  • Fixed a bug where a Model’s compressed textures were not being displayed. #5596
  • Fixed documentation for OrthographicFrustum. #5586

1.35.1 - 2017-07-05

  • This is an npm-only release to fix a deployment issue with 1.35. No code changes.

1.35 - 2017-07-05

  • Breaking changes
    • JulianDate.fromIso8601 will default to midnight UTC if no time is provided to match the Javascript Date specification. You must specify a local time of midnight to achieve the old behavior.
  • Deprecated
    • GoogleEarthImageryProvider has been deprecated and will be removed in Cesium 1.37, use GoogleEarthEnterpriseMapsProvider instead.
    • The throttleRequest parameter for TerrainProvider.requestTileGeometry, CesiumTerrainProvider.requestTileGeometry, VRTheWorldTerrainProvider.requestTileGeometry, and EllipsoidTerrainProvider.requestTileGeometry is deprecated and will be replaced with an optional Request object. The throttleRequests parameter will be removed in 1.37. Instead set the request’s throttle property to true to throttle requests.
    • The ability to pr
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值