https://github.com/CesiumGS/cesium/blob/master/CHANGES.md
鑒于後續更新會越來越長,故決定分拆,見我的置頂部落格。本文終止更新于 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
三個在 1.77 版本中已經不推薦使用的常量,分别使用EasingFunction.QUADRACTIC_IN_OUT
EasingFunction.QUADRATIC_IN
EasingFunction.QUADRATIC_OUT
三個代替(拼寫有略微不同)。EasingFunction.QUADRATIC_IN_OUT
-
構造函數中TaskProcessor
選項預設設為無限大。maximumActiveTasks
- 修複了在 node 程式中使用完整的 Cesium ZIP 打包的問題
- 修複了在
類中,正确的輸入值會導緻表面距離計算結果為EllipsoidGeodesic
的問題NaN
- 修複了
中全局函數ArcGISTiledElevationTerrainProvider
sampleTerrain
不運作的問題sampleTerrainMostDetailed
- 為更規範,CZML 中的
現在使用polylineVolume
屬性來指定形狀坐标,之前的cartesian2
屬性依舊保留,以便後向相容。cartesian
-
每次 update 時沒有必要的矩陣複制動作。Cesium3DTileset
1.78 釋出時間:2021-02-02(中原標準時間)
新增功能 🎉
- 為
BillboardCollection
EntityCluster
LabelCollection
PointPrimitiveCollection
這幾個類添加PolylineCollection
屬性,以便快捷地将這些容器下的元素整體消失或顯示show
-
類(私有類)除了接受一個worker的名稱外,還可以額外接受一個絕對路徑參數。這使得可以調用自定義的 WebWorker 了,而不必提前把代碼複制粘貼到TaskProcessor
目錄下。Workers
-
類添加一個靜态方法:Cartesian2
,用以計算二維向量的叉積。cross
-
Math
,它接受一個數字,并傳回一個比這個數字小的且大于0、且為 2 的次方的數字。例如傳入29,傳回16;傳入33,傳回32.previousPowerOfTwo
修複 🔧
-
方法關于小數位數不準确的 BUG,原來調用Math.mod
會輸出Cesium.Math.mod(0.1, 1.0)
,現在改用新算法後修複了這個問題。0.10000000000000009
新算法在更新後補充。
即将過期 ⏳
-
即将廢棄,并且在下一版本(1.79)中正式移除,請使用Cesium3DTileset.url
來擷取 url 參數。Cesium3DTileset.resource.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 模型有
擴充時,PBR 材質會導緻法線被禁用的問題;KHR_materials_unlit
- 修複了API文檔:
的傳回值類型writeTextToCanvas
-
的構造函數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 對象在錄影機某些角度會被裁切的問題
- 修複了當設定
時,可能造成橢球一半消失的bugTerrainProvider
- 修複了OSM建築圖層的陰影模式打開時,可能會崩潰的問題
1.72版本 @20200803 中原標準時間
大改動
- Cesium 不再提供 Mapbox 的通路令牌,并且
移除了 Mapbox 的影像圖層。如果你使用BaseLayerPicker
或MapboxImageryProvider
,請傳遞MapboxStyleImageryProvider
參數。options.accessToken
功能添加
- 對
模型支援第二張紋理貼圖,其名稱是glTF
。TEXCOORD_1
廢棄功能
-
将在 1.73 版本中丢棄。執行個體化有關 Mapbox 的 Provider 時,在構造方法傳遞你自己的 token。MapboxApi.defaultAccessToken
-
将在 1.73 版本中丢棄,執行個體化有關 BingMap 的對象時(例如BingMapsApi
BingMapsImageryProvider
)在構造方法傳遞你的key.BingMapsGeocoderService
BUG修複
- 修複了 3dTiles 空瓦片的替換優化
- 包括 GeoJSON 在内,存在垂直拐角的折線進行了修複。
- 修複了使用
時,顔色字元串有空格會出問題的BUG。Color.fromCssColorString
- 修複了對地形瓦片可見性估算的bug
- 修複了地下模式的牆體渲染問題
- 修複了牆體第一個點和最後一個點相同時牆體一側會出問題的bug
- 修複了 标簽(label)輪廓線顔色
屬性的bugtranslucencyByDistance
-
傳回值的bugSampledPositionProperty.removeSample
- 修複了牆體的坐标有重複時,紋理坐标不正常的問題
- 修複了在安卓裝置上,裁剪平面無法正确進行裁剪的問題,這一般是
GPU 的裝置上,它們的 WebGL 不支援浮點數紋理。Mali
1.71版本 @20200702 中原標準時間 04:29
- 更新
為點的順序,而不是原來的逆時針順序。有紋理貼圖的牆體的外觀會受到影響,如果這次更新的版本對牆體有變,那麼請調整點的順序。WallGeometry
-
Cesium3DTileset
類添加Model
屬性,以支援觀察瓦片/模型的底面或者内部,解決了從模型裡面看外面透視的問題。backFaceCulling
-
Ellipsoid
屬性,用來計算貼地矩形的近似面積。surfaceArea
- CZML 資料增加 PolylineVolume 形狀的支援。
-
Color
方法來擷取 CSS 中hex格式的顔色字元串。toCssHexString
功能修複
- 修複了當3dtiles沒有gltf動畫時的錯誤(意思就是當 i3dm 和 b3dm 内嵌的 gltf 有動畫時,将被支援)
- 修複了給定原點的情況下,
除以 0 的計算錯誤,傳回Ellipsoid.geodeticSurfaceNormal
作為代替。undefined
-
在坐标很接近時的錯誤WallGeometry
- 修複了啟用對數緩存情況下的模型顯示的問題(模型穿透等)
-
中Polyline
(恒向線,如果同緯度則是緯度圈上的線而不是大圓上的弧)繪制會崩潰的問題。ArcType.RHUMB
- 修複了标簽的背景色、内填充選項的處理問題
- 修複了幾個使用 WebGL2 渲染的問題
- 修複了從透視視圖切換到正交視圖時三角面互相重疊的錯誤(即穿模)
- 修複了首幀切換到正交視圖時導緻縮放級别不正确的錯誤(例如畫面模糊等)
-
操作不正常的問題,之前容易擷取到模型内部的點位,而正确的點位應該在模型表面scene.pickFromRay
- 修複了當構造
時沒有傳遞 name 屬性(傳遞 undefined 或者 null)抛異常的問題Entity
- 文檔修複,
傳回值的文檔已經修正。ScreenSpaceEventHandler.getInputAction
- 修改了報錯面闆的樣式。
- 修複動畫面闆在 iOS 13.5.1 中 SVG圖示未顯示的問題。
1.70.1版本 @20200610 中原標準時間 22:15
(NMD突然更新)
這是一個小修補版本,主要改進 TypeScript 類型定義和 JSDoc 生成的文檔。
新增内容
-
類新增Resource
toString()
-
方法由私有變為公開Transforms.rotationMatrixFromPositionVelocity
- 修複了處理 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
兩個屬性,用于控制當Camera在地下或Globe為半透明狀态時,Globe的背面如何渲染的功能。Globe.undergroundColorAlphaByDistance
-
nightAlpha
屬性到dayAlpha
中,以分别控制向日半球和背日半球的透明度。ImageryLayer
- 添加了一個沙盒示例,用來展示使用
來添加霧效PostProcessStage
-
Color.fromCssColorString
#rgba
格式的支援#rrggbbaa
-
,這個東西會使得錄影機立刻結束運動,并立即跳轉到目的地,并傳回回調。Camera.completeFlight
- 修複了移除後的廣告牌(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
-
到公共API中,以便使用者更好控制網絡請求RequestScheduler
- 增強了glTF模型的邊緣顯示
重大更新
-
被移除。使用Scene.sunColor
Scene.light.color
Scene.light.intensity
- 移除
。使用JS原生的isArray
函數代替。Array.isArray
- 修複啟用對數緩沖時,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着色器的功能。
- 目前版本可以在帶有或不帶有
版本的NodeJS(12或者更高版本)中使用Cesium。早期的NodeJS版本依舊可用。--experimental-modules
- 與Cesium的canvas進行互動時,現在将使先前聚焦的元素模糊。這樣可以防止在與Globe互動時意外修改輸入元素。(本段機翻,不知道這是什麼功能,見 https://github.com/CesiumGS/cesium/pull/8662)
- 如果請求TMS資料服務的描述文檔
失敗并且對應瓦片等級的外界框tilemapresource.xml
太大,rectangle
會強制将TileMapServiceImageryProvider
屬性設為0。minimalLevel
- 修複了使用較小的橢球(Ellipsoid)時渲染地面大氣的問題、Globe錯誤遮擋對象的問題。
- 修複了1.67版本中引入的一個功能BUG,該功能會使得重疊的、帶顔色的地表幾何圖形具有視覺錯誤。
- 修複了在啟用對數深度緩沖區(Logarithmic Depth Buffer)的情況下,近距離檢視折線(Polyline)時的被裁剪問題,這是大多數系統的預設設定。
版權沒有,盜版随你。