鑒於后續更新會越來越長,故決定分拆,見我的置頂博客。本文終止更新於 1.79.1 版本
1.79.1 發布時間:2021-03-01(北京時間)
問題修復 🔧
- 修復地形誇大的bug
1.79 發布時間:2021-03-01(北京時間 17點左右)
重大改動📣
- 移除了
Cesium3DTileset.url,一個在上一個版本已經不推薦使用的屬性。使用Cesium3DTileset.resource.url來代替。 - 移除了
EasingFunction.QUADRACTIC_IN、EasingFunction.QUADRACTIC_OUT、EasingFunction.QUADRACTIC_IN_OUT三個在 1.77 版本中已經不推薦使用的常量,分別使用EasingFunction.QUADRATIC_IN、EasingFunction.QUADRATIC_OUT、EasingFunction.QUADRATIC_IN_OUT三個代替(拼寫有略微不同)。 TaskProcessor構造函數中maximumActiveTasks選項默認設為無限大。
問題修復 🔧
- 修復了在 node 程序中使用完整的 Cesium ZIP 打包的問題
- 修復了在
EllipsoidGeodesic類中,正確的輸入值會導致表面距離計算結果為NaN的問題 - 修復了
ArcGISTiledElevationTerrainProvider中全局函數sampleTerrain、sampleTerrainMostDetailed不運行的問題 - 為更規范,CZML 中的
polylineVolume現在使用cartesian2屬性來指定形狀坐標,之前的cartesian屬性依舊保留,以便后向兼容。 - 移除了
Cesium3DTileset每次 update 時沒有必要的矩陣復制動作。
1.78 發布時間:2021-02-02(北京時間)
新增功能 🎉
- 為
BillboardCollection、EntityCluster、LabelCollection、PointPrimitiveCollection、PolylineCollection這幾個類添加show屬性,以便快捷地將這些容器下的元素整體消失或顯示 TaskProcessor類(私有類)除了接受一個worker的名稱外,還可以額外接受一個絕對路徑參數。這使得可以調用自定義的 WebWorker 了,而不必提前把代碼復制粘貼到Workers目錄下。Cartesian2類添加一個靜態方法:cross,用以計算二維向量的叉積。Math類添加一個靜態方法:previousPowerOfTwo,它接受一個數字,並返回一個比這個數字小的且大於0、且為 2 的次方的數字。例如傳入29,返回16;傳入33,返回32.
修復 🔧
-
修復了
Math.mod方法關於小數位數不准確的 BUG,原來調用Cesium.Math.mod(0.1, 1.0)會輸出0.10000000000000009,現在改用新算法后修復了這個問題。新算法在更新后補充。
即將過期 ⏳
Cesium3DTileset.url即將廢棄,並且在下一版本(1.79)中正式移除,請使用Cesium3DTileset.resource.url來獲取 url 參數。
1.77版本 北京時間 20210105
1.76更新較少,可以跳過
新增功能 🎉
添加了 ElevationBand 材質類型,能給指定范圍的海拔高度的地形映射對應的顏色(或漸變)
這個和之前的 [Globe Materials - Cesium Sandcastle](https://sandcastle.cesium.com/?src=Globe Materials.html) 很像,但是比 ElevationRamp 更靈活。

修復 🔧
修復了當改動模型或 3dtiles 的顏色、背面裁剪、輪廓寬度時的錯誤
主要是修改了 Model 類的 updateColor函數、updateBackFaceCulling函數、updateSilhouette函數的三處判斷
即將棄用的API ⏳
EasingFunction.QUADRACTIC_IN、EasingFunction.QUADRACTIC_OUT、EasingFunction.QUADRACTIC_IN_OUT 三個屬性將於 1.79 版本移除,
分別使用 EasingFunction.QUADRATIC_IN、EasingFunction.QUADRATIC_OUT 和 EasingFunction.QUADRATIC_IN_OUT 代替。
1.75版本 北京時間 20201102
這個版本官方偷懶,沒什么更新
修復 🔧
- 修復了 glTF 模型有
KHR_materials_unlit擴展時,PBR 材質會導致法線被禁用的問題; - 修復了API文檔:
writeTextToCanvas的返回值類型 - 修復了API文檔:
Viewer.globe的構造函數
1.74版本 北京時間 20201002
(1.73有事跳過了)
新增功能
-
新增:
Matrix3.inverseTranspose方法 以及Matrix4.inverseTranspose方法功能:提供矩陣的逆轉置計算功能:先計算逆矩陣,再轉置,最后返回。
問題修復
-
修復相機縮放時可能卡住的問題
-
修復平面幾何實體繞局部坐標軸旋轉不正確的問題
-
修復平面幾何實體(Plane Entity)的法線轉換問題
參考:https://www.cnblogs.com/flytrace/p/3379816.html
局部坐標到相機坐標使用 Model-View 矩陣即可,但是局部法線行不通,可能會出現不垂直原來切線的情況。相機坐標空間下的法線,其轉換矩陣是 Model-View 矩陣的逆轉置。
如果 Model-View 是正交矩陣,那么法線的矩陣也是 Model-View 矩陣。
-
修復Ground Primitive 對象在攝像機某些角度會被裁切的問題
-
修復了當設置
TerrainProvider時,可能造成橢球一半消失的bug -
修復了OSM建築圖層的陰影模式打開時,可能會崩潰的問題
1.72版本 @20200803 北京時間
大改動
- Cesium 不再提供 Mapbox 的訪問令牌,並且
BaseLayerPicker移除了 Mapbox 的影像圖層。如果你使用MapboxImageryProvider或MapboxStyleImageryProvider,請傳遞options.accessToken參數。
功能添加
- 對
glTF模型支持第二張紋理貼圖,其名稱是TEXCOORD_1。
廢棄功能
MapboxApi.defaultAccessToken將在 1.73 版本中丟棄。實例化有關 Mapbox 的 Provider 時,在構造方法傳遞你自己的 token。BingMapsApi將在 1.73 版本中丟棄,實例化有關 BingMap 的對象時(例如BingMapsImageryProvider、BingMapsGeocoderService)在構造方法傳遞你的key.
BUG修復
- 修復了 3dTiles 空瓦片的替換優化
- 包括 GeoJSON 在內,存在垂直拐角的折線進行了修復。
- 修復了使用
Color.fromCssColorString時,顏色字符串有空格會出問題的BUG。 - 修復了對地形瓦片可見性估算的bug
- 修復了地下模式的牆體渲染問題
- 修復了牆體第一個點和最后一個點相同時牆體一側會出問題的bug
- 修復了 標簽(label)輪廓線顏色
translucencyByDistance屬性的bug - 修復了
SampledPositionProperty.removeSample返回值的bug - 修復了牆體的坐標有重復時,紋理坐標不正常的問題
- 修復了在安卓設備上,裁剪平面無法正確進行裁剪的問題,這一般是
MaliGPU 的設備上,它們的 WebGL 不支持浮點數紋理。
1.71版本 @20200702 北京時間 04:29
大改動
- 更新
WallGeometry為點的順序,而不是原來的逆時針順序。有紋理貼圖的牆體的外觀會受到影響,如果這次更新的版本對牆體有變,那么請調整點的順序。
功能添加
-
Cesium3DTileset和Model類添加backFaceCulling屬性,以支持觀察瓦片/模型的底面或者內部,解決了從模型里面看外面透視的問題。
-
Ellipsoid類添加surfaceArea屬性,用來計算貼地矩形的近似面積。 -
CZML 數據增加 PolylineVolume 形狀的支持。
-
Color類添加toCssHexString方法來獲取 CSS 中hex格式的顏色字符串。
功能修復
-
修復了當3dtiles沒有gltf動畫時的錯誤(意思就是當 i3dm 和 b3dm 內嵌的 gltf 有動畫時,將被支持)
-
修復了給定原點的情況下,
Ellipsoid.geodeticSurfaceNormal除以 0 的計算錯誤,返回undefined作為代替。 -
修復了
WallGeometry在坐標很接近時的錯誤 -
修復了啟用對數緩存情況下的模型顯示的問題(模型穿透等)

-
修復了
Polyline中ArcType.RHUMB(恆向線,如果同緯度則是緯度圈上的線而不是大圓上的弧)繪制會崩潰的問題。 -
修復了標簽的背景色、內填充選項的處理問題
-
修復了幾個使用 WebGL2 渲染的問題
-
修復了從透視視圖切換到正交視圖時三角面相互重疊的錯誤(即穿模)
-
修復了首幀切換到正交視圖時導致縮放級別不正確的錯誤(例如畫面模糊等)

-
修復了
scene.pickFromRay操作不正常的問題,之前容易獲取到模型內部的點位,而正確的點位應該在模型表面
-
修復了當構造
Entity時沒有傳遞 name 屬性(傳遞 undefined 或者 null)拋異常的問題 -
文檔修復,
ScreenSpaceEventHandler.getInputAction返回值的文檔已經修正。 -
修改了報錯面板的樣式。

-
修復動畫面板在 iOS 13.5.1 中 SVG圖標未顯示的問題。
1.70.1版本 @20200610 北京時間 22:15
(NMD突然更新)
這是一個小修補版本,主要改進 TypeScript 類型定義和 JSDoc 生成的文檔。
新增內容
- 為
Resource類新增toString()方法 Transforms.rotationMatrixFromPositionVelocity方法由私有變為公開
BUG修復
- 修復了處理 PixelFormat 時 flipY 的錯誤。
- 修復了 3dTiles 數據在請求取消后仍駐留在內存中導致的內存泄漏問題。
- 修復了諸多 JSDoc 生成的文檔的問題,得益於 TypeScript
1.70版本 @20200601 北京時間 0702 05:09
重大公告
-
現在,所有 CesiumION用戶都可以使用 Cesium OSM 建築 -- 一個世界級別的三維建築白膜圖層,基於OSM的建築數據。當然,可以作為3dTiles加載。更多信息查看官方博客

- 在沙盒中探索Cesium OSM Buildings
- 用法:
viewer.scene.primitives.add(Cesium.createOsmBuildings()) - 包括每個建築要素的屬性,例如名稱、地址等。查看更多屬性
-
Cesium 現在支持 TypeScript 的類型定義了
- 如果使用 ES 模塊來導入 Cesium ,那么自動使用 ts 的有關工具
- 如果直接導入單個 CesiumJS 源文件,則需要在 tsconfig.json 文件中添加
"types":["cesium"]屬性,以便使用定義 - 如果你有自己的定義,而且沒有准備好切換Cesium版本,可以在安裝后刪除
Source/Cesium.d.ts文件 - 查看官方發布的博客來看更多的信息
-
Cesium 現在支持
Globe半透明的地下渲染模式了!- 實例化
Globe時,可傳遞GlobeTranslucency可選項來控制globe的透明度,這個GlobeTranslucency包括表面透明、背面透明與半透明矩形等屬性。 - 為
Globe添加Globe.undergroundColor與Globe.undergroundColorAlphaByDistance屬性,以控制當攝像機在地下或者globe是半透明狀態時,globe的背面如何渲染 - 增強地下時攝像機控制能力
- 沙盒新增三個示例:Globe Translucency、Globe Interior、Underground Color
- 實例化
新增功能
- API文檔接受了一大批修復與增強改進,歸功於TS!
- 添加屬性
Cesium3DTileset.extensions,以便從tileset.json中獲取擴展數據。 - 添加
frustumSplits選項到DebugCameraPrimitive(相機視錐體) - 添加了
Globe.undergroundColor和Globe.undergroundColorAlphaByDistance兩個屬性,用於控制當Camera在地下或Globe為半透明狀態時,Globe的背面如何渲染的功能。 - 添加
nightAlpha和dayAlpha屬性到ImageryLayer中,以分別控制向日半球和背日半球的透明度。 - 添加了一個沙盒示例,用來展示使用
PostProcessStage來添加霧效 - 對
Color.fromCssColorString添加了#rgba和#rrggbbaa格式的支持 - 添加了
Camera.completeFlight,這個東西會使得攝像機立刻結束運動,並立即跳轉到目的地,並返回回調。
BUG修復
- 修復了移除后的廣告牌(billboard)會改變地形的BUG
- 修復了DebugCameraPrimitve(相機視錐體)會忽略Camera的近平面和遠平面的bug
- 修復了3DTiles點雲樣式的問題,其中
${feature.propertyName}和${feature["propertyName"]}這樣的語法會讓程序崩潰,還解決了使用非字母和數字的字符來當屬性名稱會崩潰的問題 - 修復了渲染gltf模型時可能發生的崩壞。該Bug會在gltf模型外邊線添加新頂點時發生,這個過程索引緩沖區從Uint16切換到Uint32。
- 修復了2.5D視圖時的深度平面,改善地平線附近的polylines或其他primitives的顯示質量。
- 修復了2.5D時貼地primitive的一些問題
1.69版本 @20200501
新增功能
- 添加
Scene.cameraUnderground屬性,以指示是否在地下 - 添加
RequestScheduler到公共API中,以便用戶更好控制網絡請求 - 增強了glTF模型的邊緣顯示
重大更新
Scene.sunColor被移除。使用Scene.light.color和Scene.light.intensity代替。- 移除
isArray。使用JS原生的Array.isArray函數代替。
BUG修復
- 修復啟用對數緩沖時,polyline的幾個問題。
- 修復了glTF的skin支持問題。考慮將其設為一個可選的屬性:
skeleton。 - 修復了gltf非循環性動畫中不連續問題(最后一幀丟幀)。開發者希望在動畫停止時觸發另一個事件#issue7387。
- 修復了即使啟用對數緩沖,視野范圍也很廣的問題。
- 修復了等高線材質透明的不生效的問題
- 修復銷毀CesiumWidget對象時潛在的內存泄漏。
- 在較新的iOS設備上幾何實例支持高精度浮動
- 修復ios 安卓和uwp顯示Cesium ION圖標不正常的問題
1.68版本 @20200402 0:42[北京時間]
新增功能
- 添加了地下渲染支持。當相機在地下時,地球將被渲染為實體表面,而地下的Entity將不會被剔除。
- CesiumUnminified的打包版本現在包括SourceMap,以便進行調試。
- 借助SpectorJS Shader Editor(https://spector.babylonjs.com/),添加了實時編輯Cesium着色器的功能。
BUG修復
- 當前版本可以在帶有或不帶有
--experimental-modules版本的NodeJS(12或者更高版本)中使用Cesium。早期的NodeJS版本依舊可用。 - 與Cesium的canvas進行交互時,現在將使先前聚焦的元素模糊。這樣可以防止在與Globe交互時意外修改輸入元素。(本段機翻,不知道這是什么功能,見 https://github.com/CesiumGS/cesium/pull/8662)
- 如果請求TMS數據服務的描述文檔
tilemapresource.xml失敗並且對應瓦片等級的外界框rectangle太大,TileMapServiceImageryProvider會強制將minimalLevel屬性設為0。 - 修復了使用較小的橢球(Ellipsoid)時渲染地面大氣的問題、Globe錯誤遮擋對象的問題。
- 修復了1.67版本中引入的一個功能BUG,該功能會使得重疊的、帶顏色的地表幾何圖形具有視覺錯誤。
- 修復了在啟用對數深度緩沖區(Logarithmic Depth Buffer)的情況下,近距離查看折線(Polyline)時的被裁剪問題,這是大多數系統的默認設置。
版權沒有,盜版隨你。
