GLB vs glTF:何が違う?
GLB vs glTFはデータではなくパッケージの違い。.gltfは別ファイルを伴う読めるJSON、.glbはすべてを1つにまとめたもの。配布はGLB、編集はglTF、変換はロスレス。
- Khronos glTF 2.0仕様
- 実測ファイルサイズ
- ロスレス変換
GLB vs glTF:結論から言うと
glTFはKhronos Groupによる、3DシーンをアプリやWebに配信するためのオープン形式です。GLBは別の形式ではなく、そのバイナリコンテナです。仕様では両方が定義されています。.gltfファイルはJSON(メディアタイプmodel/gltf+json)で、.glbファイル(model/gltf-binary)は同じJSONと1つのバイナリバッファを1ファイルに包み込みます。
つまりGLB vs glTFの問いは品質ではなくパッケージの話です。メッシュ、PBRマテリアル、テクスチャ、アニメーション、スキン、モーフターゲットはどちらでも同じように保たれます。変わるのは、扱うファイルの数、シーン記述をテキストエディタで開けるかどうか、そしてバイナリをJSON内に埋め込んだ場合に余分にかかるサイズです。
ほとんどの人にとって答えはGLBです。アップロード、メール添付、three.js、Babylon.js、<model-viewer>、Blender、Unity、Unrealへのドロップが1ファイルで済みます。デバッグ中、マテリアル値を手で編集する、CDN上で多数のモデル間でテクスチャを共有する、といった場合は別ファイルのglTFを選びましょう。
GLB vs glTF 比較表
どちらもglTF 2.0なので、ほとんどの行は同じです。違いが出る行こそが、あなたのプロジェクトでGLB vs glTFを決める行です。
| GLB(.glb) | glTF(.gltf) | |
|---|---|---|
| ジオメトリの種類 | トライアングルメッシュ(ポイントやラインも可)、ノード階層、スキン、モーフターゲット | 同一 |
| 色・テクスチャ | PNGまたはJPEGテクスチャをバイナリチャンク内に格納。頂点カラー | テクスチャは個別の画像ファイル、またはJSON内のbase64データURI |
| 単位 | 仕様に準拠し、メートル、右手系、+Yアップ | 同一 |
| マテリアル | PBRメタリック・ラフネスを標準搭載。KHR拡張でさらに拡張可能 | 同一 |
| ファイルサイズ | 最小の単一ファイル形式:12バイトのヘッダーとJSONチャンク、BINチャンク | 別ファイル構成と同じ総バイト数。バイナリをbase64で埋め込むと約33%増 |
| 編集しやすさ | バイナリ。確認にはツールが必要 | JSONは人間が読めて、テキストエディタで差分も取れる |
| ソフトウェア対応 | three.js、Babylon.js、model-viewer、Blender、Unity、Unreal、Godot、Windows 3D Viewer | 同じローダーで読めるが、外部ファイルは正しい相対フォルダに置く必要がある |
| 印刷用途 | 印刷用フォーマットではない。UltiMaker Curaは開けるが、ほとんどのスライサーは非対応 | 同じ。印刷するにはSTLか3MFに変換 |
| ファイル数 | 1 | 1〜複数(.gltf、.bin、画像) |
出典:Khronos glTF 2.0仕様(ファイル拡張子、座標系と単位、GLBファイル形式の各セクション)。
glTFからGLBファイルができるまで
GLBは12バイトのヘッダーから始まります。マジックバイトglTF、バージョン(2)、全体の長さです。続いてチャンクが並びます。最初はJSONチャンクで、.gltfが持つのと同じシーン記述です。2つ目はBINチャンクで、頂点位置、法線、UV、インデックス、アニメーションのキーフレーム、そして通常はテクスチャ画像そのものが入ります。
.gltfはそのJSONを単独のファイルとして保持し、バイナリデータを2通りの方法で参照します。隣に置いた.binや画像ファイルへの相対パスか、バイト列をそのままJSONにbase64エンコードして埋め込むデータURIです。仕様自身が、base64はペイロードのバイト長を33%増やし、デコードにも余分な処理がかかると述べています。これがGLBが存在する主な理由です。
- GLB:ヘッダー+JSONチャンク+BINチャンクの1ファイル
- glTF:JSON+.bin+画像が並ぶ構成
- 埋め込みglTF:1ファイルだがbase64で3割増
GLB vs glTFのファイルサイズ:同じモデルを3通りにパッケージ
ギャラリーからテクスチャ付きのAI生成モデル、50万トライアングル・287,963頂点・2048×2048のPNGテクスチャ3枚のスチームパンクロボット騎士を選び、各パッケージングを計測しました。
| パッケージ | ファイル数 | サイズ |
|---|---|---|
| GLB | 1 | 26.9 MB |
| glTF+.bin+PNGテクスチャ | 5(.gltf、.bin、PNG3枚) | 合計約26.9 MB。.gltfのJSON単体は約2 KB |
| base64データ埋め込みのglTF | 1 | 約35.9 MB |
| バイトの内訳 | ジオメトリ15.2 MB、テクスチャ11.7 MB |
パッケージを変えてもサイズは減りません。モデルを軽くするには、ジオメトリを圧縮(Dracoやmeshopt)する、テクスチャを縮小・再エンコードする、トライアングル数を減らす。当サイトのGLB圧縮ツールとメッシュ簡略化ツールならブラウザで完結します。
Web・AR・BlenderでのglTF vs GLB
WebではGLBが実質的なデフォルトです。リクエスト1回、キャッシュ1エントリで、主要なローダーはすべて読めます。同じテクスチャを共有する多数のモデルを表示するサイトでは、別ファイルのglTFが有利なこともあります。ブラウザが共有画像を1度だけダウンロードするからです。仕様の実装ノートにもこのトレードオフが書かれています。
ARでは、AndroidのScene ViewerはglTFとGLBを扱えますが、iPhoneのApple Quick LookはUSDZが必要です。両方を公開し、Apple端末向けにはGLBをUSDZに変換しましょう。BlenderではFile > Import > glTF 2.0でどちらも読み込め、エクスポーターのFormatメニューにはglTF Binary(.glb)とglTF Separate(.gltf+.bin+テクスチャ)があります。理由がなければBinaryを選びましょう。
3Dプリントではどちらも適した受け渡し形式ではありません。GLBをSTLか3MFに変換してください。テクスチャは印刷されませんが、形状は印刷できます。
- Web・共有なら:GLB
- テクスチャを共有する多数モデル:別ファイルglTF
- iPhone AR:USDZに変換
- 印刷:STLか3MFに変換
GLB vs glTF:どちらを使うべきか
どちらも正しいglTF 2.0です。ワークフローで選びましょう。
誰かにモデルを渡す
Webサイトに埋め込む
壊れたマテリアルをデバッグする
baseColorFactor、metallicFactor、テクスチャのインデックスを確認し、修正して再読み込み。テクスチャを共有する商品カタログ
バージョン管理
避けたいのは:埋め込みglTF
壊さずにglTFとGLBを変換する
参照ファイルがすべて揃っていれば、変換はどちらの方向もロスレスです。
.gltf、.bin、テクスチャ画像はエクスポート時の相対フォルダ構成のまま保持する- 共有する前にビューアで読み込み、テクスチャが表示されることを確認する
- glTFの単位はメートル。30 mmのフィギュアは0.03単位で、ツールによっては極小に見える
- Web向けにはジオメトリとテクスチャを圧縮する。再パッケージだけでは何も減らない
.gltfファイルだけを送る。.binと画像がないとモデルは空かグレーで読み込まれる.gltfの名前を.glbに変える。バイナリヘッダーはコンバーターで書き出す必要がある- 大きなモデルにbase64埋め込みglTFを使う。バイナリデータが約33%増える
- スライサーがGLBのテクスチャを印刷すると期待する。多色印刷には3MFに変換する
無料のGLB・glTFビューアとコンバーター
GLB vs glTFの両側に対応したツール。すべてブラウザで動作し、ログイン不要、ファイルは端末から出ません。
FAQ
よくある質問
GLB vs glTF:どちらが優れている?
GLBとglTFの違いを一言で言うと?
.gltfファイルはJSONのシーン記述で、通常は隣に.binや画像ファイルが別途付きます。一方.glbファイルは同じJSONとすべてのバイナリデータを1つのコンパクトなバイナリコンテナにまとめたものです。中のメッシュ、マテリアル、テクスチャ、アニメーションは同一なので、どちら向きにもロスレスで変換できます。glTFをGLBに変換すると画質は落ちる?
.gltfが参照するテクスチャがフォルダになければ、パックできません。GLBのサイズが大きいのはなぜ?
GLBやglTFファイルを3Dプリントできる?
glTFが使う単位は?
SupaVoxelではどの形式でダウンロードできますか?
iPhoneでGLBファイルは開けますか?
関連ツールとガイド
続きを読む
無料で始める
GLBとglTFの違いはもう解決?モデルを作ってみる
写真を3Dモデルに変換、通常1分以内。最初の3クレジットならカード登録なしでGLBを無料ダウンロード。テクスチャ付きモデルは有料プランで利用できます。
クレジットカード不要 · 無料クレジット3回分付き