glTF 转 GLB 转换

glTF 和 GLB 并不是像 FBX 和 OBJ 那样两种不同的格式;它们是同一份底层 JSON 场景描述的两种不同打包方式,把一个转成另一个,实际上是在回答一个问题:什么时候该把模型保留为人类可读、可用git比对差异的文件,什么时候该把它打包成一个紧凑的二进制文件用于发行。

用 AI 生成这个 3D 模型几秒内通过文字或图片生成定制低多边形模型。

匹配的可下载资产

先使用这些种子模型,再按同一低模方向生成变体。

会员解锁受保护 STL 权限

先用免费 OBJ 验证造型;订阅后当前可立即下载受保护的 STL,GLB、FBX、USDZ 和 Unity 目前仅展示为生产导出目标,并非资源库直链下载。

商用授权当前提供受保护 STL 下载包含每月 AI 积分
查看会员套餐

亮点

  • glTF和GLB描述的是完全相同的JSON场景数据——区别在于打包方式,而非格式本身
  • 松散的.gltf以JSON+独立.bin缓冲区+松散贴图文件的形式交付,至少三个必须一起移动的文件
  • GLB把JSON、二进制缓冲区和每张贴图打包进一个带小型头信息的自包含文件
  • 文本形式的.gltf JSON人类可读、可在git中产生有意义的差异对比——适合开发阶段而非发行
  • Blender的glTF导出提供Separate、Embedded或Binary(.glb)三个选项——选Binary生成单个GLB
  • 松散的.gltf会触发多个独立网络请求(JSON+缓冲区+每张贴图);GLB作为一次请求加载
  • 生产环境的网页/游戏交付应默认选择GLB以求首次加载速度,除非刻意想要流式分别加载贴图
  • 无论打包方式如何,同样的商用授权都适用,无需署名

一个纯粹的 .gltf 文件是描述场景图、节点、材质和访问器布局的 JSON 文本,它几乎总是伴随一个独立的 .bin 文件(存放原始顶点和索引缓冲区),以及供任何贴图使用的松散图像文件(.png 或 .jpg),因此一个"模型"实际上是一个至少包含三个文件的文件夹,它们必须一起移动,并保持正确的相互引用。GLB 是完全相同数据的二进制容器版本:JSON、二进制缓冲区和每一张贴图都被打包进一个带小型头信息的自包含文件里,这正是为什么GLB能在被重命名、移动,或作为单个邮件附件发送后依然完好,而松散的.gltf项目一旦.bin或贴图文件丢失就会损坏。

基于文本的 .gltf 格式在开发阶段有真正的优势,值得在到处默认使用GLB之前先了解:你可以直接在文本编辑器里打开 .gltf 的 JSON,无需任何3D工具就能查看确切的场景层级、节点变换或材质数值;而且因为它是纯文本,.gltf 文件在git里能产生有意义的差异对比,让版本控制系统准确显示两次提交之间哪个节点或材质数值发生了变化,这是二进制GLB永远做不到的。一些工作室会刻意在积极编辑期间把作为真相来源的模型保留为松散的.gltf,以获得这种差异可比性,只在最终发行构建时才转换成GLB。

Blender原生支持这个转换的两个方向:文件 然后 导出 然后 glTF 2.0(.glb/.gltf)会出现一个格式下拉菜单,恰好三个选项——glTF Separate(松散的.gltf+.bin+贴图文件夹)、glTF Embedded(一个把所有内容以base64内联编码的单一.gltf文件,很少有用,因为它既失去了GLB的体积效率,又没获得松散文件的可编辑性),以及glTF Binary(.glb)——因此把一个独立的glTF项目转换成单个GLB,只需选择最后一个选项重新导出,或者如果你只有成品文件而非原始Blender项目,就重新导入.gltf再导出为.glb。

生产环境的网页和游戏交付应该默认选择GLB,具体原因在于加载行为:浏览器或引擎获取一个松散的.gltf会触发多个独立的网络请求——一个用于JSON,一个用于二进制缓冲区,每张贴图各一个——每个都有自己的往返延迟,而单个GLB作为一次请求加载,所有内容已经打包在一起,这直接关系到本站其他网页和AR页面早已强调的首次加载速度。值得了解的一个例外是渐进式或流式加载器,它们刻意想要独立的贴图请求以优先加载几何体;这种特定的优化模式是保留独立glTF文件属于刻意选择、而非疏忽的少数情况。

无论你交付哪种打包方式,模型本身承载的授权都是一样的:本站AI生成的资产归你商用所有,无需署名,因此把一个开发阶段的.gltf项目转换成生产就绪的GLB,或反过来为了更方便的版本控制差异对比,都不会引入任何额外的授权问题,只涉及上述的打包决策。

补全格式工具箱

常见问题

glTF是和GLB不同的格式吗?

不是,它们描述的是同一份底层JSON场景数据。.gltf通常是一个松散的JSON文件加独立的.bin缓冲区和贴图文件;.glb把这一切都打包进一个自包含的二进制文件。

为什么要把模型保留为松散的.gltf文件而非转换成GLB?

纯文本的.gltf JSON人类可读,且能在git中产生有意义的差异对比,因此一些工作室会在积极开发期间把它作为可编辑的真相来源保留,只在最终发行构建时才转换成GLB。

如何在Blender里把一个.gltf项目转换成单个.glb?

使用 文件 > 导出 > glTF 2.0(.glb/.gltf),在格式下拉菜单里选择Binary(.glb)选项,而非Separate或Embedded,把JSON、缓冲区和贴图打包进一个文件。

GLB在网页上加载得比松散的.gltf文件更快吗?

通常更快。松散的.gltf会为JSON、二进制缓冲区和每张贴图触发独立的网络请求,而单个GLB作为一次请求加载,这通常意味着更快的首次加载时间。

我能商用转换后的GLB吗?

可以。生成的模型归你商用所有,无需署名,无论你交付的是松散的glTF文件还是打包好的GLB。

相关页面

查看全部

需要定制低多边形模型?

用文字或参考图生成,然后导出 GLB、FBX、OBJ 或 STL。

打开生成器