glTF转GLB转换器
glTF导出通常包含三类文件:一个.gltf JSON文件、一个或多个.bin缓冲区文件,以及一个贴图文件夹。GLB是把同一个模型打包成单个二进制文件,上传表单、查看器和AR应用通常都要求这种格式。
3D 模型转换器
或将STL, OBJ, MTL … 文件拖放到此处 ·
单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除
文件在我们的服务器上处理,并在 30 分钟后删除。
STL 和 OBJ 不保存单位。如果零件在切片软件中显示得小了或大了 10 倍或 25.4 倍,说明单位读取有误,请在此处设置。
Blender、CAD 软件和切片软件使用 Z 轴向上;glTF、Unity 和大多数游戏引擎使用 Y 轴向上。如果导入后模型是侧躺的,请切换此项。
将 STEP 或 IGES 实体转换为网格时使用。精细的曲线更平滑,但文件更大;粗糙足够用于快速预览。
仅用于 PNG、JPG 或 SVG 输入。浮雕会抬高暗部区域;灯影相片(Lithophane)是一块薄板,背光时可显示照片;拉伸则把徽标或 SVG 轮廓变成平面实体形状。
打印模型的宽度;高度按图片的宽高比自动计算。
浮雕或灯影相片的最大凸起高度,或拉伸形状的厚度。灯影相片通常使用 2–3 mm。
浮雕下方的实心底板,使打印件保持整体。0 表示没有底板。
使用方法
- 1
将glTF文件夹压缩成ZIP
将 .gltf、它的 .bin 文件和纹理图片放进同一个 ZIP,保持导出时生成的文件夹结构,然后上传。内嵌数据的独立 .gltf 可以单独上传。最多 20 个文件,每个不超过 95 MB。
- 2
模型保持原样
模型单位保持为 m,向上轴选“保持”,因为有效的 glTF 本来就以米为单位、Y 轴向上。保留纹理和材质保持开启,这样所有图片都会嵌入。
- 3
转换为GLB
点击转换为 GLB,每个模型下载一个文件。上传的文件和转换结果会在 30 分钟后删除。
glTF 和 GLB 有什么区别?
它们存储的是同一个 glTF 2.0 模型。.gltf 是可读的 JSON,指向单独的 .bin 和图片文件;GLB 则把 JSON、缓冲区和图片打包进一个二进制文件。
为什么要把glTF打包成GLB
Khronos Group 在 2017 年发布了 glTF 2.0,把它设计为传输格式:位于 3D 工具与最终展示模型的一方之间的最后一步。JSON 形式对开发者很友好,可以直接阅读和编辑,但实际使用中比较脆弱。只要重命名了纹理、上传 .gltf 时漏掉 .bin,或者 CMS 抹掉了文件夹结构,模型加载后就会缺少几何体或出现白色表面。
GLB 把所有内容放进一个容器,解决了这个问题。Shopify 商品媒体、Android 的 Scene Viewer、Google 的 model-viewer 和大多数素材市场都因此要求使用 GLB。转换是无损的:转换器读取 JSON,加载它引用的每个缓冲区和图片,把它们写入一个二进制数据块,并把引用改为指向文件内部。
GLB文件的结构
- 文件头:魔数 glTF、版本 2 和总长度
- 12 字节
- 先是 JSON,然后是包含缓冲区和图片的一个 BIN 数据块
- 2 个数据块
- 每个数据块填充对齐的字节数
- 4 字节
- 代替 .gltf + .bin + 纹理
- 1 个文件
GLTF
GL 传输格式
glTF 是 Khronos Group 于 2015 年首次发布的开放 3D 格式,常被称为“3D 界的 JPEG”。.gltf 文件是描述场景的 JSON,通常还附带单独的 .bin 几何文件和纹理图像文件。它支持 PBR 材质、动画和蒙皮,专为高效的实时渲染而设计。分享时这些单独的文件可能会丢失,因此人们常常更倾向于使用单文件的 GLB 形式。
- 压缩方式
- –
- 透明度
- –
- 动画
- 支持
- 发布年份
- 2015 · Khronos Group
GLB
glTF 二进制 (GLB)
GLB 是 glTF 2.0 的二进制形式,glTF 是 Khronos Group 于 2017 年发布的 3D 传输格式。它把几何体、PBR 材质、纹理和动画打包进一个为快速加载而设计的紧凑文件。GLB 广泛用于网页 3D、AR 查看器、Android Scene Viewer 和在线模型市场。一些较旧的桌面 3D 工具和 CAD 程序无法导入它。
- 压缩方式
- –
- 透明度
- –
- 动画
- 支持
- 发布年份
- 2017 · Khronos Group
glTF 转 GLB 是一个打包步骤:上传表单、Android AR 和网页查看器都需要单个自包含的模型,所以人们把 .gltf、它的 .bin 缓冲区和纹理合并成一个文件。
解决.bin和贴图缺失报错
GLB 没有几何体,或转换失败
没有上传 .bin 缓冲区文件。请把它和 .gltf 一起打成 ZIP,并保持 JSON 中引用的文件名不变。
表面是白色或灰色
纹理缺失。用文本编辑器打开 .gltf,检查图片的 uri 条目,并把这些文件按相同的相对路径放进 ZIP。
纹理路径以 C:\ 或 /Users 开头
导出器写入了绝对路径。请使用相对路径重新导出,或把图片移到 .gltf 旁边,并把 uri 改成单纯的文件名。
纹理是 KTX2 或 WebP
它们需要 KHR_texture_basisu 或 EXT_texture_webp 扩展,部分查看器不支持。请改用 PNG 或 JPEG 重新导出,兼容性最广。
glTF转GLB常见问题
glTF转GLB会改变模型吗?
不会。网格、材质、节点名称、动画和蒙皮都原样复制,只是封装方式变了。JSON 被放进 GLB 的第一个数据块,缓冲区和图片则放进它的二进制数据块。
为什么要上传ZIP,而不是只上传.gltf?
分离文件的 glTF 只是通过相对路径指向 .bin 和纹理。单独上传时,这些链接无处可寻,生成的 GLB 会缺少几何体或图片。把文件夹打成 ZIP,就能让所有被引用的文件都保留在 .gltf 旁边。我们的指南在任何设备上解压文件也介绍了反向操作。
GLB会比glTF更小吗?
与把所有内容以 base64 文本内嵌的 .gltf 相比,会小约四分之一,因为 base64 会让二进制数据增大约三分之一。与 .gltf 加 .bin 和图片的组合相比,总大小基本不变,好处是只有一个文件。
支持Draco压缩的glTF文件吗?
使用 KHR_draco_mesh_compression 扩展的 glTF 可以被读取,几何体会保留。如果需要尽可能小的网页文件,可以用 glTF-Transform 之类的工具对生成的 GLB 再做 Draco 或 meshopt 压缩。
能把GLB再转回独立的glTF文件吗?
可以。上传 GLB,在3D 模型转换器的转换为中选择 glTF。当你想手动编辑 JSON,或不重新导出就替换某张纹理时,这很有用。
哪些软件导出的glTF可以这样打包?
Blender 的 glTF 导出器可以直接写出 glTF Separate 或 GLB,Sketchfab 下载、Substance 工具和大多数游戏引擎导出器也可以。如果你的工具只提供分离形式,用本页就能得到单个文件。