GitHub – donmccurdy/glTF-Transform:用于 Web 和 Node.js 上的 JavaScript 和 TypeScript 的 glTF 2.0 SDK。
| Name | ||
|---|---|---|
|
0ee6f76 · 3 days ago
|
||
|
|
last week
|
|
|
|
3 months ago
|
|
|
|
5 days ago
|
|
|
|
7 months ago
|
|
|
|
5 years ago
|
|
|
|
last year
|
|
|
|
2 years ago
|
|
|
|
last year
|
|
|
|
3 months ago
|
|
|
|
7 months ago
|
|
|
|
last year
|
|
|
|
last year
|
|
|
|
5 days ago
|
|
|
|
3 months ago
|
|
|
|
last week
|
|
|
|
4 months ago
|
|
|
|
3 days ago
|
|
存储库文件导航
适用于 Web 和 Node.js 的 JavaScript 和 TypeScript 的 glTF 2.0 SDK。
glTF Transform 支持读取、编辑和写入 glTF 2.0 格式的 3D 模型。与 3D 建模工具(非常适合对几何体、材质和动画进行艺术更改)不同,glTF 变换可对 3D 模型中的低级细节进行快速、可重复和无损的控制。该 API 会自动管理数组索引和字节偏移量,否则在编辑文件时需要仔细管理。这些特征使其成为捆绑、拆分或优化现有模型的不错选择。它还可用于对常见问题应用快速修复、按过程生成模型或在 glTF 格式之上轻松开发自定义扩展。由于核心 SDK 与 Node.js 和 Web 兼容,因此 glTF Transform 可用于开发离线工作流和 Web 应用程序等。
包:
@gltf-transform/core:Core SDK,提供一个富有表现力的 API 来读取、编辑和写入 glTF 文件。@gltf-transform/extensions:Core SDK 的扩展(可选的 glTF 功能)。@gltf-transform/functions:使用核心 API 编写的常见 glTF 修改函数。@gltf-transform/cli:命令行界面 (CLI),用于快速或批量将函数应用于 glTF 文件。
将 glTF Transform 用于个人项目?真棒!赞助既不是期望的,也不是必需的。感觉 如果您制作了一些您感兴趣的东西,可以免费分享屏幕截图——我喜欢看到这些!
在营利性工作中使用 glTF Transform?这太棒了!您的支持对于保持 glTF Transform 很重要 在 MIT 许可下维护、独立和开源。请考虑订阅或 GitHub 赞助。
在 glTF Transform Pro 常见问题解答中了解更多信息。
安装脚本包:
npm install --save @gltf-transform/core @gltf-transform/extensions @gltf-transform/functions
使用平台 I/O 实用程序 WebIO、NodeIO 或 DenoIO 读取和写入 glTF 场景:
import { Document, NodeIO } from '@gltf-transform/core';
import { ALL_EXTENSIONS } from '@gltf-transform/extensions';
import draco3d from 'draco3dgltf';
// Configure I/O.
const io = new NodeIO()
.registerExtensions(ALL_EXTENSIONS)
.registerDependencies({
'draco3d.decoder': await draco3d.createDecoderModule(), // Optional.
'draco3d.encoder': await draco3d.createEncoderModule(), // Optional.
});
// Read from URL.
const document = await io.read('path/to/model.glb');
// Write to byte array (Uint8Array).
const glb = await io.writeBinary(document);
要对现有 glTF 文档执行更改,请从 Functions 包导入现成的脚本,或使用 Material、Primitive 和 Texture 等 API 类编写自己的脚本。
import { resample, prune, dedup, draco, textureCompress } from '@gltf-transform/functions';
import sharp from 'sharp'; // Node.js only.
await document.transform(
// Losslessly resample animation frames.
resample(),
// Remove unused nodes, textures, or other data.
prune(),
// Remove duplicate vertex or texture data, if any.
dedup(),
// Compress mesh geometry with Draco.
draco(),
// Convert textures to WebP (Requires glTF Transform v3 and Node.js).
textureCompress({
encoder: sharp,
targetFormat: 'webp',
resize: [1024, 2024],
}),
// Custom transform.
backfaceCulling({cull: true}),
);
// Custom transform: enable/disable backface culling.
function backfaceCulling(options) {
return (document) => {
for (const material of document.getRoot().listMaterials()) {
material.setDoubleSided(!options.cull);
}
};
}
若要了解 glTF 转换的工作原理以及脚本 API 的体系结构,请从概念开始。若要在不安装任何内容的情况下试用脚本 API,请访问 gltf.report/,加载 glTF 模型,然后打开“脚本”选项卡。
安装 CLI,Node.js LTS 版本支持。
npm install --global @gltf-transform/cli
列出可用的 CLI 命令:
gltf-transform --help
一次性优化所有内容:
gltf-transform optimize input.glb output.glb --texture-compress webp
或者挑选您的优化,构建自定义管道。
使用 Draco 或 Meshoptimizer 压缩网格几何体:
# Draco (compresses geometry).
gltf-transform draco input.glb output.glb --method edgebreaker
# Meshopt (compresses geometry, morph targets, and keyframe animation).
gltf-transform meshopt input.glb output.glb --level medium
使用 Sharp 调整纹理大小和压缩纹理,或使用 KTX2 和 Basis Universal 提高 VRAM 使用率和性能:
# Resize textures.
gltf-transform resize input.glb output.glb --width 1024 --height 1024
# Compress textures with WebP.
gltf-transform webp input.glb output.glb --slots "baseColor"
# Compress textures with KTX2 + Basis Universal codecs, UASTC and ETC1S.
gltf-transform uastc input.glb output1.glb \
--slots "{normalTexture,occlusionTexture,metallicRoughnessTexture}" \
--level 4 --rdo --rdo-lambda 4 --zstd 18 --verbose
gltf-transform etc1s output1.glb output2.glb --quality 255 --verbose
参见制作人员名单。
版权所有 2024,麻省理工学院许可证。
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » 适用于 Web 和 Node.js 的 JavaScript 和 TypeScript 的 glTF 2.0 SDK。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办
