GitHub – CesiumGS/gltf-pipeline:用于优化 glTF 资产的内容管道工具。:globe_with_meridians:
| Name | ||
|---|---|---|
|
4763d6a · 3 months ago
|
||
|
|
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 资产的内容管道工具,由 Richard Lee 和 Cesium 团队提供。
支持常见作,包括:
- 将 glTF 转换为 glb(并反向)
- 将缓冲区/纹理保存为嵌入或单独的文件
- 将 glTF 1.0 模型转换为 glTF 2.0
- 应用 Draco 网格压缩
gltf-pipeline可用作命令行工具或Node.js模块。
npm install -g gltf-pipeline
gltf-pipeline -i model.gltf -o model.glb
gltf-pipeline -i model.gltf -b
gltf-pipeline -i model.glb -o model.gltf
gltf-pipeline -i model.glb -j
gltf-pipeline -i model.gltf -o modelDraco.gltf -d
gltf-pipeline -i model.gltf -t
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);
});
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);
});
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);
}
}
});
如果未指定 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
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) 和编码指南。
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 用于优化 glTF 资产的内容管道工具。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办
