草图大师sketchup的模型加载到cesium里显示 带贴图
- 前言
- 一、sketchUp导出obj格式
- 二、在Blender中转换数据
- 1.导入数据
- 2.调整尺寸和视图
- 三、cesium中加载
- 总结
前言
由于工作原因,拿到一个skp格式的模型,而且还有贴图和材质,需要加载到cesium里面,但是直接用草图大师导出为fbx格式的时候,FBX有一个基于文本(ASCII)和二进制版本,草图大师导出来的是基于文本的格式,也就是ASCII版本,并且还有一个文件夹是专门放贴图的,所以导入的cesiumlab里面转tileset的时候处理不了,就算处理了之后,模型也是全黑的,贴图和材质那些东西都没有,由此开始了我找方法的解决这个问题的漫漫长路。过程我就不赘述了,我就直接写我最终用成功的方法。
提示:以下是本篇文章正文内容,下面案例可供参考
一、sketchUp导出obj格式
从sketchup中导出obj格式,最终生成三个文件
二、在Blender中转换数据
1.导入数据
如果将模型导入到Blender里面显示数据已经加进去了,但是模型却没有显示出来,那可能是模型尺寸太大或者太小了,所以导致的看不到
2.调整尺寸和视图
我是因为模型太大了,导致在Blender中看不到,因为我用快捷键“Shift+C”显示全部的时候,依旧看不到模型,所以我推测是模型太大了,然后就修改缩放值,全部改成0.0001,这个缩放尺寸可以用不同的值试一下,找到最合适的值,我是之前修改成0.001发现还是太大了,所以改成了0.0001。
然后调整一下视图的模式,看看是否贴图可以显示出来,如果可以,就直接导出glb格式
三、cesium中加载
该处使用的url网络请求的数据。
const entity = this.viewer.entities.add({
name: "Cesium_Air",
position: position,
orientation: orientation,
model: {
uri: "Assets/model/dapeng.glb",
minimumPixelSize: 128,
maximumScale: 20000,
},
});
最终结果
总结
其实只要在sketchup中导出obj格式的,然后再到Blender中导出不管是glb还是fbx格式的,cesiumlab都可以加载了,只是如果是fbx格式的话,还需要在cesiumlab中转为tileset格式加载,反正我试了很多种方法,这种方式是保存模型和贴图最完整的。