立即体验
亲身体验压缩 GLB 文件的效果
拖入 GLB 或 GLTF 文件,创建免费账户,即可下载压缩后的模型。
如何压缩 GLB 文件
只需三步,大多数模型的体积可减小 60–90%。
- 1
上传模型
将不超过 500 MB 的 .glb 或 .gltf 文件拖入控制台,也可以一次批量上传多个模型。
- 2
选择设置
从预设开始,或自行设置 Draco 压缩级别、量化位数、纹理最大尺寸和纹理格式(WebP、AVIF、JPEG 或 PNG)。
- 3
下载压缩后的文件
获得经过验证的 GLB 文件,可在 three.js、Babylon.js、<model-viewer>、Unity 和 Unreal 中加载。源文件和输出文件会在 24 小时后删除。
您的模型会经过哪些处理
- Draco 几何压缩。 对顶点位置、法线和 UV 进行量化和熵编码,通常可将几何数据缩小 80–95%。了解 Draco 的工作原理
- 纹理缩放与重新编码。 过大的纹理会被缩小(例如从 4K 降到 2K),并转换为 WebP 或 AVIF。对于纹理较多的产品模型,这一步通常节省的空间最多。
- 清理。 移除重复和未使用的顶点以及其他未使用的数据,还可以对网格进行焊接、合并、扁平化或实例化。
- 可选的网格简化。 减少高密度扫描、摄影测量和 CAD 导出模型的三角面数。
- 验证。 每个输出文件都会经过官方 Khronos glTF 验证器检查,您也可以通过我们免费的在线 glTF 验证器使用它。
您的 .gltf 由多个文件组成?可以使用免费的 glTF 转 GLB 工具将其打包为单个文件,或通过压缩 API 实现全流程自动化。
功能
节省时间和带宽
GLB 文件压缩工具
将 GLB 文件体积最多减小 90%,同时保持出色的视觉效果。这款 GLB 优化工具基于 gltf-transform 构建,能高效处理您的 3D 模型,且不牺牲视觉质量。
附带 GLTF 验证器
每个 GLB 和 GLTF 文件都会自动验证,可发现常见问题,确保压缩后的模型在各种目标环境中都能正常使用。
快速压缩 API
简单的 REST API,可快速处理您的 GLB 文件。非常适合希望在应用中轻松加入 GLB 压缩功能的开发者。
创建自定义预设
将常用的压缩设置保存为自定义预设。参数只需设置一次,即可在不同项目中重复使用,无需记住所有设置。
精细的压缩控制
可调整纹理质量、几何简化和动画压缩,精确获得您想要的效果。适合希望更细致地控制 GLB 优化的用户。
贴心的支持
对集成或压缩设置有疑问?欢迎随时联系!我们很乐意帮您充分用好 GLB 压缩工作流。
免费积分,轻松上手
创建免费账户即可获得 1 个压缩积分,无需信用卡。非常适合用来测试这款 GLB 压缩工具在您的模型上效果如何。
GLB 批量处理
可上传多个 GLB 文件(每个最大 500 MB)并一次性全部压缩。处理在我们的服务器上进行,因此大型模型不会受到浏览器内存限制。
实时进度更新
通过进度条和状态更新实时查看 GLB 压缩过程,不用再担心任务是否卡住或出错。
保持模型质量
gltf-transform 承担了繁重的处理工作,在缩小模型体积的同时保持良好的视觉效果。颜色、纹理和动画均完好保留。
轻松集成 API
简洁的 REST 端点,配有清晰的文档。只需几行代码,就能将 GLB 文件压缩加入您的工作流,无需复杂配置。
内置 GLB 验证器
每个压缩后的文件都会经过检查,确保其有效且可直接使用。帮助您在部署优化后的 GLB 文件之前发现问题。
代码示例
轻松集成
同步上传可立即获得结果,异步上传适合大批量文件。下面介绍如何快速上手。
import fs from 'fs';
import path from 'path';
async function compressGLB(inputPath, outputPath) {
const fileBuffer = fs.readFileSync(inputPath);
const formData = new FormData();
formData.append('file', new Blob([fileBuffer]), path.basename(inputPath));
const upload = await fetch('https://api.compress-glb.com/api/1/files/upload/sync', {
method: 'POST',
headers: { 'Authorization': '<API_KEY>' },
body: formData
});
const [job] = await upload.json();
const compressed = await fetch(job.compressed_file_url);
fs.writeFileSync(outputPath, Buffer.from(await compressed.arrayBuffer()));
}