cesiumobj转b3dm转换及加载
1、先下载安装node.js,再安oj23dtiles,在cmd中输⼊==>npm install -g obj23dtiles
2、新建⼀个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);
3tiles
5、模型偏移
var cartographic=Cesium.Cartographic.fromCartesian();
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());
ps:程序也⽀持gltf、glb、i3dm
-----------------------------cesium⾼程读取-------------------------
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论