cesium OBJ转换GLTF加载
时间: 2025-01-22 11:44:11 浏览: 54
### Cesium 中 OBJ 文件转换为 GLTF 并加载的方法
#### 安装 obj2gltf 工具
为了实现从OBJ到GLTF的转换,需先获取`obj2gltf`这个由Cesium官方提供的库。通过Git克隆仓库或直接下载ZIP包来获得源码[^3]。
```bash
git clone https://github.com/AnalyticalGraphicsInc/obj2gltf.git
cd obj2gltf
npm install --save obj2gltf
```
#### 准备待转换文件
将要被转换的`.obj`以及关联材质文件放置于`node_modules\obj2gltf`目录内[^2]。
#### 执行转换操作
利用Node.js环境运行脚本完成格式转变:
```javascript
const fs = require('fs');
const path = require('path');
const { convert } = require('@cesium/obj2gltf');
async function main() {
const inputFilePath = path.join(__dirname, 'model.obj'); // 输入路径
const outputFilePath = path.join(__dirname, 'output.gltf'); // 输出路径
await convert({
filePath: inputFilePath,
writeOptions: {
binary: true, // 是否输出为glb二进制格式,默认false即json文本加base64编码纹理的形式
embedImages: false // 图像资源是否嵌入至单个文件中
},
outputPath: outputFilePath
});
}
main().catch(console.error);
```
这段JavaScript代码展示了如何调用`@cesium/obj2gltf`模块中的API来进行实际的对象转化工作[^1]。
#### 验证转换成果
建议使用专门设计用于浏览GLTF模型结构和服务端渲染测试的应用程序验证转换效果,比如访问[gltf-viewer](https://gltf-viewer.donmccurdy.com/)站点上传刚刚生成的新文件确认无误后再继续下一步骤[^4]。
#### 在 Cesium 应用里集成新模型
当一切准备就绪后就可以着手把新的GLTF资产加入到基于Cesium构建的地图应用当中去了:
```javascript
var viewer = new Cesium.Viewer('cesiumContainer', {});
// 创建实体并指定其属性
var entity = viewer.entities.add({
name : 'My Model',
position : Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222),
model : {
uri : './models/output.gltf'
}
});
// 自动调整摄像机位置聚焦该物体
viewer.trackedEntity = entity;
viewer.zoomTo(entity);
// 如果觉得默认显示比例不合适还可以进一步微调视距参数
viewer.camera.lookAt(
entity.position.getValue(Cesium.JulianDate.now()),
new Cesium.Cartesian3(0,-1000000,0) // X,Y,Z坐标系下的偏移量向量
);
```
上述代码片段实现了创建一个包含特定地理坐标的三维模型实例,并将其添加到了场景之中;同时设置了初始观察角度使得用户能够清晰看到整个模型全貌[^5]。
阅读全文
相关推荐


















