cesium obj转b3dm转换及加载
生活随笔
收集整理的這篇文章主要介紹了
cesium obj转b3dm转换及加载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考文獻:github:https://github.com/PrincessGod/objTo3d-tiles
?https://blog.csdn.net/taiyang1987912/article/details/84339865
1、先下載安裝node.js,再安裝boj23dtiles,在cmd中輸入==>npm install -g obj23dtiles2、新建一個json,設置obj的坐標等信息,經緯度采用弧度制,高程按地形高程輸入,最多保留小數點后五位,內容如下
{"longitude": -1.31968, "latitude": 0.698874, "transHeight": 1142.59807, "region": true, // Using region bounding volume. "box": false, // Using box bounding volume."sphere": false // Using sphere bounding volume. //"minHeight": 0.0, // BoundingVolume minimum height in meters. //"maxHeight": 40.0, // BoundingVolume maximum height in meters. //"tileWidth": 200.0, // Tile horizontal(cross longitude) length in meters. //"tileHeight": 200.0, // Tile virtical(cross latitude) length in meters. //"geometricError": 200.0, // Tile geometric error in meters. } 3、cd至程序執行的目錄下,./代表當前目錄,前面的路徑為obj路徑,后面的路徑為json路徑,生成tileset.json及b3dm文件
obj23dtiles -i ./east/east.obj --tileset -p ./east/eastoptions.json
4、將生成的文件導入至cesium目錄下,然后加入以下代碼對3dtile數據進行加載
var tileset = new Cesium.Cesium3DTileset({url: "model/out8/tileset.json",shadows:Cesium.ShadowMode.DISABLED,//去除陰影 }); // viewer.scene.primitives.add(tileset); viewer.zoomTo(tileset)
5、模型偏移
var cartographic=Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center); var old_cart=Cesium.Cartesian3.fromRadians(cartographic.longitude,cartographic.latitude,cartographic.height); var new_cart=Cesium.Cartesian3.fromRadians(cartographic.longitude,cartographic.latitude,cartographic.height+100); var translation=Cesium.Cartesian3.subtract(new_cart,old_cart,new Cesium.Cartesian3()); tileset.modelMatrix=Cesium.Matrix4.fromTranslation(translation);?ps:程序也支持gltf、glb、i3dm
-----------------------------cesium高程讀取-------------------------
https://www.cnblogs.com/implementer/p/10953676.html
?
轉載于:https://www.cnblogs.com/implementer/p/11027441.html
總結
以上是生活随笔為你收集整理的cesium obj转b3dm转换及加载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring 注入bean的两种方式
- 下一篇: 类欧几里得算法