cesiumjs模型,cesium 模型格式

本文目錄一覽:

Cesiumjs可以載入傾斜攝影的OSGB數據嗎

可以!

不過不是載入原始的OSGB格式的數據,必須經過轉換(OSGB2B3DM.exe),轉換後為b3dm格式,是cesium支持的切片模型載入的格式。

——————–cesium載入b3dm代碼——

var model=_teemo_scene.primitives.add(new Cesium.Cesium3DTileset({

id: o.id,

url: o.url,

maximumMemoryUsage:1024,//內存使用最大量

skipLevelOfDetail : true,//↓↓↓LOD優化項↓↓↓

baseScreenSpaceError : 1024,

skipScreenSpaceErrorFactor : 16,

skipLevels : 1,

immediatelyLoadDesiredLevelOfDetail : false,

loadSiblings : false,

cullWithChildrenBounds : true

}));

Cesium 3Dtiles模型多邊形裁剪簡單整理

快三年了,在寫了四篇文章,關於Cesium的基本都是水一下,不是不想寫,一是沒時間,二來確實比較懶,關於Cesium已經一年多沒有看過了,最多也就關注一下官網的更新內容,對於Cesium深入了解還真沒有下功夫。

最近公司業務調整,手頭的業務也停掉了,只剩下維護了,也沒有繼續待著的意義了,趁著換工作的空,整理一下以前抄過、請教過、寫過的一些東西吧,不確定能寫多少,就簡單記錄一下吧。

Ceisum本身有一個clipPlane可以進行裁剪,但是不支持多邊形裁剪,想要支持多邊形裁剪也要費一番功夫。

多邊形裁剪的主要原理:

一、構造裁剪多邊形;

二、將構造多邊形的定點歸化到模型局部坐標系,並獲取模型Rectangle,記錄並傳遞給片元著色器;

三、將多邊形渲染到到一張構造的紋理上,給多邊形一個繪製的顏色,並將紋理賦值給片元著色器;

四、在頂點著色器中把從attribute獲取到的定點傳遞給片元著色器,如

gl_Position = czm_projection*u_modelViewMatrix* viewPos; //投影矩陣*模型視圖矩陣*頂點坐標

中的viewPos.xyz;

五、在片元著色器中,根據(四)中傳遞過來的頂點,判定該頂點是否在(二)中的rectangle中,若在,則計算該頂點在(三)中紋理的uv坐標,用texture2D(texture,uv)獲取當前頂點的color值,若不為空,則繼續,若為空則discard並返回。

通過以上步驟就可以實現以多邊形為邊界的模型裁剪。

Cesium的擴展工具包-EarthSDK使用指南1

Cesium作為三維GIS和BIM應用的主力引擎,目前已經受到越來越多的開發者的青睞。這兩年筆者也一直做Cesium相關的開發工作,真切地感受到Cesium的強大,其豐富的API、豐富的示例為開發三維GIS/BIM應用提供了極大的便利。

為了進一步豐富Cesium的開發生態,我們把之前在Cesium基礎上開發的功能,以及大量的改良功能,封裝成若干個獨立的js包。這樣也避免開發者重複造輪子。對於大屏展示、C端替代等直接本地部署Cesium的應用場景,可以直接免費使用我們封裝的EarthSDK擴展包。

EarthSDK中主要包括XbsjEarth.js和XbsjCesium.js兩個js包。

XbsjCesium.js用來擴展Cesium所不具備的三維可視化功能,例如視頻融合、分析工具、模型壓平等。

XbsjEarth.js則主要目標在於封裝出更加易於使用的API介面,儘可能屏蔽掉前端開發工程師所不熟悉的圖形學、GIS相關內容。會在Cesium的基礎上封裝好一些複雜的交互操作,並提供極其簡單的API介面方便調用。

EarthSDK從前端開發者的角度考慮設計API,大部分類的屬性都是響應式設計,通過簡單操作即可監控相應的屬性變化,通過bind方便可以實現屬性的相互綁定。特別針對Vue的開發者,實現了和vue的響應式屬性的無縫融合。具體可以參考這篇文章的介紹: 三維應用的響應式設計探索 。

之前使用過ECharts的同學可能對ECharts的操作簡單印象深刻。ECharts相當於把大量的API轉成配置式,真正使用時,只需要通過setOptions來進行一個大JSON對象的配置,即可完成圖表的創建。

EarthSDK的API設計也是受ECharts的啟發,會盡量減少不需要的API,減輕開發者的記憶負擔。只需要通過一個大JSON配置,就可以完成整個場景的搭建。

而且,EarthSDK比ECharts更進一步,可以直接修改相應的屬性,即可完成三維場景的動態變化。而ECharts則需要不停地調用setOption來進行配置。以後的文章中會詳細說明此特性。

EarthSDK創建場景後,內置viewer和scene對象,用戶可以通過viewer或者scene來向場景中添加Cesium的原生對象,和調用所有原生的Cesium API函數。

為了更易於理解EarthSDK的使用,我們開發了一個樣常式序 XbsjEarthUI(這個程序也同時集成到了CesiumLab中)。此樣常式序已經開源放在Github和Gitee上,基於MIT協議,用戶可以任意修改。

XbsjEarthUI在github上的地址:

XbsjEarthUI在gitee上的地址:

