• 正文概述
  • GitHub – CesiumGS/gltf-pipeline:用于优化 glTF 资产的内容管道工具。:globe_with_meridians:

    Name
    2 years ago
    2 years ago
    4 months ago
    7 years ago
    3 months ago
    4 months ago
    4 years ago
    8 years ago
    3 years ago
    8 years ago
    2 years ago
    2 years ago
    8 years ago
    4 years ago
    3 months ago
    4 years ago
    4 months ago
    3 months ago
    5 months ago
    2 years ago
    3 months ago

    存储库文件导航

    glTF管线

    许可证 构建状态

    图像描述

    用于优化 glTF 资产的内容管道工具,由 Richard Lee 和 Cesium 团队提供。

    支持常见作,包括:

    • 将 glTF 转换为 glb(并反向)
    • 将缓冲区/纹理保存为嵌入或单独的文件
    • 将 glTF 1.0 模型转换为 glTF 2.0
    • 应用 Draco 网格压缩

    gltf-pipeline可用作命令行工具或Node.js模块。

    开始

    如果还没有安装Node.js,请安装它,然后

    npm install -g gltf-pipeline
    

    使用 gltf-pipeline 作为命令行工具:

    将 glTF 转换为 glb

    gltf-pipeline -i model.gltf -o model.glb

    gltf-pipeline -i model.gltf -b

    将 glb 转换为 glTF

    gltf-pipeline -i model.glb -o model.gltf

    gltf-pipeline -i model.glb -j

    将 glTF 转换为 Draco glTF

    gltf-pipeline -i model.gltf -o modelDraco.gltf -d

    保存单独的纹理

    gltf-pipeline -i model.gltf -t

    使用 gltf-pipeline 作为库:

    将 glTF 转换为 glb:

    const gltfPipeline = require("gltf-pipeline");
    const fsExtra = require("fs-extra");
    const gltfToGlb = gltfPipeline.gltfToGlb;
    const gltf = fsExtra.readJsonSync("./input/model.gltf");
    const options = { resourceDirectory: "./input/" };
    gltfToGlb(gltf, options).then(function (results) {
      fsExtra.writeFileSync("model.glb", results.glb);
    });

    将 glb 转换为嵌入式 glTF

    const gltfPipeline = require("gltf-pipeline");
    const fsExtra = require("fs-extra");
    const glbToGltf = gltfPipeline.glbToGltf;
    const glb = fsExtra.readFileSync("model.glb");
    glbToGltf(glb).then(function (results) {
      fsExtra.writeJsonSync("model.gltf", results.gltf);
    });

    将 glTF 转换为 Draco glTF

    const gltfPipeline = require("gltf-pipeline");
    const fsExtra = require("fs-extra");
    const processGltf = gltfPipeline.processGltf;
    const gltf = fsExtra.readJsonSync("model.gltf");
    const options = {
      dracoOptions: {
        compressionLevel: 10,
      },
    };
    processGltf(gltf, options).then(function (results) {
      fsExtra.writeJsonSync("model-draco.gltf", results.gltf);
    });

    保存单独的纹理

    const gltfPipeline = require("gltf-pipeline");
    const fsExtra = require("fs-extra");
    const processGltf = gltfPipeline.processGltf;
    const gltf = fsExtra.readJsonSync("model.gltf");
    const options = {
      separateTextures: true,
    };
    processGltf(gltf, options).then(function (results) {
      fsExtra.writeJsonSync("model-separate.gltf", results.gltf);
      // Save separate resources
      const separateResources = results.separateResources;
      for (const relativePath in separateResources) {
        if (separateResources.hasOwnProperty(relativePath)) {
          const resource = separateResources[relativePath];
          fsExtra.writeFileSync(relativePath, resource);
        }
      }
    });

    关于和resourceDirectoryallowAbsolute

    如果未指定 a,则 glTF 对象中唯一可能的路径是绝对路径。如果事件在没有 a 的情况下调用并且 glTF 引用绝对路径,它将表现得像 if 为 true,但如果不是,也会发出警告。要摆脱此警告,请在您的选项中添加,例如:resourceDirectoryprocessGltfresourceDirectoryallowAbsoluteallowAbsolute: true

    const options = {
      /*... */
    };
    const results = await processGltf(gltf, options);

    应更改为:

    const options = {
      allowAbsolute: true,
      /*... */
    };
    const results = await processGltf(gltf, options);

    命令行标志

    描述 必填
    --help,-h 显示帮助
    --input,-i glTF 或 glb 文件的路径。 ✅ 是的
    --output,-o glTF 或 glb 文件的输出路径。单独的资源将保存到同一目录。
    --binary,-b 将输入 glTF 转换为 glb。 否,默认false
    --allowAbsolute,-a 允许 glTF 文件引用其源路径之外的文件 URL 否,默认false
    --json,-j 将输入 glb 转换为 glTF。 否,默认false
    --separate,-s 编写单独的缓冲区、着色器和纹理,而不是将它们嵌入到 glTF 中。 否,默认false
    --separateTextures,-t 仅写出单独的纹理。 否,默认false
    --stats 将统计信息打印到控制台以输出 glTF 文件。 否,默认false
    --keepUnusedElements 保留未使用的材质、节点和网格。 否,默认false
    --keepLegacyExtensions 如果为 false,则带有 、 或 的材质将转换为 PBR。KHR_techniques_webglKHR_blendKHR_materials_common 否,默认false
    --draco.compressMeshes,-d 使用 Draco 压缩网格。添加扩展名。KHR_draco_mesh_compression 否,默认false
    --draco.compressionLevel 天龙座压缩水平 [0-10],最大为 10,最小为 0。值为 0 将应用顺序编码并保留人脸顺序。 否,默认7
    --draco.quantizePositionBits 使用 Draco 压缩时位置属性的量化位。 否,默认11
    --draco.quantizeNormalBits 使用 Draco 压缩时法线属性的量化位。 否,默认8
    --draco.quantizeTexcoordBits 使用 Draco 压缩时纹理坐标属性的量化位。 否,默认10
    --draco.quantizeColorBits 使用 Draco 压缩时颜色属性的量化位。 否,默认8
    --draco.quantizeGenericBits 使用 Draco 压缩时,蒙皮属性(关节索引和关节权重)和自定义属性的量化位。 否,默认8
    --draco.unifiedQuantization 使用相同的量化网格量化所有基元的位置。如果未设置,则单独应用量化。 否,默认false
    --draco.uncompressedFallback 添加压缩网格的未压缩回退版本。 否,默认false
    --baseColorTextureNames 从扩展更新到 PBR 材质
    时应考虑引用基色纹理的制服名称。
    KHR_techniques_webgl
    不。(此处未指定默认值)
    --baseColorFactorNames 从扩展更新到 PBR 材质时应考虑参考基本颜色因子
    的制服名称。
    KHR_techniques_webgl
    不。(此处未指定默认值)

    构建说明

    运行测试:

    npm run test
    

    要在整个代码库上运行 ESLint,请运行:

    npm run eslint
    

    要在保存文件时自动运行 ESLint,请运行以下命令并将其在控制台窗口中保持打开状态:

    npm run eslint-watch
    

    构建 CesiumJS 集成

    gltf-pipeline 的某些功能被 CesiumJS 用作第三方库。可以使用以下方法生成必要的文件:

    npm run build-cesium
    

    这会将 gltf-pipeline 代码的一部分输出到文件夹中,以便在浏览器中与 CesiumJS 一起使用。将文件复制到 cesium 存储库中并提交拉取请求。dist/cesiumSource/Scene/GltfPipeline/

    运行测试覆盖率

    覆盖范围使用纽约市。跑:

    npm run coverage
    

    有关完整的覆盖范围详细信息,请打开 。coverage/lcov-report/index.html

    测试和覆盖范围涵盖Node.js模块;它不包括很小的命令行界面

    生成文档

    要生成文档,请执行以下作:

    npm run jsdoc
    

    文档将放置在文件夹中。doc

    贡献

    欢迎拉取请求!请使用与 Cesium 相同的贡献者许可协议 (CLA) 和编码指南

    大约

    用于优化 glTF 资产的内容管道工具。🌐

    主题

    资源

    许可证

    星星

    观察家

    未发布包

    语言

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 用于优化 glTF 资产的内容管道工具。

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录