我可以使用带有node.js的draco编码器压缩glb文件吗?

时间:2019-05-24 06:16:37

标签: node.js three.js gltf

我上传了obj文件,并将其转换为glb上的three.js文件。因此,我想使用Draco encoder压缩文件,但是我只知道如何使用cmd压缩文件。有没有办法使用node.js进行压缩?

编辑

我自己解决了。该方法很简单。我只是安装this。 而且,我的代码在这里。

const gltfPipeline = require('gltf-pipeline');
const fsExtra = require('fs-extra');
const path = require('path');
const glbToGltf = gltfPipeline.glbToGltf;
const processGltf = gltfPipeline.processGltf;

const glb = fsExtra.readFileSync(path.resolve(__dirname+'/../public/glbFiles/' + req.filename));
const options = {
  dracoOptions: {
    compressionLevel: 10
  }
};
glbToGltf(glb)
  .then(gltf => {
    processGltf(gltf.gltf, options)
        .then(results => {
          fsExtra.writeJsonSync(path.resolve(__dirname + '/../public/compressionFiles/' + req.filename.split('.')[0] + '.gltf'), results.gltf);
        });
  });

我希望您也能解决此问题。加油!

1 个答案:

答案 0 :(得分:0)

使用npm module

DRACOExporter/examples/js/exporters转换为模块