天天看點

Cesium 發行日志(至1.79.1,後續見部落格首頁其他連接配接)

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

    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

更靈活。

Cesium 發行日志(至1.79.1,後續見部落格首頁其他連接配接)

修複了當改動模型或 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

    的傳回值類型
  • 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
  • 修複了牆體的坐标有重複時,紋理坐标不正常的問題
  • 修複了在安卓裝置上,裁剪平面無法正确進行裁剪的問題,這一般是

    Mali

    GPU 的裝置上,它們的 WebGL 不支援浮點數紋理。

1.71版本 @20200702 中原標準時間 04:29

  • 更新

    WallGeometry

    為點的順序,而不是原來的逆時針順序。有紋理貼圖的牆體的外觀會受到影響,如果這次更新的版本對牆體有變,那麼請調整點的順序。

  • Cesium3DTileset

    Model

    類添加

    backFaceCulling

    屬性,以支援觀察瓦片/模型的底面或者内部,解決了從模型裡面看外面透視的問題。
    Cesium 發行日志(至1.79.1,後續見部落格首頁其他連接配接)
  • Ellipsoid

    surfaceArea

    屬性,用來計算貼地矩形的近似面積。
  • CZML 資料增加 PolylineVolume 形狀的支援。
  • Color

    toCssHexString

    方法來擷取 CSS 中hex格式的顔色字元串。

功能修複

  • 修複了當3dtiles沒有gltf動畫時的錯誤(意思就是當 i3dm 和 b3dm 内嵌的 gltf 有動畫時,将被支援)
  • 修複了給定原點的情況下,

    Ellipsoid.geodeticSurfaceNormal

    除以 0 的計算錯誤,傳回

    undefined

    作為代替。
  • WallGeometry

    在坐标很接近時的錯誤
  • 修複了啟用對數緩存情況下的模型顯示的問題(模型穿透等)
    Cesium 發行日志(至1.79.1,後續見部落格首頁其他連接配接)
  • Polyline

    ArcType.RHUMB

    (恒向線,如果同緯度則是緯度圈上的線而不是大圓上的弧)繪制會崩潰的問題。
  • 修複了标簽的背景色、内填充選項的處理問題
  • 修複了幾個使用 WebGL2 渲染的問題
  • 修複了從透視視圖切換到正交視圖時三角面互相重疊的錯誤(即穿模)
  • 修複了首幀切換到正交視圖時導緻縮放級别不正确的錯誤(例如畫面模糊等)
    Cesium 發行日志(至1.79.1,後續見部落格首頁其他連接配接)
  • scene.pickFromRay

    操作不正常的問題,之前容易擷取到模型内部的點位,而正确的點位應該在模型表面
    Cesium 發行日志(至1.79.1,後續見部落格首頁其他連接配接)
  • 修複了當構造

    Entity

    時沒有傳遞 name 屬性(傳遞 undefined 或者 null)抛異常的問題
  • 文檔修複,

    ScreenSpaceEventHandler.getInputAction

    傳回值的文檔已經修正。
  • 修改了報錯面闆的樣式。
    Cesium 發行日志(至1.79.1,後續見部落格首頁其他連接配接)
  • 修複動畫面闆在 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 發行日志(至1.79.1,後續見部落格首頁其他連接配接)
    • 在沙盒中探索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

    ,這個東西會使得錄影機立刻結束運動,并立即跳轉到目的地,并傳回回調。

  • 修複了移除後的廣告牌(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

    函數代替。

  • 修複啟用對數緩沖時,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着色器的功能。

  • 目前版本可以在帶有或不帶有

    --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)時的被裁剪問題,這是大多數系統的預設設定。
版權沒有,盜版随你。