gltf-pipeline压缩gltf/glb模型的贴图

gltf-pipeline是一个gltf/glb模型的nodejs类库,使用此类库能够对gltf模型做进一步的处理,处理完成的gltf/glb模型,一般是将贴图文件包含到模型内容中,有时模型的显示并不需要太精细,将模型中的贴图进行压缩,能够减小模型的整体大小,加快模型的浏览速度。
1、将模型中的贴图分离出来,gltf-pipeline实现的具体方式是:

//gltf-pipeline的nodejs引用
const gltfPipeline = require('gltf-pipeline');
//使用processGltf进行模型的再处理
const processGltf = gltfPipeline.processGltf;
//设置贴图分离属性
const options = {
            separateTextures: true
        };
        //gltfmodel将模型进行分离处理,separateResources包含贴图文件
        const results = await processGltf(gltfmodel, options) 
        const separateResources = results.separateResources;
        //将贴图文件都保存在本地的路径中
         for (const relativePath in separateResources) {
            if (separateResources.hasOwnProperty(relativePath)) {
                const resource = separateResources[relativePath];
                fsExtra.writeFileSync('data/' + relativePath, resource);
           }
         }

2、分离出来的图片,再进行压缩处理,这里推荐使用nodejs的jimp库,
对于png图片,使用改变尺寸大小,或不存在透明信息的图片,转换成jpg图片,jpg图片能够进一步的按照质量进行压缩;
3、图片处理完成后,使用gltf-pipeline对模型文件转换成gltf/glb再处理,
合并成一个文件:

//使用gltftoglb进行转换
const gltfToGlb = gltfPipeline.gltfToGlb;

引用内容:
https://www.npmjs.com/package/gltf-pipeline
https://www.npmjs.com/package/jimp

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值