obj模型转glb/gltf

博客园首页新随笔联系管理订阅订阅随笔- 280 文章- 3 评论- 19 阅读- 71万
cesium导入3D模型(obj转gltf)
cesium中支持载入3D模型,不过只支持gltf格式。gltf是khronos组织(起草OpenGL标准的那家)定义的一种交换格式,用于互联网或移动设备上展现3d内容,充分支持opengl,webgl,opengles图形加速标准。

在用cesium的过程中难免需要导入建好的obj或dae模型,这时候就需要将这些模型转成gltf格式了
我比较常用的是obj,所以我用的是obj2gltf

obj转gltf步骤
首先在cesium目录下安装obj2gltf(如果没有nodejs的就装一个吧,反正又简单官方还推荐)

npm install --save obj2gltf

然后在node_modules目录下找到obj2gltf,把你需要转的obj和带的贴图放在obj2gltf根目录下(貌似是obj2gltf的bug,指定目录似乎不管),在obj2gltf目录下打开命令行,输入

node bin/obj2gltf.js -i model.obj -o model.gltf

为了避免一个个文件转换的麻烦,参考博客http://blog.csdn.net/u013929284/article/details/53106331,写了一个批处理文件,将文件夹A中的obj文件全部转为对应的gltf文件放入文件夹B中,代码为

@echo off
for /r D:\obj2gltf-master\OBJ %%i in (*.obj) do node bin/obj2gltf.js -i %%i -o OUTPUT\test.gltf
pause & exit

按原博主的方法会报缺少参数,添加-i,-o后解决,成功转换。
成功转换模型后,将模型放到相应路径,使用viewer.scene.primitives.add方法加载

var modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
          Cesium.Cartesian3.fromDegrees(102.73, 25.04,  0));
      var model = viewer.scene.primitives.add(Cesium.Model.fromGltf({
          url : '../Source/SampleData/Models/pangea3dgalleon.gltf',
          modelMatrix : modelMatrix,
          //scale : 10.0,
          maximumScreenSpaceError: 16 // default value
      }));

      viewer.camera.flyTo({
          destination : Cesium.Cartesian3.fromDegrees(102.73, 25.04, 2631.082799425431)
      });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值