Cesium官方发行日志
Cesium官方基本保持每个月初发布新的版本。大家可以在GitHub上看到相应的版本:https://github.com/CesiumGS/cesium/releases
1.117- 2024-05-01
@cesium/engine
Additions 🎉
- Added
ClippingPolygon
andClippingPolygonCollection
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
, andModel.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. UseCesium3DTileset.enableCollision
instead.Globe.terrainExaggeration
andGlobe.terrainExaggerationRelativeHeight
have been removed. UseScene.verticalExaggeration
andScene.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.
- This behavior can be enabled by setting
Additions 🎉
- Added support for I3S Building Scene Layer. #11678
- Added
Scene.pickVoxel
to pick individual cells from aVoxelPrimitive
, andVoxelCell
to report information about the picked cell. #11828 - Added
Scene.defaultLogDepthBuffer
to allow changing the default behavior of thelogDepthBuffer
for newly createdScene
instances. #11859 - Added
SensorVolumePortionToDisplay
to assistCzmlDataSource
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 theKHR_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 beforeViewer
#10576 - Fixed how
Camera.changed
handles changes inroll
. #11844
Deprecated ⏳
Cesium3DTileset.disableCollision
has been deprecated and will be removed in 1.116. UseCesium3DTileset.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 theCesium3DTileset
.
- This behavior can be disabled by setting
- Clamping to ground,
HeightReference.CLAMP_TO_GROUND
, andHeightReference.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
toHeightReference.CLAMP_TO_TERRAIN
orHeightReference.RELATIVE_TO_TERRAIN
respectively.
- To restore previous behavior where an entity is clamped only to terrain or relative only to terrain, set
- Removed the need for node internal packages
http
,https
,url
andzlib
in theResource
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. Theresponse
property is now aResponse
object instead of anhttp.IncomingMessage
- This slightly changed the contents of the
- 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. UsePolygonGeometry.computeRectangleFromPositions
instead.
Additions 🎉
- Added
HeightReference.CLAMP_TO_TERRAIN
,HeightReference.RELATIVE_TO_TERRAIN
,HeightReference.CLAMP_TO_3D_TILE
, andHeightReference.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, theenablePick
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
andscene.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 singlePolylineCollection
in thePolylineGeometryUpdater
. UpdatedPolylineGeometryUpdater
to create a distinctPolylineCollection
instance perDataSource
. 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 optionsdynamicScreenSpaceError
,dynamicScreenSpaceErrorDensity
,dynamicScreenSpaceErrorFactor
anddynamicScreenSpaceErrorHeightFalloff
. #11677 - Fixed a bug where transforms that had been defined with the
KHR_texture_transform
extension had not been applied to Property Textures inEXT_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 inEXT_mesh_features
. #11731 - Fixed
Entity
documentation fororientation
property. #11762 - The
EntityCollection#add
method was documented to throw aDeveloperError
for duplicate IDs, but did throw aRuntimeError
in this case. This is now changed to throw aDeveloperError
. #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 ofTerrain
andCesium3DTileset
can be controlled simultaneously via the newScene
propertiesScene.verticalExaggeration
andScene.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
andGlobe.terrainExaggerationRelativeHeight
have been deprecated in CesiumJS 1.113. They will be removed in 1.116. UseScene.verticalExaggeration
andScene.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, andIonImageryProvider.fromAssetId
#11624
1.111 - 2023-11-01
@cesium/engine
Additions 🎉
BingMapsImageryProvider.fromUrl
now takes an optionalmapLayer
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 optionshowCreditsOnScreen: 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
, andczm_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 theGoogleMaps.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. UseCesium3DTileset.cacheBytes
andCesium3DTileset.maximumCacheOverflowBytes
instead.
Additions 🎉
- Worker files are now embedded in
Build/Cesium/Cesium.js
andBuild/CesiumUnminified/Cesium.js
. #11519 - Added
PolygonGeometry.computeRectangleFromPositions
for computing aRectangle
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 tosampleTerrain
andsampleTerrainMostDetailed
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 thePRELOAD
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
andBuild/CesiumUnminified/Cesium.js
requests. #11505 - Fixed
showOnScreen
behavior forModel
andCesium3DTileset
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. UsePolygonGeometry.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 theOpenStreetMapImageryProvider
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 bePromise.<SingleTileImageryProvider>
(wasvoid
). #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 📢
- Starting with version 1.109, CesiumJS will require Firefox version 114 or higher for rendering. This is to facilitate web worker loading and remove outdated dependencies. Other browsers and node will be unaffected.
@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 addtile.openstreetmap.org
toRequestScheduler.requestsByServer
. #11407 - Fixed calculation of GroundPolyline bounding spheres in regions with negative terrain heights. #11184
- Fixed
CzmlDataSource
in cases of customEllipsoid.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 inGeocoderViewModel
. #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 aCesium3DTileStyle
. #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 optionoptions.imageryProvider
has been removed. Useoptions.baseLayer
instead.ImageryProvider.ready
andImageryProvider.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. UseImageryLayer.alpha
,ImageryLayer.nightAlpha
,ImageryLayer.dayAlpha
,ImageryLayer.brightness
,ImageryLayer.contrast
,ImageryLayer.hue
,ImageryLayer.saturation
,ImageryLayer.gamma
,ImageryLayer.minificationFilter
,ImageryLayer.magnificationFilter
instead.ImageryLayer.getViewableRectangle
was removed. UseImageryLayer.getImageryRectangle
instead.ArcGisMapServerImageryProvider
constructor parameterurl
,ArcGisMapServerImageryProvider.ready
, andArcGisMapServerImageryProvider.readyPromise
have been removed. UseArcGisMapServerImageryProvider.fromUrl
instead.BingMapsImageryProvider
constructor parameterurl
,BingMapsImageryProvider.ready
, andBingMapsImageryProvider.readyPromise
have been removed. UseBingMapsImageryProvider.fromUrl
instead.GoogleEarthEnterpriseImageryProvider
constructor parametersoptions.url
andoptions.metadata
,GoogleEarthEnterpriseImageryProvider.ready
, andGoogleEarthEnterpriseImageryProvider.readyPromise
have been removed. UseGoogleEarthEnterpriseImageryProvider.fromMetadata
instead.GoogleEarthEnterpriseMapsProvider
constructor parametersoptions.url
andoptions.channel
,GoogleEarthEnterpriseMapsProvider.ready
, andGoogleEarthEnterpriseMapsProvider.readyPromise
have been removed. UseGoogleEarthEnterpriseMapsProvider.fromUrl
instead.GridImageryProvider.ready
andGridImageryProvider.readyPromise
have been removed.IonImageryProvider
constructor parameterassetId
,BIonImageryProvider.ready
, andIonImageryProvider.readyPromise
have been removed. UseIonImageryProvider.fromAssetId
instead.MapboxImageryProvider.ready
andMapboxImageryProvider.readyPromise
have been removed.MapboxStyleImageryProvider.ready
andMapboxStyleImageryProvider.readyPromise
have been removed.OpenStreetMapImageryProvider.ready
andOpenStreetMapImageryProvider.readyPromise
have been removed.SingleTileImageryProvider
constructor parametersoptions.tileHeight
andoptions.tileWidth
became required in CesiumJS 1.104. Omitting these properties will result in an error in 1.107. Provideoptions.tileHeight
andoptions.tileWidth
, or useSingleTileImageryProvider.fromUrl
instead.SingleTileImageryProvider.ready
andSingleTileImageryProvider.readyPromise
have been removed. UseSingleTileImageryProvider.fromUrl
instead.TileCoordinatesImageryProvider.ready
andTileCoordinatesImageryProvider.readyPromise
have been removed.TileMapServiceImageryProvider
constructor parameteroptions.url
,TileMapServiceImageryProvider.ready
, andTileMapServiceImageryProvider.readyPromise
have been removed. UseTileMapServiceImageryProvider.fromUrl
instead.UrlTemplateImageryProvider.reinitialize
,UrlTemplateImageryProvider.ready
, andUrlTemplateImageryProvider.readyPromise
have been removed.WebMapServiceImageryProvider.ready
, andWebMapServiceImageryProvider.readyPromise
have been removed.WebMapTileServiceImageryProvider.ready
, andWebMapTileServiceImageryProvider.readyPromise
have been removed.TerrainProvider.ready
andTerrainProvider.readyPromise
have been removed.createWorldImagery
was removed. UsecreateWorldImageryAsync
instead.ArcGISTiledElevationTerrainProvider
constructor parameteroptions.url
,ArcGISTiledElevationTerrainProvider.ready
, andArcGISTiledElevationTerrainProvider.readyPromise
have been removed. UseArcGISTiledElevationTerrainProvider.fromUrl
instead.CesiumTerrainProvider
constructor parameteroptions.url
,CesiumTerrainProvider.ready
, andCesiumTerrainProvider.readyPromise
have been removed. UseCesiumTerrainProvider.fromIonAssetId
orCesiumTerrainProvider.fromUrl
instead.CustomHeightmapTerrainProvider.ready
, andCustomHeightmapTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104.EllipsoidTerrainProvider.ready
, andEllipsoidTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104.GoogleEarthEnterpriseMetadata
constructor parameteroptions.url
andGoogleEarthEnterpriseMetadata.readyPromise
have been removed. UseGoogleEarthEnterpriseMetadata.fromUrl
instead.GoogleEarthEnterpriseTerrainProvider
constructor parametersoptions.url
andoptions.metadata
,GoogleEarthEnterpriseTerrainProvider.ready
, andGoogleEarthEnterpriseTerrainProvider.readyPromise
have been removed. UseGoogleEarthEnterpriseTerrainProvider.fromMetadata
instead.VRTheWorldTerrainProvider
constructor parameteroptions.url
,VRTheWorldTerrainProvider.ready
, andVRTheWorldTerrainProvider.readyPromise
have been removed. UseVRTheWorldTerrainProvider.fromUrl
instead.createWorldTerrain
was removed. UsecreateWorldTerrainAsync
instead.Cesium3DTileset
constructor parameteroptions.url
,Cesium3DTileset.ready
, andCesium3DTileset.readyPromise
have been removed. UseCesium3DTileset.fromUrl
instead.createOsmBuildings
was removed. UsecreateOsmBuildingsAsync
instead.Model.fromGltf
,Model.readyPromise
, andModel.texturesLoadedPromise
have been removed. UseModel.fromGltfAsync
,Model.readyEvent
,Model.errorEvent
, andModel.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 parameteroptions.url
,I3SDataProvider.ready
, andI3SDataProvider.readyPromise
have been removed. UseI3SDataProvider.fromUrl
instead.TimeDynamicPointCloud.readyPromise
was removed. UseTimeDynamicPointCloud.frameFailed
to track any errors.VoxelProvider.ready
andVoxelProvider.readyPromise
have been removed.VoxelPrimitive.eadyPromise
have been removed.Cesium3DTilesVoxelProvider
construction parameteroptions.url
,Cesium3DTilesVoxelProvider.ready
, andCesium3DTilesVoxelProvider.readyPromise
have been removed. UseCesium3DTilesVoxelProvider.fromUrl
instead.Primitive.readyPromise
,ClassificationPrimitive.readyPromise
,GroundPrimitive.readyPromise
, andGroundPolylinePrimitive.readyPromise
have been removed. Wait forPrimitive.ready
,ClassificationPrimitive.ready
,GroundPrimitive.ready
, orGroundPolylinePrimitive.ready
to return true instead.CreditDisplay.addCredit
,CreditDisplay.addDefaultCredit
, andCreditDisplay.removeDefaultCredit
have been removed. UseCreditDisplay.addCreditToNextFrame
,CreditDisplay.addStaticCredit
, andCreditDisplay.removeStaticCredit
respectively instead.
Additions 🎉
- Added
Cesium3DTileset.cacheBytes
andCesium3DTileset.maximumCacheOverflowBytes
to better control memory usage. To replicate previous behavior, convertmaximumMemoryUsage
from MB to bytes, assign the value tocacheBytes
, and setmaximumCacheOverflowBytes = 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. UseCesium3DTileset.cacheBytes
andCesium3DTileset.maximumCacheOverflowBytes
instead. #11310
@cesium/widgets
Breaking Changes 📣
Viewer
constructor optionoptions.imageryProvider
has been deprecated in CesiumJS 1.104. It will be removed in 1.107. Useoptions.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
, andArcGisBaseMapType
, andArcGisMapService
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
andCreditDisplay.removeStaticCredit
such thatCredit.showOnScreen
value is taken into account. #6215 - Added
options.gltfCallback
toModel.loadGltfAsync
to allow apps to access the loaded glTF JSON. #11240 - Added
GeocoderService.credit
and andattributions
property toGeocoderService.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
andcamera.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 returnsundefined
. #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
, andCreditDisplay.removeDefaultCredit
have been deprecated in CesiumJS 1.105. They will be removed in 1.107. UseCreditDisplay.addCreditToNextFrame
,CreditDisplay.addStaticCredit
, andCreditDisplay.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
, andCesium3DTilesVoxelProvider.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
inResource.retryCallback
. #11177 - Fixed issue when render
OrthographicFrustum
geometry byDebugCameraPrimitive
. #11159 - Fixed ion URL in
RequestScheduler
throttling overrides. #11193 - Fixed
SingleTileImageryProvider
fetching image whenshow
isfalse
by allowing lazy-loading forSingleTileImageryProvider
iftileWidth
andtileHeight
are provided to the constructor. #9529 - Fixed various race conditions from async operations. #10909
Deprecated ⏳
CesiumWidget
constructor optionoptions.imageryProvider
has been deprecated in CesiumJS 1.104. It will be removed in 1.107. Useoptions.baseLayer
instead.ImageryProvider.ready
andImageryProvider.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. UseImageryLayer.alpha
,ImageryLayer.nightAlpha
,ImageryLayer.dayAlpha
,ImageryLayer.brightness
,ImageryLayer.contrast
,ImageryLayer.hue
,ImageryLayer.saturation
,ImageryLayer.gamma
,ImageryLayer.minificationFilter
,ImageryLayer.magnificationFilter
instead.ImageryLayer.getViewableRectangle
was deprecated in CesiumJS 1.104. It will be removed in 1.107. UseImageryLayer.getImageryRectangle
instead.ArcGisMapServerImageryProvider
constructor parameterurl
,ArcGisMapServerImageryProvider.ready
, andArcGisMapServerImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseArcGisMapServerImageryProvider.fromUrl
instead.BingMapsImageryProvider
constructor parameterurl
,BingMapsImageryProvider.ready
, andBingMapsImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseBingMapsImageryProvider.fromUrl
instead.GoogleEarthEnterpriseImageryProvider
constructor parametersoptions.url
andoptions.metadata
,GoogleEarthEnterpriseImageryProvider.ready
, andGoogleEarthEnterpriseImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseGoogleEarthEnterpriseImageryProvider.fromMetadata
instead.GoogleEarthEnterpriseMapsProvider
constructor parametersoptions.url
andoptions.channel
,GoogleEarthEnterpriseMapsProvider.ready
, andGoogleEarthEnterpriseMapsProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseGoogleEarthEnterpriseMapsProvider.fromUrl
instead.GridImageryProvider.ready
andGridImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.IonImageryProvider
constructor parameterassetId
,BIonImageryProvider.ready
, andIonImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseIonImageryProvider.fromAssetId
instead.MapboxImageryProvider.ready
andMapboxImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.MapboxStyleImageryProvider.ready
andMapboxStyleImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.OpenStreetMapImageryProvider.ready
andOpenStreetMapImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.SingleTileImageryProvider
constructor parametersoptions.tileHeight
andoptions.tileWidth
became required in CesiumJS 1.104. Omitting these properties will result in an error in 1.107. Provideoptions.tileHeight
andoptions.tileWidth
, or useSingleTileImageryProvider.fromUrl
instead.SingleTileImageryProvider.ready
andSingleTileImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseSingleTileImageryProvider.fromUrl
instead.TileCoordinatesImageryProvider.ready
andTileCoordinatesImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.TileMapServiceImageryProvider
constructor parameteroptions.url
,TileMapServiceImageryProvider.ready
, andTileMapServiceImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseTileMapServiceImageryProvider.fromUrl
instead.UrlTemplateImageryProvider.reinitialize
,UrlTemplateImageryProvider.ready
, andUrlTemplateImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.WebMapServiceImageryProvider.ready
, andWebMapServiceImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.WebMapTileServiceImageryProvider.ready
, andWebMapTileServiceImageryProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.TerrainProvider.ready
andTerrainProvider.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. UsecreateWorldImageryAsync
instead.ArcGISTiledElevationTerrainProvider
constructor parameteroptions.url
,ArcGISTiledElevationTerrainProvider.ready
, andArcGISTiledElevationTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseArcGISTiledElevationTerrainProvider.fromUrl
instead.CesiumTerrainProvider
constructor parameteroptions.url
,CesiumTerrainProvider.ready
, andCesiumTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseCesiumTerrainProvider.fromIonAssetId
orCesiumTerrainProvider.fromUrl
instead.CustomHeightmapTerrainProvider.ready
, andCustomHeightmapTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104.EllipsoidTerrainProvider.ready
, andEllipsoidTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104.GoogleEarthEnterpriseMetadata
constructor parameteroptions.url
andGoogleEarthEnterpriseMetadata.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseGoogleEarthEnterpriseMetadata.fromUrl
instead.GoogleEarthEnterpriseTerrainProvider
constructor parametersoptions.url
andoptions.metadata
,GoogleEarthEnterpriseTerrainProvider.ready
, andGoogleEarthEnterpriseTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseGoogleEarthEnterpriseTerrainProvider.fromMetadata
instead.VRTheWorldTerrainProvider
constructor parameteroptions.url
,VRTheWorldTerrainProvider.ready
, andVRTheWorldTerrainProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseVRTheWorldTerrainProvider.fromUrl
instead.createWorldTerrain
was deprecated in CesiumJS 1.104. It will be removed in 1.107. UsecreateWorldTerrainAsync
instead.Cesium3DTileset
constructor parameteroptions.url
,Cesium3DTileset.ready
, andCesium3DTileset.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseCesium3DTileset.fromUrl
instead.createOsmBuildings
was deprecated in CesiumJS 1.104. It will be removed in 1.107. UsecreateOsmBuildingsAsync
instead.Model.fromGltf
,Model.readyPromise
, andModel.texturesLoadedPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseModel.fromGltfAsync
,Model.readyEvent
,Model.errorEvent
, andModel.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 parameteroptions.url
,I3SDataProvider.ready
, andI3SDataProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseI3SDataProvider.fromUrl
instead.TimeDynamicPointCloud.readyPromise
was deprecated in CesiumJS 1.104. It will be removed in 1.107. UseTimeDynamicPointCloud.frameFailed
to track any errors.VoxelProvider.ready
andVoxelProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107.Cesium3DTilesVoxelProvider
construction parameteroptions.url
,Cesium3DTilesVoxelProvider.ready
, andCesium3DTilesVoxelProvider.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. UseCesium3DTilesVoxelProvider.fromUrl
instead.Primitive.readyPromise
,ClassificationPrimitive.readyPromise
,GroundPrimitive.readyPromise
, andGroundPolylinePrimitive.readyPromise
were deprecated in CesiumJS 1.104. They will be removed in 1.107. Wait forPrimitive.ready
,ClassificationPrimitive.ready
,GroundPrimitive.ready
, orGroundPolylinePrimitive.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
forimageryProvider
inViewer.ConstructorOptions
. #11179
Deprecated ⏳
Viewer
constructor optionoptions.imageryProvider
has been deprecated in CesiumJS 1.104. It will be removed in 1.107. Useoptions.baseLayer
instead.
1.103 - 2023-03-01
@cesium/engine
Additions 🎉
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
totrue
when providingContextOptions
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
totrue
when providingContextOptions
as shown below:const viewer = new Viewer("cesiumContainer", { contextOptions: { requestWebgl1: true, }, });
@cesium/engine
Additions 🎉
- Added
vertexShadowDarkness
parameter toGlobe
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 whenscaleByDistance
was set to aNearFarScalar
. #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 theowner
property set. #10921 - Fixed the JSDoc and TypeScript definitions of arguments in
Matrix2.multiplyByScalar
,Matrix3.multiplyByScalar
, and several functions in theS2Cell
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. UseContextOptions.requestWebgl1
to request a WebGL1 or WebGL2 context.
@cesium/widgets
Additions 🎉
- Added
viewerVoxelInspectorMixin
andVoxelInspector
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
andpackages/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 combinedCesium.js
file (import { Cartesian3 } from "Source/Cesium.js";
);
- The source code has been paritioned into two folders:
Breaking Changes 📣
- The viewer parameter in
KmlTour.prototype.play
was removed. Instead of aViewer
, pass aCesiumWidget
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
andpackages/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 combinedCesium.js
file (import { Cartesian3 } from "Source/Cesium.js";
);
- The source code will been paritioned into two folders:
Breaking Changes 📣
- The polyfills
requestAnimationFrame
andcancelAnimationFrame
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 aViewer
, pass aCesiumWidget
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. UseModel.fromGltf()
instead. #10778 - The
.getPropertyNames
methods ofCesium3DTileFeature
,Cesium3DTilePointFeature
, andModelFeature
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 with3DTILES_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
Viewer
s. #10828 - Fixed a bug where camera would not follow the
Viewer.trackedEntity
if it had a model with aHeightReference
other thanNONE
. #10805 - Fixed a bug where calling
removeAll
on aClippingPlaneCollection
attached to aModel
would cause a crash. #10827 - Fixed a bug where replacing a
Model
’sClippingPlaneCollection
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:
- User-defined GLSL shaders via
CustomShader
- Support for 3D Tiles Next metadata extensions:
EXT_structural_metadata
,EXT_mesh_features
andEXT_instance_features
- Support for
EXT_mesh_gpu_instancing
- Support for
EXT_meshopt_compression
- Texture caching across different tiles
- Numerous bug fixes
- User-defined GLSL shaders via
- Usage notes for the new glTF architecture:
- Those using
ModelExperimental.fromGltf()
should now useModel.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.
- Those using
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
andKHR_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), andModel.dequantizeInShader
(constructor option) have been removed.ModelMesh
andModelMaterial
have been removed.new Model()
is an internal constructor and must not be used directly. UseModel.fromGltf()
instead. #10778
Additions 🎉
Model
can now classify other assets with a givenclassificationType
. #10623Model
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 inpackage.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 anEntity
withModelGraphics
withHeightReference.CLAMP_TO_GROUND
orHeightReference.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 anorientation
and aRectangle
value fordestination
. #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 from12.5MB
to8.4MB
unminified and from4.3MB
to3.6MB
minified.Cesium.js.map
has gone from22MB
to17.2MB
. - If you were ingesting individual ESM-style modules from the combined file
Build/Cesium/Cesium.js
orBuild/CesiumUnminified/Cesium.js
, instead useBuild/Cesium/index.js
orBuild/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 eitherBuild/Cesium
orBuild/CesiumUnminified
.
- Built
Breaking Changes 📣
Model.boundingSphere
now returns the bounding sphere in ECEF coordinates instead of the local coordinate system. #10589Cesium3DTileStyle.readyPromise
andCesium3DTileStyle.ready
have been removed. If loading a style from a url, useCesium3DTileStyle.fromUrl
instead. #10348
Additions 🎉
- Models and tilesets that use the
CESIUM_primitive_outline
extension can now toggle outlines at runtime with theshowOutline
property. Furthermore, the color of the outlines can now be controlled by theoutlineColor
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
andEXT_structural_metadata
extensions withoutchannels
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 usingModelExperimental
. #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 aCesium3DTileset
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 byModelExperimental
. #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
andcancelAnimationFrame
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 setprojectTo2D
to true in order to be accurately projected and rendered in 2D / CV mode. #10440
Additions 🎉
- Memory statistics for
ModelExperimental
now appear in theCesium3DTilesInspector
. This includes binary metadata memory, which is not counted byModel
. #10397 - Memory statistics for
ResourceCache
(used byModelExperimental
) now appear in theCesium3DTilesInspector
. #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
andmodelForwardAxis
constructor options toCesium3DTileset
#10439 - Added
heightReference
toModelExperimental
. #10448 - Added
silhouetteSize
andsilhouetteColor
toModelExperimental
. #10457 - Added support for mipmapped textures in
ModelExperimental
. #10231 - Added
distanceDisplayCondition
toModelExperimental
. #10481 - Added support for
AGI_articulations
toModelExperimental
. #10479 - Added
credit
toModelExperimental
. #10489 - Added
asynchronous
toModelExperimental.fromGltf
. #10490 - Added
id
toModelExperimental
. #10491 ExperimentalFeatures.enableModelExperimental
now enablesModelExperimental
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 ofCesium3DTileFeature
,Cesium3DTilePointFeature
, andModelFeature
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
andCesium3DTileset
. #10388 - Models and tilesets rendered with
ModelExperimental
must setenableDebugWireframe
to true in order fordebugWireframe
to work in WebGL1. #10344 - Removed
ImagerySplitPosition
andScene.imagerySplitPosition
. UseSplitDirection
andScene.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
andModelAnimation.animationTime
to allow explicit control over a model’s animations. #9339 - Replaced
options.gltf
withoptions.url
inModelExperimental.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 defaultstRotation
-based texture coordinate calculation behaviour with the provided texture coordinates, specified in the form of aPolygonHierarchy
ofCartesian2
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 itsreadyPromise
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 ofstring
orResource
type have been deprecated and will be removed in CesiumJS 1.96. If loading a style from a url, useCesium3DTileStyle.fromUrl
instead. #10348Cesium3DTileStyle.readyPromise
andCesium3DTileStyle.ready
have been deprecated and will be removed in CesiumJS 1.96. If loading a style from a url, useCesium3DTileStyle.fromUrl
instead. #10348Model.gltf
,Model.basePath
,Model.pendingTextureLoads
(properties), andModel.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, useCustomShader
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
toModelExperimental
. #10332 - Added
GeoJsonSource.process
to support adding features without removing existing entities, similar toCzmlDataSource.process
. #9275 KmlDataSource
now exposes thecamera
andcanvas
properties, which are used to provide information about the state of theViewer
when making network requests for aLink
. Passing these values in the constructor is now optional.- Prevent text selection in the Timeline widget. #10325
Fixes 🔧
- Fixed
GoogleEarthEnterpriseImageryProvider.requestImagery
,GridImageryProvider.requestImagery
, andTileCoordinateImageryProvider.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 usingModelExperimental
. #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
. AnyPromise
in the Cesium API has changed to the nativePromise
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 inCustomShader
#10228 - Added partial support for
EXT_structural_metadata
property textures inCustomShader
#10247 - Added
minimumPixelSize
,scale
, andmaximumScale
toModelExperimental
. #10092 Cesium3DTileset
now has asplitDirection
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
toModelExperimental
#10207 - Added image-based lighting to
ModelExperimental
. #10234 - Added clipping planes to
ModelExperimental
. #10250 - Added
Cartesian2.clamp
,Cartesian3.clamp
, andCartesian4.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
andcontent.group.metadata
are more symmetric withcontent.metadata
andtile.metadata
. #10224
Fixes 🔧
- Fixed
Scene
documentation formsaaSamples
property. #10205 - Fixed a bug where
pnts
tiles would crash whenCesium.ExperimentalFeatures.enableModelExperimental
was true. #10183 - Fixed an issue with Firefox and dimensionless SVG images. #9191
- Fixed
ShadowMap
documentation foroptions.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
andScene.imagerySplitPosition
have been deprecated and will be removed in CesiumJS 1.94. UseSplitDirection
andScene.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. AnyPromise
returned from a function as of 1.92 will switch the nativePromise
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 themsaaSamples
option and can be controlled throughScene.msaaSamples
. - glTF contents now use
ModelExperimental
by default. #10055 - Added the ability to toggle back-face culling in
ModelExperimental
. #10070 - Added
depthPlaneEllipsoidOffset
toViewer
andScene
constructors to address rendering artifacts below the WGS84 ellipsoid. #9200 - Added support for
debugColorTiles
inModelExperimental
. #10071 - Added support for shadows in
ModelExperimental
. #10077 - Added
packArray
andunpackArray
for matrix types. #10118 - Added more affine transformation helper functions to
Matrix2
,Matrix3
, andMatrix4
. #10124- Added
setScale
,setUniformScale
,setRotation
,getRotation
, andmultiplyByUniformScale
toMatrix2
. - Added
setScale
,setUniformScale
,setRotation
, andmultiplyByUniformScale
toMatrix3
. - Added
setUniformScale
,setRotation
,getRotation
, andfromRotation
toMatrix4
.
- Added
- Added
AxisAlignedBoundingBox.fromCorners
. #10130 - Added
BoundingSphere.fromTransformation
. #10130 - Added
OrientedBoundingBox.fromTransformation
,OrientedBoundingBox.computeCorners
, andOrientedBoundingBox.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
intoDocumentation/CustomShaderGuide/
to make it more discoverable. #10054 - Added getters
Cesium3DTileFeature.featureId
andModelFeature.featureId
so the feature ID or batch ID can be accessed from a picked feature. #10022 - Added
I3dmLoader
to transcode .i3dm toModelExperimental
. #9968 - Added
PntsLoader
to transcode .pnts toModelExperimental
. #9978 - Added point cloud attenuation support to
ModelExperimental
. #9998
Fixes 🔧
- Fixed an error when loading GeoJSON with null
stroke
orfill
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 toundefined
to clarify that this is disallowed. #9998 - Fixes handling .b3dm
_BATCHID
accessors inModelExperimental
#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
andCesiumInspectorViewModel.pickDepth
. #9965 barycentricCoordinates
returnsundefined
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 toWebMapServiceImageryProvider
which reads the getFeatureInfo request URL for WMS service if it differs with the getCapabilities URL. #9563 - Added
tileset.enableModelExperimental
so tilesets withModel
andModelExperimental
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 inheading
. #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 🎉
- Added experimental implementations of 3D Tiles Next. The following extensions are supported:
- 3DTILES_content_gltf for using glTF models directly as tile contents
- 3DTILES_metadata for adding structured metadata to tilesets, tiles, or groups of tile content
- EXT_mesh_features for adding feature identification and feature metadata to glTF models
- 3DTILES_implicit_tiling for a compact representation of quadtrees and octrees
- 3DTILES_bounding_volume_S2 for S2 bounding volumes
- 3DTILES_multiple_contents for storing multiple contents within a single tile
- Added
ModelExperimental
, a new experimental architecture for loading glTF models. It is disabled by default; setExperimentalFeatures.enableModelExperimental = true
to enable it. - Added
CustomShader
class for stylingCesium3DTileset
orModelExperimental
with custom GLSL shaders - Added Sandcastle examples for 3D Tiles Next: Photogrammetry Classification, CDB Yemen, and S2 Globe
1.87 - 2021-11-01
Additions 🎉
- Added
ScreenOverlay
support toKmlDataSource
. #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
andoptions.terrainExaggeration
forCesiumWidget
,Viewer
, andScene
, which were deprecated in CesiumJS 1.83. UseGlobe.terrainExaggeration
instead.
Additions 🎉
- Added
CloudCollection
andCumulusCloud
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 toCesium3DTileFeature
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
andMaterial.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 handlehalfAxes
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
inBoundingSphere
. #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
andWebGLConstants
enums from WebGL extensionsWEBGL_compressed_texture_etc
,WEBGL_compressed_texture_astc
, andEXT_texture_compression_bptc
.
- Added support for glTF models with the
- Added dynamic terrain exaggeration with
Globe.terrainExaggeration
andGlobe.terrainExaggerationRelativeHeight
. #9603 - Added
CustomHeightmapTerrainProvider
, a simpleTerrainProvider
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 toShadowMap
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
, andKmlTourWait
. Added documentation and akmlTours
getter toKmlDataSource
. Removed references toKmlTourSoundCues
. #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
andtangentToEyeMatrix
properties for custom materials were not set inGlobeFS
. #9597 - Fixed misleading documentation in
Matrix4.inverse
andMatrix4.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
andshow
inCesium3DTileStyle
. A defaultcolor
value is used if nocolor
conditions are given. The default value forshow
,true
, is used if noshow
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
andoptions.terrainExaggeration
forCesiumWidget
,Viewer
, andScene
have been deprecated and will be removed in CesiumJS 1.85. They will be replaced withGlobe.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
andFeatureDetection.supportsBigInt
.
Fixes 🔧
- Fixed
processTerrain
indecodeGoogleEarthEnterprisePacket
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
andloadKTX
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. UseCesium3DTileset.resource.url
to retrieve the url value. - Removed
EasingFunction.QUADRACTIC_IN
, which was deprecated in CesiumJS 1.77. UseEasingFunction.QUADRATIC_IN
. - Removed
EasingFunction.QUADRACTIC_OUT
, which was deprecated in CesiumJS 1.77. UseEasingFunction.QUADRATIC_OUT
. - Removed
EasingFunction.QUADRACTIC_IN_OUT
, which was deprecated in CesiumJS 1.77. UseEasingFunction.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
andsampleTerrainMostDetailed
not working forArcGISTiledElevationTerrainProvider
. #9286 - Consistent with the spec, CZML
polylineVolume
now expects its shape positions to specified using thecartesian2
property. Use of thecartesian
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
, andPolylineCollection.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, useCesium3DTileset.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
, orsilhouetteSize
would trigger an error. #9271
Deprecated ⏳
EasingFunction.QUADRACTIC_IN
was deprecated and will be removed in Cesium 1.79. It has been replaced withEasingFunction.QUADRATIC_IN
. #9220EasingFunction.QUADRACTIC_OUT
was deprecated and will be removed in Cesium 1.79. It has been replaced withEasingFunction.QUADRATIC_OUT
. #9220EasingFunction.QUADRACTIC_IN_OUT
was deprecated and will be removed in Cesium 1.79. It has been replaced withEasingFunction.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 andtileset.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
andMatrix4.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 theMapboxImageryProvider
orMapboxStyleImageryProvider
constructors. - Removed
BingMapsApi
, which was deprecated in CesiumJS 1.72. Pass your access key directly to theBingMapsImageryProvider
orBingMapsGeocoderService
constructors.
Additions 🎉
- Added support for the CSS
line-height
specifier in thefont
property of aLabel
. #8954 Viewer
now has default pick handling forCesium3DTileFeature
data and will display its properties in the default ViewerInfoBox
as well as setViewer.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 usingMapboxImageryProvider
orMapboxStyleImageryProvider
, useoptions.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 toCesium3DTileset
andModel
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 theResource
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 missingdefaultNightAlpha
anddefaultDayAlpha
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 usingXXXGeometry
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 listedresult
as required. #8904 - Fixed JSDoc and TypeScript type definitions for
EllipsoidTangentPlane.fromPoints
, which takes an array ofCartesian3
, not a single instance. #8928 - Fixed JSDoc and TypeScript type definitions for
EntityCollection.getById
andCompositeEntityCollection.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.
- Explore it on Sandcastle.
- Add it to your CesiumJS app:
viewer.scene.primitives.add(Cesium.createOsmBuildings())
. - Contains per-feature data like building name, address, and much more. Read more about the available properties.
- 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
andGlobe.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
- Added options for controlling globe translucency through the new
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
anddayAlpha
properties toImageryLayer
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 toDebugCameraPrimitive
. 8849 - Supported
#rgba
and#rrggbbaa
formats inColor.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 theCamera
. #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. Usescene.light.color
andscene.light.intensity
instead. #8774 - Removed
isArray
. Use the nativeArray.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 forceminimumLevel
to 0 if thetilemapresource.xml
metadata request fails and therectangle
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 nowfalse
by default. #8631- glTF models are now rendered using the
LEQUALS
depth test function instead ofLESS
. 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 newCesium3DTilesetGraphics
class. #8580 - Added
tileset.uri
,tileset.show
, andtileset.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 aWebMercatorTilingScheme
by specifying"projection": "EPSG:3857"
inlayer.json
. It also now supports numbering tiles from the North instead of the South by specifying"scheme": "slippyMap"
inlayer.json
. #8563- Added basic support for
isNaN
,isFinite
,null
, andundefined
in the 3D Tiles styling GLSL backend for point clouds. #8621 - Added
sizeInMeters
toParticleSystem
. #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 nativeArray.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. Usescene.light.color
andscene.light.intensity
instead. #8493
Additions 🎉
useBrowserRecommendedResolution
flag inViewer
andCesiumWidget
now defaults totrue
. This ensures Cesium rendering is fast and smooth by default across all devices. Set it tofalse
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 ofhigh-performance
. Some browsers use this setting to enable a second, more powerful, GPU. You can set it back todefault
, or opt-in tolow-power
mode, by passing the context option when creating aViewer
orCesiumWidget
instance:
var viewer = new Viewer("cesiumContainer", {
contextOptions: {
webgl: {
powerPreference: "default",
},
},
});
- Added more customization to Cesium’s lighting system. #8493
- Added
Light
,DirectionalLight
, andSunLight
classes for creating custom light sources. - Added
Scene.light
for setting the scene’s light source, which defaults to aSunLight
. - 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 whenGlobe.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.
- Added
- 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
andmagnificationFilter
options toMaterial
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 aninstanceIndex
is out of range error. #8546 - Fixed issue where
RequestScheduler
double-counted image requests made viacreateImageBitmap
. #8162 - Reduced Cesium bundle size by avoiding unnecessarily importing
Cesium3DTileset
inPicking.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 theoffset
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
, andPerspectiveOffCenterFrustum.getPixelDimensions
now require apixelRatio
argument before theresult
argument. The previous function definition has been deprecated since 1.63. #8320- The function
Matrix4.getRotation
has been renamed toMatrix4.getMatrix3
.Matrix4.getRotation
has been deprecated since 1.62. #8183 createTileMapServiceImageryProvider
andcreateOpenStreetMapImageryProvider
have been removed. Instead, pass the same options tonew TileMapServiceImageryProvider
andnew 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.
- Sandcastle -
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
andBuild/CesiumUnminified/Cesium.js
have been upgraded from IIFE to UMD modules that support IIFE, AMD, and commonjs. - Added
pixelRatio
parameter toOrthographicFrustum.getPixelDimensions
,OrthographicOffCenterFrustum.getPixelDimensions
,PerspectiveFrustum.getPixelDimensions
, andPerspectiveOffCenterFrustum.getPixelDimensions
. Pass inscene.pixelRatio
for dimensions in CSS pixel units or1.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
andscene.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
ormaximumCone
. #8277 - Fixed rendering billboard collections containing more than 65536 billboards. #8325
Deprecated ⏳
OrthographicFrustum.getPixelDimensions
,OrthographicOffCenterFrustum.getPixelDimensions
,PerspectiveFrustum.getPixelDimensions
, andPerspectiveOffCenterFrustum.getPixelDimensions
now take apixelRatio
argument before theresult
argument. The previous function definition will no longer work in 1.65. #8237
1.62 - 2019-10-01
Deprecated ⏳
createTileMapServiceImageryProvider
andcreateOpenStreetMapImageryProvider
have been deprecated and will be removed in Cesium 1.65. Instead, pass the same options tonew TileMapServiceImageryProvider
andnew OpenStreetMapImageryProvider
respectively.- The function
Matrix4.getRotation
has been deprecated and renamed toMatrix4.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
, andmaximumCone
. This affects bothEllipsoidGeometry
andEllipsoidOutlineGeometry
. See the updated Sandcastle example. #5995 - Added
useBrowserRecommendedResolution
flag toViewer
andCesiumWidget
. 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
andOpenStreetMapImageryProvider
classes to improve API consistency: #4812 - Added
credit
parameter toCzmlDataSource
,GeoJsonDataSource
,KmlDataSource
andModel
. #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
andBlendingState.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 forPrimitive
#8044
1.61 - 2019-09-03
Additions 🎉
- Added optional
index
parameter toPrimitiveCollection.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 toDataSourceCollection
allowing to retrieveDataSource
s 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 toLabel
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 aPolygonHierarchy
when set, so code that accesses the value of the property can rely on it always being aPolygonHierarchy
.- 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
tobox
,cylinder
, andellipsoid
, and added CZML support forclassificationType
tocorridor
,ellipse
,polygon
,polyline
, andrectangle
. #7899 - Adds
exportKML
function to exportEntity
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
valuesROAD_ON_DEMAND
andAERIAL_WITH_LABELS_ON_DEMAND
. The older versions of these,ROAD
andAERIAL_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 usesDiscardEmptyTileImagePolicy
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
ofCLAMP_TO_GROUND
orRELATIVE_TO_GROUND
. This includes when removing aDataSource
. - 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 tofalse
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
- Added new parameter to
PolylineGlowMaterial
calledtaperPower
, that works similar to the existingglowPower
parameter, to taper the back of the line away. #7626 - Added
Cesium3DTileset.preloadWhenHidden
tileset option to preload tiles whentileset.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
andSampledPositionProperty
. #7723 - Added support for color-to-alpha with a threshold on imagery layers. #7727
- Add CZML processing for
heightReference
andextrudedHeightReference
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
orsampleHeightMostDetailed
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 apreferImageBitmap
option to usecreateImageBitmap
when supported to move image decode off the main thread. This option defaults tofalse
.
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 anImage
by default, instead of anImageBitmap
when supported. Note that anImageBitmap
cannot be flipped during texture upload. Instead, setflipY : true
during fetch to flip it. - Changed the default
flipY
option inResource.fetchImage
to false. This only has an effect when ImageBitmap is used.
- Changed
1.56 - 2019-04-01
Breaking Changes 📣
Resource.fetchImage
now returns anImageBitmap
instead ofImage
when supported. This allows for decoding images while fetching usingcreateImageBitmap
to greatly speed up texture upload and decrease frame drops when loading models with large textures. #7579Cesium3DTileStyle.style
now has an emptyObject
as its default value, instead ofundefined
. #7567Scene.clampToHeight
now takes an optionalwidth
argument before theresult
argument. #7693- In the
Resource
class,addQueryParameters
andaddTemplateValues
have been removed. Please usesetQueryParameters
andsetTemplateValues
instead. #7695
Deprecated ⏳
Resource.fetchImage
now takes an options object. Useresource.fetchImage({ preferBlob: true })
instead ofresource.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 aflipY
option to vertically flip an image during fetch & decode. It is only valid whenImageBitmapOptions
is supported by the browser. #7579- Added
backFaceCulling
andnormalShading
options toPointCloudShading
. 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
beingNaN
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
whereanchorLineColor
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 forpolyline
andpolygon
, which supersedesfollowSurface
.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
forGroundPrimitive
,CorridorGraphics
,EllipseGraphics
,PolygonGraphics
andRectangleGraphics
is nowClassificationType.BOTH
. #7434 - The properties
ModelAnimation.speedup
andModelAnimationCollection.speedup
have been removed. UseModelAnimation.multiplier
andModelAnimationCollection.multiplier
respectively instead. #7494
Deprecated ⏳
Scene.clampToHeight
now takes an optionalwidth
argument before theresult
argument. The previous function definition will no longer work in 1.56. #7287PolylineGeometry.followSurface
has been superceded byPolylineGeometry.arcType
. The previous definition will no longer work in 1.57. ReplacefollowSurface: false
witharcType: Cesium.ArcType.NONE
andfollowSurface: true
witharcType: Cesium.ArcType.GEODESIC
. #7492SimplePolylineGeometry.followSurface
has been superceded bySimplePolylineGeometry.arcType
. The previous definition will no longer work in 1.57. ReplacefollowSurface: false
witharcType: Cesium.ArcType.NONE
andfollowSurface: true
witharcType: Cesium.ArcType.GEODESIC
. #7492
Additions 🎉
- Added support for textured ground entities (entities with unspecified
height
) andGroundPrimitives
on 3D Tiles. #7434 - Added support for polylines on 3D Tiles. #7437
- Added
classificationType
property toPolylineGraphics
andGroundPolylinePrimitive
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
, andScene.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 toEllipsoidGeodesic
. #7484 - Added rhumb line support to
PolygonGeometry
,PolygonOutlineGeometry
,PolylineGeometry
,GroundPolylineGeometry
, andSimplePolylineGeometry
. #7492 - When using Cesium in Node.js, we now use the combined and minified version for improved performance unless
NODE_ENV
is specifically set todevelopment
. - 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
toundefined
would cause a crash. #7477 - Fixed
PrimitiveCollection.removeAll
to no longercontain
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 9Cartesian3
spherical harmonics coefficients for the diffuse irradiance of all PBR models in the scene.- The
specularEnvironmentMaps
andsphericalHarmonicCoefficients
properties ofModel
andCesium3DTileset
can be used to override the values from the scene for specific models and tilesets. - The
luminanceAtZenith
property ofModel
andCesium3DTileset
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 implementavailability
must now also implement theloadTileDataAvailability
method.
Deprecated ⏳
- The property
ModelAnimation.speedup
has been deprecated and renamed toModelAnimation.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 ofScene.sampleHeight
that uses the maximum level of detail for 3D Tiles. - Added
Scene.clampToHeightMostDetailed
, an asynchronous version ofScene.clampToHeight
that uses the maximum level of detail for 3D Tiles.
- Added
- 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
toIntersections2D
. #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
toImageryLayer
, which allows cutting out rectangular areas in imagery layers to reveal underlying imagery. #7056 - Added
atmosphereHueShift
,atmosphereSaturationShift
, andatmosphereBrightnessShift
properties toGlobe
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 toCesium3DTileset
,Model
, andModelGraphics
to change the intensity of the light used when shading model. #7025 - Added
imageBasedLightingFactor
property toCesium3DTileset
,Model
, andModelGraphics
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 aHeadingPitchRoll
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 aftersampleHeight
orclampToHeight
. #7113 - Fixed an issue where
sampleHeight
andclampToHeight
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
orWEBKIT_WEBGL_depth_texture
). AddedScene.sampleHeightSupported
andScene.clampToHeightSupported
functions for checking if height sampling is supported.
- Added
- 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
toGlobe
. Use this to limit terrain and imagery to a specificRectangle
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
andGlobe.nightFadeInDistance
to configure when ground atmosphere night lighting fades in and out. 6877
- Added
- Added
onStop
event toClock
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 makeGlobe.pick
work in 2D and Columbus View. UseGlobe.pickWorldCoordinates
to get the position in world coordinates that correlate to the current scene mode. #6859 - Removed the unused
frameState
parameter inevaluate
andevaluateColor
functions inExpression
,StyleExpression
,ConditionsExpression
and all other places that call the functions. #6890 - Removed
PostProcessStageLibrary.createLensFlarStage
. UsePostProcessStageLibrary.createLensFlareStage
instead. #6972 - Removed
Scene.fxaa
. UseScene.postProcessStages.fxaa.enabled
instead. #6980
Additions 🎉
- Added
heightReference
toBoxGraphics
,CylinderGraphics
andEllipsoidGraphics
, 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
andClippingPlaneCollection.planeRemoved
events.planeAdded
is raised when a new plane is added to the collection andplaneRemoved
is raised when a plane is removed. #6875 - Added
Matrix4.setScale
for setting the scale on an affine transformation matrix #6888 - Added optional
width
andheight
toScene.drillPick
for specifying a search area. #6922 - Added
Cesium3DTileset.root
for getting the root tile of a tileset. #6944 - Added
Cesium3DTileset.extras
andCesium3DTile.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.
- Improved load performance when
- 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 correcttilesetVersion
. #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 onGroundPolylinePrimitive
, 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
) andGroundPrimitives
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
andCoplanarPolygonGeometryOutline
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 twoCartesian3
positions #6836 - Added
equalsEpsilon
methods toOrthographicFrustum
,PerspectiveFrustum
,OrthographicOffCenterFrustum
andPerspectiveOffCenterFrustum
.
Deprecated ⏳
- Support for 3D Tiles
content.url
is deprecated to reflect updates to the 3D Tiles spec. Usecontent.uri instead
. Support forcontent.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. UsePostProcessStageLibrary.createLensFlareStage
instead.
Fixes 🔧
- Fixed a bug where 3D Tilesets using the
region
bounding volume don’t get transformed when the tileset’smodelMatrix
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 usingVertexFormat.POSITION_ONLY
,perPositionHeight
andextrudedHeight
[#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
andEllipseGeometry
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 optiongeocoder: 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
andextrudedHeightReference
properties toCorridorGraphics
,EllipseGraphics
,PolygonGraphics
andRectangleGraphics
. #6717 PostProcessStage
has aselected
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.
- 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
- Dropped support for directory URLs when loading tilesets to match the updated 3D Tiles spec. #6502
- KML and GeoJSON now use
PolylineGraphics
instead ofCorridorGraphics
for polylines on terrain. #6706
Additions 🎉
- Added support for polylines on terrain #6689 #6615
- Use the
clampToGround
option forPolylineGraphics
(polyline entities). - Requires depth texture support (
WEBGL_depth_texture
orWEBKIT_WEBGL_depth_texture
), otherwiseclampToGround
will be ignored. UseEntity.supportsPolylinesOnTerrain
to check for support. - Added
GroundPolylinePrimitive
andGroundPolylineGeometry
.
- Use the
PostProcessStage
has aselected
property which is an array of primitives used for selectively applying a post-process stage. #6476- The
PostProcessStageLibrary.createBlackAndWhiteStage
andPostProcessStageLibrary.createSilhouetteStage
have per-feature support.
- The
- Added CZML support for
zIndex
withcorridor
,ellipse
,polygon
,polyline
andrectangle
. #6708 - Added CZML
clampToGround
option forpolyline
. #6706 - Added support for
RTC_CENTER
property in batched 3D model tilesets to conform to the updated 3D Tiles spec. #6488 - Added
heightReference
andextrudedHeightReference
properties toCorridorGraphics
,EllipseGraphics
,PolygonGraphics
andRectangleGraphics
. #6717- This can be used in conjunction with the
height
and/orextrudedHeight
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.
- This can be used in conjunction with the
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
ofrandom
could return the exact same color on successive calls toColor.fromRandom()
. Iso8601.MAXIMUM_VALUE
now formats to a string which can be parsed byfromIso8601
.- 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
) andGroundPrimitives
. #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 usesforces
. #6510Particle
no longer usessize
,rate
,lifeTime
,life
,minimumLife
,maximumLife
,minimumWidth
,minimumHeight
,maximumWidth
, andmaximumHeight
. #6510- Removed
Scene.copyGlobeDepth
. Globe depth will now be copied by default when supported. #6393 - The default
classificationType
forGroundPrimitive
,CorridorGraphics
,EllipseGraphics
,PolygonGraphics
andRectangleGraphics
is nowClassificationType.TERRAIN
. If you wish the geometry to color both terrain and 3D tiles, pass in the optionclassificationType: Cesium.ClassificationType.BOTH
. - Removed support for the
options
argument forCredit
#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. UseScene.postProcessStages.fxaa.enabled
.
Additions 🎉
- Added support for materials on terrain entities (entities with unspecified
height
) andGroundPrimitives
. #6393- Only available for
ClassificationType.TERRAIN
at this time. Adding a material to a terrainEntity
will cause it to behave as if it isClassificationType.TERRAIN
. - Requires depth texture support (
WEBGL_depth_texture
orWEBKIT_WEBGL_depth_texture
), so materials on terrain entities andGroundPrimitives
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
.
- Only available for
- Added
GroundPrimitive.supportsMaterials
andEntity.supportsMaterialsforEntitiesOnTerrain
, both of which can be used to check if materials on terrain entities andGroundPrimitives
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.
- Has a built-in
- 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
- 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
ProviderViewModel
s with no category are displayed in an untitled group inBaseLayerPicker
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
andextrudedHeight
. #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 usesClippingPlane
objects instead ofPlane
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
, andParticleSystem.maximumLife
have been renamed toParticle.imageSize
,ParticleSystem.emissionRate
,ParticleSystem.lifetime
,ParticleSystem.particleLife
,ParticleSystem.minimumParticleLife
, andParticleSystem.maximumParticleLife
. Use of thesize
,rate
,lifeTime
,life
,minimumLife
, andmaximumLife
parameters is deprecated and will be removed in Cesium 1.46.ParticleSystem.forces
array has been switched out for singular functionParticleSystems.updateCallback
. Use of theforces
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
andParticleSystem.minimumHeight
will now beParticleSystem.minimumImageSize
,ParticleSystem.maximumWidth
andParticleSystem.maximumHeight
will now beParticleSystem.maximumImageSize
, andParticleSystem.width
andParticleSystem.height
will now beParticleSystem.imageSize
. Use of theminimumWidth
,minimumHeight
,maximumWidth
,maximumHeight
,width
, andheight
parameters is deprecated and will be removed in Cesium 1.46.
Additions 🎉
- Added option
logarithmicDepthBuffer
toScene
. 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
and1e10
respectively. - Added
IonGeocoderService
and made it the default geocoding service for theGeocoder
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 allGeocoderService
instances to differentiate between autocomplete and search requests. - Added
initWebAssemblyModule
function toTaskProcessor
to load a Web Assembly module in a web worker. #6420 - Added
supportsWebAssembly
function toFeatureDetection
to check if a browser supports loading Web Assembly modules. #6420 - Improved
MapboxImageryProvider
performance by 300% viatiles.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
GroundPrimitive
s andClassificationPrimitive
s will become ready whenshow
isfalse
. #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 iffromIso8601
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 requiresprimitive
andgroundPrimitive
parameters. #6316- For all classes/functions that take a
Resource
instance, all additional parameters that are part of theResource
class have been removed. This generally includesproxy
,headers
andquery
parameters. #6368 - All low level load functions including
loadArrayBuffer
,loadBlob
,loadImage
,loadJson
,loadJsonp
,loadText
,loadXML
andloadWithXhr
have been removed. Please use the equivalentfetch
functions on theResource
class. #6368
Deprecated ⏳
ClippingPlaneCollection
is now supported in Internet Explorer, soClippingPlaneCollection.isSupported
has been deprecated and will be removed in Cesium 1.45.ClippingPlaneCollection
should now be used withClippingPlane
objects instead ofPlane
. Use ofPlane
objects has been deprecated and will be removed in Cesium 1.45.Credit
now takes anhtml
andshowOnScreen
parameters instead of anoptions
object. Use of theoptions
parameter is deprecated and will be removed in Cesium 1.46.Credit.text
,Credit.imageUrl
andCredit.link
properties have all been deprecated and will be removed in Cesium 1.46. UseCredit.html
to retrieve the credit content.Credit.hasImage
andCredit.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 toModel
andModel.fromGltf
to specify if Draco compressed glTF assets should be dequantized on the GPU.
- Added
- Added support for ordering in
DataSourceCollection
. #6316- All ground geometry from one
DataSource
will render in front of all ground geometry from anotherDataSource
in the same collection with a lower index. - Use
DataSourceCollection.raise
,DataSourceCollection.lower
,DataSourceCollection.raiseToTop
andDataSourceCollection.lowerToBottom
functions to change the ordering of aDataSource
in the collection.
- All ground geometry from one
ClippingPlaneCollection
updates #6201:- Removed the 6-clipping-plane limit.
- Added support for Internet Explorer.
- Added a
ClippingPlane
object to be used withClippingPlaneCollection
. - 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 automaticflyTo
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
isfalse
. #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
andGeometryUpdater.materialAppearanceType
. #6239 GeometryVisualizer
no longer uses atype
parameter. #6239GeometryVisualizer
no longer displays polylines. UsePolylineVisualizer
instead. #6239- The experimental
CesiumIon
object has been completely refactored and renamed toIon
.
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
andaddTemplateValues
have been deprecated and will be removed in Cesium 1.45. Please usesetQueryParameters
andsetTemplateValues
instead.
Additions 🎉
- Added new
Ion
,IonResource
, andIonImageryProvider
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
andCesium3DTileset
#6204 - Added
Cesium.Math.cbrt
. #6222 - Added
PolylineVisualizer
for displaying polyline entities #6239 Resource
class #6205- Added
put
,patch
,delete
,options
andhead
methods, so it can be used for all XHR requests. - Added
preserveQueryParameters
parameter togetDerivedResource
, to allow us to append query parameters instead of always replacing them. - Added
setQueryParameters
andappendQueryParameters
to allow for better handling of query strings.
- Added
- 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 theRequest
object, so resource can be used in parallel. #6208 - Fixed
Material
so it can now take aResource
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
, andBillboard
.
Breaking Changes 📣
- The clock does not animate by default. Set the
shouldAnimate
option totrue
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 theResource
class have been deprecated and will be removed in Cesium 1.44. This generally includesproxy
,headers
andquery
parameters. - All low level load functions including
loadArrayBuffer
,loadBlob
,loadImage
,loadJson
,loadJsonp
,loadText
,loadXML
andloadWithXhr
have been deprecated and will be removed in Cesium 1.44. Please use the equivalentfetch
functions on theResource
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 modifycolor
andshow
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 exceedsscene.maximumRenderTimeChange
.Scene.requestRender
will explicitly request a new render frame when in request render mode.- Added
Scene.preUpdate
andScene.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 toScene.preRender
andScene.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
andWEB3D_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
andViewer.flyTo
to take aCesium3DTileset
as a target. #6104 - Added
shouldAnimate
option to theViewer
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 aCartesian3
position onto aPlane
. #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
andunpack
functions toOrientedBoundingBox
for packing to and unpacking from a flat buffer. - Added support for vertex shader uniforms when
tileset.colorBlendMode
isMIX
orREPLACE
. #5874 - Added
ClippingPlaneCollection.isSupported
function for checking if rendering with clipping planes is supported.#6084 - Added
Cartographic.toCartesian
to convert fromCartographic
toCartesian3
. #6163 - Added
BoundingSphere.volume
for computing the volume of aBoundingSphere
. #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*
andCamera.look*
functions in 2D mode. #5884 - Fixed
Camera.moveStart
andCamera.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
andhttps://cesium.com
.
1.41 - 2018-01-02
- Breaking changes
- Removed the
text
,imageUrl
, andlink
parameters fromCredit
, which were deprecated in Cesium 1.40. Useoptions.text
,options.imageUrl
, andoptions.link
instead.
- Removed the
- Added support for clipping planes. #5913, #5996
- Added
clippingPlanes
property toModelGraphics
,Model
,Cesium3DTileset
, andGlobe
, which specifies aClippingPlaneCollection
to selectively disable rendering. - Added
PlaneGeometry
,PlaneOutlineGeometry
,PlaneGeometryUpdater
,PlaneOutlineGeometryUpdater
,PlaneGraphics
, andEntity.plane
to visualize planes. - Added
Plane.transformPlane
to apply a transformation to a plane.
- Added
- Fixed point cloud exception in IE. #6051
- Fixed globe materials when
Globe.enableLighting
wasfalse
. #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 than1.0
, and the window was resized. #6046
1.40 - 2017-12-01
- Deprecated
- The
text
,imageUrl
andlink
parameters fromCredit
have been deprecated and will be removed in Cesium 1.41. Useoptions.text
,options.imageUrl
andoptions.link
instead.
- The
- 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
, anddisableDepthTestDistance
. #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 toModel
andEntity.model
. Setting this tofalse
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 tojoinUrls
. #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, namelyminificationFilter
andmagnificationFilter
with possible valuesLINEAR
(the default) andNEAREST
defined inTextureMinificationFilter
andTextureMagnificationFilter
. #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 inCesiumTerrainProvider
to allow for compositing of tilesets. #5864 - Added
invertClassification
andinvertClassificationColor
toScene
. WheninvertClassification
istrue
, any 3D Tiles geometry that is not classified by aClassificationPrimitive
orGroundPrimitive
will have its color multiplied byinvertClassificationColor
. #5836 - Added
customTags
property to the UrlTemplateImageryProvider to allow custom keywords in the template URL. #5696 - Added
eyeSeparation
andfocalLength
properties toScene
to configure VR settings. #5917 - Improved CZML Reference Properties example #5754
1.38 - 2017-10-02
- Breaking changes
Scene/CullingVolume
has been removed. UseCore/CullingVolume
.Scene/OrthographicFrustum
has been removed. UseCore/OrthographicFrustum
.Scene/OrthographicOffCenterFrustum
has been removed. UseCore/OrthographicOffCenterFrustum
.Scene/PerspectiveFrustum
has been removed. UseCore/PerspectiveFrustum
.Scene/PerspectiveOffCenterFrustum
has been removed. UseCore/PerspectiveOffCenterFrustum
.
- Added support in CZML for expressing
orientation
as the velocity vector of an entity, usingvelocityReference
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 newViewer
instance is removed, passoptions.clockViewModel
instead. - Removed
GoogleEarthImageryProvider
, useGoogleEarthEnterpriseMapsProvider
instead. - Removed the
throttleRequest
parameter fromTerrainProvider.requestTileGeometry
and inherited terrain providers. It is replaced with an optionalRequest
object. Set the request’sthrottle
property totrue
to throttle requests. - Removed the ability to provide a Promise for the
options.url
parameter ofloadWithXhr
and for theurl
parameter ofloadArrayBuffer
,loadBlob
,loadImageViaBlob
,loadText
,loadJson
,loadXML
,loadImage
,loadCRN
,loadKTX
, andloadCubeMap
. Insteadurl
must be a string.
- Passing
- Added
classificationType
toClassificationPrimitive
andGroundPrimitive
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 theCesiumViewer
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 beString
inEntityCollection
andCompositeEntityCollection
#5791 - Fixed issue where
Model
andBillboardCollection
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
, andCANVAS_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. UseQuaternion.fromHeadingPitchRoll(hpr, result)
instead wherehpr
is aHeadingPitchRoll
. - The function
Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result)
was removed. UseTransforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)
instead wherefixedFrameTransform
is a a 4x4 transformation matrix (seeTransforms.localFrameToFixedFrameGenerator
). - The function
Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result)
was removed. UseTransforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)
instead wherefixedFrameTransform
is a a 4x4 transformation matrix (seeTransforms.localFrameToFixedFrameGenerator
). - The
color
,show
, andpointSize
properties ofCesium3DTileStyle
are no longer initialized with default values.
- The function
- Deprecated
Scene/CullingVolume
is deprecated and will be removed in 1.38. UseCore/CullingVolume
.Scene/OrthographicFrustum
is deprecated and will be removed in 1.38. UseCore/OrthographicFrustum
.Scene/OrthographicOffCenterFrustum
is deprecated and will be removed in 1.38. UseCore/OrthographicOffCenterFrustum
.Scene/PerspectiveFrustum
is deprecated and will be removed in 1.38. UseCore/PerspectiveFrustum
.Scene/PerspectiveOffCenterFrustum
is deprecated and will be removed in 1.38. UseCore/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 toCesium3DTileset
. #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
andheight
toscene.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
, orpointSize
with a string or object literal.show
may also take a boolean andpointSize
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
andPointPrimitive
constructors to cloneNearFarScale
parameters #5654 - Added
FrustumGeometry
andFrustumOutlineGeometry
. #5649 - Added an
options
parameter to the constructors ofPerspectiveFrustum
,PerspectiveOffCenterFrustum
,OrthographicFrustum
, andOrthographicOffCenterFrustum
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 JavascriptDate
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, useGoogleEarthEnterpriseMapsProvider
instead.- The
throttleRequest
parameter forTerrainProvider.requestTileGeometry
,CesiumTerrainProvider.requestTileGeometry
,VRTheWorldTerrainProvider.requestTileGeometry
, andEllipsoidTerrainProvider.requestTileGeometry
is deprecated and will be replaced with an optionalRequest
object. ThethrottleRequests
parameter will be removed in 1.37. Instead set the request’sthrottle
property totrue
to throttle requests. - The ability to pr