最近在做地理信息可視化的項目時,涉及到了cesium使用obj格式的模型。但是在cesium中使用obj格式的模型并不是最好的選擇,因為它不能很好地控制模型的細節和材質。轉而使用cesium中的json格式可以更好地滿足我們的需求。
那么,在cesium中將obj格式的模型轉換為json格式,我們可以使用官方提供的插件Cesium3DTilesConverter。這個插件不僅可以將obj轉換成json格式,還可以將其他格式如3ds、fbx等轉換成json格式。下面是具體的步驟:
// 導入插件 const Cesium3DTilesConverter = require('Cesium3DTilesConverter'); // 轉換 const convertResult = await Cesium3DTilesConverter.convert({ input: '輸入路徑/xxx.obj', outputDirectory: '輸出路徑', binary: true, // 是否壓縮二進制數據 separate: true, // 是否拆分對象 separateSize: 100, // 每個拆分對象的最大大小 });
可以看到,轉換方法比較簡單,主要需要指定輸入路徑、輸出路徑等參數。如果需要壓縮二進制數據、拆分對象等,也可以在參數中指定。
轉換完成后,我們就可以將json格式的模型導入到cesium中了。使用cesium的Cesium3DTileset加載模型即可:
const tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({ url: '模型路徑/xxx.json', maximumScreenSpaceError: 2, }));
完成以上步驟后,我們就可以在cesium中使用json格式的模型了。不僅可以更好地控制模型的細節和材質,還能夠方便地與其他cesium組件進行交互。
下一篇vue 更換數據動畫