EarthSDK可以載入百度地圖、高德地圖等三十多種地圖數據,並可以做到實時糾偏。

交通安防領域需要用到的視頻監控、視頻融合功能。可以將視頻映射到傾斜攝影、BIM模型上(3dtiles模型),視頻會覆蓋到非平面物體上,不會出現閃爍等現象。

針對模型位置、姿態進行編輯。方便進行多個模型數據組合使用。並且這裡的模型位置編輯可以很方便的在全球任意位置拖放。

結合CesiumLab數據生產,使用EarthSDK調整數據後期亮度,可以做出較好的特效。方便進行大屏展示。

可以指定模型數據顯示在某一個視口,方便進行方案對比等操作。

Cesium的地面本身不能做到透明顯示,我們進行改進,使得透明度可以實時調節。

動態實現視域分析效果。

可以對路徑進行編輯,編輯好的路徑,可以用於控制相機的漫遊,也可以控制物體的移動。

對原始Cesium的標籤效果進行改進,並可以使用類似html5標籤增加onClick屬性,來自動執行自定義操作。

影像載入篇:WebMapTileServiceImageryProvider

WebMapTileServiceImageryProvider是用來載入Web Map Tile Service (WMTS) 服務,下面簡要說明下WMTS服務吧。

WMTS 1.0.0 支持三種實現模型:

WMTS 1.0.0 定義了 GetCapabilities、GetTile、GetFeatureInfo 3個操作

可以結合圖2和圖3,理解每個參數的意思,對接的需要注意 tileMatrixLabels 和 tilingScheme

其他參數:

1.clock以及time:可參考Cesium官方示例

2.rectangle:默認全球範圍,可根據能力文檔裡面的BoundingBox進行設置

cesium 和 Three.js有什麼區別,以及二者與WebGL 的關係

二者都是基於WebGL技術開發的js庫

Threejs受眾面比較廣,是封裝了webgl的一些底層用法,讓初學者更容易上手;例如繪製一個立方體,使用webgl原生api可能要寫50行代碼,包括構建坐標點,頂點組織、著色器等信息;在threejs裡面可能只要一句代碼就可以構建(實際上也是調用webgl原生api),只是做了更大粒度的封裝

Cesium受眾面相對較小,是Gis相關的,也是基於WebGL開發的,它主要是三維地球相關的js庫,可以展示二維地圖服務(百度高德)、傾斜攝影模型;還可以在上面做一些三維分析,可以參考

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288445.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-24 02:59
下一篇 2024-12-24 02:59

相關推薦

  • TensorFlow Serving Java:實現開發全功能的模型服務

    TensorFlow Serving Java是作為TensorFlow Serving的Java API,可以輕鬆地將基於TensorFlow模型的服務集成到Java應用程序中。…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python訓練模型後如何投入應用

    Python已成為機器學習和深度學習領域中熱門的編程語言之一,在訓練完模型後如何將其投入應用中,是一個重要問題。本文將從多個方面為大家詳細闡述。 一、模型持久化 在應用中使用訓練好…

    編程 2025-04-29
  • Python實現一元線性回歸模型

    本文將從多個方面詳細闡述Python實現一元線性回歸模型的代碼。如果你對線性回歸模型有一些了解,對Python語言也有所掌握,那麼本文將對你有所幫助。在開始介紹具體代碼前,讓我們先…

    編程 2025-04-29
  • ARIMA模型Python應用用法介紹

    ARIMA(自回歸移動平均模型)是一種時序分析常用的模型,廣泛應用於股票、經濟等領域。本文將從多個方面詳細闡述ARIMA模型的Python實現方式。 一、ARIMA模型是什麼? A…

    編程 2025-04-29
  • VAR模型是用來幹嘛

    VAR(向量自回歸)模型是一種經濟學中的統計模型,用於分析並預測多個變數之間的關係。 一、多變數時間序列分析 VAR模型可以對多個變數的時間序列數據進行分析和建模,通過對變數之間的…

    編程 2025-04-28
  • 如何使用Weka下載模型?

    本文主要介紹如何使用Weka工具下載保存本地機器學習模型。 一、在Weka Explorer中下載模型 在Weka Explorer中選擇需要的分類器(Classifier),使用…

    編程 2025-04-28
  • 如何將視頻導出成更小的格式給IT前端文件

    本文將從以下幾個方面介紹如何將視頻導出成更小的格式,以便於在IT前端文件中使用。 一、選擇更小的視頻格式 在選擇視頻格式時,應該儘可能選擇更小的格式,如MP4、WebM、FLV等。…

    編程 2025-04-28
  • Python實現BP神經網路預測模型

    BP神經網路在許多領域都有著廣泛的應用,如數據挖掘、預測分析等等。而Python的科學計算庫和機器學習庫也提供了很多的方法來實現BP神經網路的構建和使用,本篇文章將詳細介紹在Pyt…

    編程 2025-04-28
  • Python AUC:模型性能評估的重要指標

    Python AUC是一種用於評估建立機器學習模型性能的重要指標。通過計算ROC曲線下的面積,AUC可以很好地衡量模型對正負樣本的區分能力,從而指導模型的調參和選擇。 一、AUC的…

    編程 2025-04-28

發表回復

登錄後才能評論