gltf与glb格式转换
.gltf: Graphics Language Transmission Format(图形语言传输格式),本质是JSON文件,表示3D内容的场景,可以想象成3D图片;是一种3D的标准格式;
.glb: Graphics Lanuage binary,二进制的gltf文件;
1. gltf-pipeline
缺少啥model,使用npm install model_name
npm install fs-extra
- -o 输出文件名
- -b 输出glb,默认同路径下 name-processed.glt
- -d draco压缩,使用默认参数
node gltf-pipeline.js -i D:\learn1\gltf\outputGLTF\9\9.gltf -b
node gltf-pipeline.js -i D:\learn1\gltf\outputGLTF\9\9.gltf -o D:\learn1\gltf\outputGLTF\9\9_d.gltf -d
2. binary-gltf-utils
3. obj23dtiles
obj2glb
obj2gltf
4. gltf.json与.glb对比
glb实质上是gltf.json+图片等资源打包后的二进制文件;
无图片情况glb会减少10%~40%左右;有图片情况下glb比gltf.json大至少1倍以上;
gltf转换glb,实质上是把gltf依赖的图片等全打包放进了glb中,所以对于没有照片的gltf基本会变小,依赖过多照片的其文件会变大;
使用Windows自带的 3DViewer渲染可以看的出来,gltf.json+依赖图片作为静态资源在同一个目录才可渲染,而glb可直接渲染;
glb无论放在哪个目录单独要给文件就可以渲染;
总体来说,gltf转换glb后,其文件大小有的变小(红色),有的变大(蓝色)。
使用Draco压缩算法回使生成的glb文件变小一点,尤其对于有顶点数据的gltf;