【CAD开发】gltf文件格式的转换工具汇总(js、python、c++)

1、gltf格式简介

glTF(GL传输格式)是Khronos的一个开放项目,它为3D资产提供了一种通用的、可扩展的格式,这种格式既高效又与现代web技术高度互操作。The gltf-model组件使用glTF ( .gltf或 .glb)文件来加载模型数据。请注意,glTF是一个相当新的规范,采用率仍在增长。
在这里插入图片描述

陈旧的obj格式只支持顶点、法线、纹理坐标和基本材质,而glTF提供了一组更强大的功能。除上述所有内容外,glTF还提供:

  • 层级对象
  • 场景信息(光源,相机)
  • 骨骼结构与动画
  • 更可靠的材质和着色器
  • 对于没有动画的简单模型,OBJ仍然是一个常见而可靠的选择。

和COLLADA相比,支持的功能非常相似。然而,由于glTF侧重于提供“传输格式”而不是编辑器格式,因此它与web技术的互操作性更强。类似地,.PSD(Adobe Photoshop)格式有助于编辑二维图像,但图像会转换为.JPG格式以供在web上使用。同样,glTF是一种更简单的传输3D资源的方式,同时呈现相同的结果。
在这里插入图片描述

2、C# 代码

2.1 3dsMax/maya导出插件(Babylon.js)

Exporters for Babylon.js and gltf file formats

https://github.com/BabylonJS/Exporters/releases

在这里插入图片描述
下载之后,解压如下:
在这里插入图片描述
将上面解压的文件夹里面的所有复制到3dsmax的特定文件夹里,如下图所示:
在这里插入图片描述
然后重新启动3dsmax,菜单栏会出现Babylon的菜单,见下图的红圈圈:
在这里插入图片描述
选择需要导出的场景模型,点击菜单之后,弹出如下的导出设置对话框。
在这里插入图片描述

2、python代码

2.1 gltflib (v2.0)

详细操作见作者的另一篇文章:

【CAD开发】glTF和b3dm文件格式读取(C++,Python)
https://blog.csdn.net/hhy321/article/details/121916664

3、JavaScript代码

3.1 OBJ2GLTF(CesiumGS)

Convert OBJ assets to glTF 2.0.

https://github.com/CesiumGS/obj2gltf

  • 安装库
npm install -g obj2gltf
  • 命令行运行
obj2gltf -i model.obj
obj2gltf -i model.obj -o model.gltf
obj2gltf -i model.obj -o model.glb
  • 代码运行
const obj2gltf = require("obj2gltf");
const fs = require("fs");
const options = {
  binary: true,
};
obj2gltf("model.obj", options).then(function (glb) {
  fs.writeFileSync("model.glb", glb);
});

3.2 three.js编辑器

https://threejs.org/editor/
在这里插入图片描述

与three.js 编辑器的集成非常简单,该编辑器支持导入大量 3d 格式,它可以用作从这些格式到 glTF 的高级转换器。

3.2 A-Frame编辑器

https://aframe.io/examples/showcase/modelviewer/

A-Frame提供了加载glTF, OBJ, COLLADA模型的组件。我们推荐尽可能使用glTF,因为glTF被采纳为通过web传输3d模型的标准。我们可以编写任何three.js支持的文件格式的加载组件:three.js loader。我们也可以在社区中尝试查找组件,找到用来处理其他的格式(比如,PLY, FBX, JSON)的现成组件。
A-Frame可以通过左上角的工具栏按钮导出gltf文件。

在这里插入图片描述

4、C++代码

4.1 COLLADA2GLTF

A command-line tool to convert COLLADA (.dae) files to glTF.

  • 下载代码
git clone --recursive https://github.com/KhronosGroup/COLLADA2GLTF.git
  • 编译
cd COLLADA2GLTF
mkdir build
cd build
cmake .. #-Dtest=ON
# Linux
make
# Windows
## Open the generated COLLADA2GLTF.sln in Visual Studio and build
  • 运行
COLLADA2GLTF[.exe] [input] [output] [options]

4.2 FBX2glTF

A command-line tool for the conversion of 3D model assets on the FBX file format to the glTF file format.

https://github.com/facebookincubator/FBX2glTF

This is a command line tool for converting 3D model assets on Autodesk’s venerable FBX format to glTF 2.0, a modern runtime asset delivery format.

Precompiled binaries releases for Windows, Mac OS X and Linux may be found here.
在这里插入图片描述
在这里插入图片描述

FBX2glTF ~/models/butterfly.fbx

FBX2glTF --binary --draco --verbose \
          --input ~/models/source/butterfly.fbx \
          --output ~/models/target/butterfly.glb
FBX2glTF 0.9.7: Generate a glTF 2.0 representation of an FBX model.
Usage: FBX2glTF [OPTIONS] [FBX Model]
  • 运行测试如下:
    准备一个测试的文件:duck.fbx
    在这里插入图片描述
    测试相关文件放在一个文件夹里,如下:
    在这里插入图片描述
    在命令行中执行如下指令:
FBX2glTF-windows-x64.exe duck.fbx

在这里插入图片描述
生成一个结果文件夹,里面有生成的gltf文件。
在这里插入图片描述
在这里插入图片描述
在vscode里面测试转化的gltf文件,如下:
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进。o_O???
如果您需要相关功能的代码定制化开发,可以留言私聊作者。(✿◡‿◡)
感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值