bat 批处理 脚本 for循环 批量压缩gltf模型 gltf批量压缩 gltf压缩转成glb
这里参考两篇文章:
1. 关于gltf压缩转成glb的工具(gltf-pipeline) https://blog.csdn.net/niujing1987/article/details/100639864
2. 关于批处理的知识 https://www.jb51.net/article/134025.htm
一、模型准备
如下图所示,现在有二十多个gltf模型,放在一个文件夹下,要对这些模型进行压缩:
二、首先想到用gltf-pipeline
官方开源地址:https://github.com/CesiumGS/gltf-pipeline
使用方法很简单,进入你的文件目录,打开cmd,只要你安装了npm,就可以直接通过下面一句命令安装gltf-pipeline这个库:
npm install -g gltf-pipeline
安装完成后,按照官方地址的使用说明,直接对模型进行压缩即可,比如:
gltf-pipeline -i model.gltf -o modelDraco.gltf -d
就可以把model.gltf模型压缩。
三、批量处理
gltf-pipeline官方并没有介绍批量处理的方法,下面我们通过批处理来实现:
打开cmd,进入gltf模型存放的路径,如下图,输入命令,回车,就会自动循环执行,批量压缩。(-d表示使用draco算法进行压缩)
for %i in ('dir *.gltf /s /b') do gltf-pipeline -i %i -o %i -d
看一下压缩后的模型大小:
如果还想进一步压缩,可以转成glb格式,使用如下命令:
for %i in ('dir *.gltf ') do gltf-pipeline -i %i -o %~ni.glb
注意唯一的不同就是输出后缀,%i表示文件名带后缀,此时后缀变成glb了,%~ni表示文件名(不带后缀),所以用%~ni加上后缀.glb既可。
转成glb后的大小如下图,可以看到小了很多。
四、知识点总结
1. 批处理的基本语法,写法、格式;
在cmd中使用%i,如果是在bat批处理文件中,要换成%%i
2. gltf-pipeline除了会用,还应该看看他的源码,draco算法到底是怎么回事?是如何达到压缩效果的,gltf和glb这两种格式的区别,转换和压缩的原理是什么。
(学海无涯,只有不断深究,才会真正的进步,与君共勉)
微信搜索:acoolgiser,一起学习成长,交个朋友!^_^
或者直接扫描