admin管理员组文章数量:1604751
文章目录
- 1、gltf格式简介
- 2、C# 代码
- 2.1 3dsMax/maya导出插件(Babylon.js)
- 2、python代码
- 2.1 gltflib (v2.0)
- 3、JavaScript代码
- 3.1 OBJ2GLTF(CesiumGS)
- 3.2 three.js编辑器
- 3.2 A-Frame编辑器
- 4、C++代码
- 4.1 COLLADA2GLTF
- 4.2 FBX2glTF
- 结语
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/BabylonJS/Exporters/releases
下载之后,解压如下:
将上面解压的文件夹里面的所有复制到3dsmax的特定文件夹里,如下图所示:
然后重新启动3dsmax,菜单栏会出现Babylon的菜单,见下图的红圈圈:
选择需要导出的场景模型,点击菜单之后,弹出如下的导出设置对话框。
2、python代码
2.1 gltflib (v2.0)
详细操作见作者的另一篇文章:
【CAD开发】glTF和b3dm文件格式读取(C++,Python)
https://blog.csdn/hhy321/article/details/121916664
3、JavaScript代码
3.1 OBJ2GLTF(CesiumGS)
Convert OBJ assets to glTF 2.0.
https://github/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/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/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/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???
如果您需要相关功能的代码定制化开发,可以留言私聊作者。(✿◡‿◡)
感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!
版权声明:本文标题:【CAD开发】gltf文件格式的转换工具汇总(js、python、c++) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728463691a1159235.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论