SupaVoxel
3Dファイル形式

GLB vs glTF:何が違う?

GLB vs glTFはデータではなくパッケージの違い。.gltfは別ファイルを伴う読めるJSON、.glbはすべてを1つにまとめたもの。配布はGLB、編集はglTF、変換はロスレス。

  • Khronos glTF 2.0仕様
  • 実測ファイルサイズ
  • ロスレス変換
更新日 2026年10月

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に変換
ファイル数11〜複数(.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枚のスチームパンクロボット騎士を選び、各パッケージングを計測しました。

パッケージファイル数サイズ
GLB126.9 MB
glTF+.bin+PNGテクスチャ5(.gltf、.bin、PNG3枚)合計約26.9 MB。.gltfのJSON単体は約2 KB
base64データ埋め込みのglTF1約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です。ワークフローで選びましょう。

誰かにモデルを渡す

GLB。1ファイルで転送中に欠けるものがなく、Windows 3D Viewer、Blender、あらゆるWebビューアで開けます。

Webサイトに埋め込む

ジオメトリとテクスチャを圧縮したGLB。HTTPリクエスト1回で、実用的に最小のダウンロード量。

壊れたマテリアルをデバッグする

glTF Separate。JSONを開いてbaseColorFactor、metallicFactor、テクスチャのインデックスを確認し、修正して再読み込み。

テクスチャを共有する商品カタログ

glTF Separate。共通の布地や木目テクスチャが数百モデル間で1度だけキャッシュされます。

バージョン管理

glTF Separate。GitでJSONの差分が取れ、大きなバイナリはLFSに回せます。

避けたいのは:埋め込みglTF

GLBと同じく1ファイルなのに約3割大きく、パースも遅くなります。これを選ぶ理由はほとんどありません。

壊さずにglTFとGLBを変換する

参照ファイルがすべて揃っていれば、変換はどちらの方向もロスレスです。

やるべきこと
  • .gltf、.bin、テクスチャ画像はエクスポート時の相対フォルダ構成のまま保持する
  • 共有する前にビューアで読み込み、テクスチャが表示されることを確認する
  • glTFの単位はメートル。30 mmのフィギュアは0.03単位で、ツールによっては極小に見える
  • Web向けにはジオメトリとテクスチャを圧縮する。再パッケージだけでは何も減らない
避けたいこと
  • .gltfファイルだけを送る。.binと画像がないとモデルは空かグレーで読み込まれる
  • .gltfの名前を.glbに変える。バイナリヘッダーはコンバーターで書き出す必要がある
  • 大きなモデルにbase64埋め込みglTFを使う。バイナリデータが約33%増える
  • スライサーがGLBのテクスチャを印刷すると期待する。多色印刷には3MFに変換する

FAQ

よくある質問

GLB vs glTF:どちらが優れている?

品質に優劣はなく、どちらも同じglTF 2.0データを持ちます。配信にはGLBが優れています。1ファイルで済み、埋め込みglTFのbase64による33%のオーバーヘッドも避けられるからです。中身の確認や編集には別ファイルのglTFが優れています。シーン記述が読めるJSONだからです。共有やWeb、AndroidのARにはGLBを選びましょう。

GLBとglTFの違いを一言で言うと?

.gltfファイルはJSONのシーン記述で、通常は隣に.binや画像ファイルが別途付きます。一方.glbファイルは同じJSONとすべてのバイナリデータを1つのコンパクトなバイナリコンテナにまとめたものです。中のメッシュ、マテリアル、テクスチャ、アニメーションは同一なので、どちら向きにもロスレスで変換できます。

glTFをGLBに変換すると画質は落ちる?

いいえ。コンバーターはJSONをGLBのJSONチャンクにコピーし、バッファと画像を再エンコードせずにBINチャンクへ移すだけなので、ジオメトリ、テクスチャ、アニメーションはビット単位で同じです。失われるのはサイドファイルの欠落くらいです。.gltfが参照するテクスチャがフォルダになければ、パックできません。

GLBのサイズが大きいのはなぜ?

多くの場合はテクスチャです。50万トライアングルの検証モデルでは、2048×2048のPNGテクスチャ3枚が26.9 MBのうち11.7 MB、ジオメトリが残りの15.2 MBでした。テクスチャを縮小するかJPEGで再エンコードする、Dracoやmeshoptでジオメトリを圧縮する、メッシュを簡略化する、のいずれかを行いましょう。当サイトの無料GLB圧縮ツールならブラウザで処理できます。

GLBやglTFファイルを3Dプリントできる?

間接的には可能です。UltiMaker CuraはglTF BinaryとglTF Embeddedを開ける形式として挙げていますが、PrusaSlicerやBambu Studioは対応しておらず、どのスライサーもテクスチャは印刷しません。確実なのは、単色ならGLBをSTLに、多色なら3MFに変換してからスライスすることです。当サイトのブラウザコンバーターならアップロードせずに両方行えます。

glTFが使う単位は?

メートルです。glTF 2.0仕様では、すべての直線距離がメートルで定義され、右手座標系・+Yが上方向と決まっています。そのためSTLやOBJと違い、ツール間でスケールが予測可能です。ただし3Dプリント出身の人には驚きかもしれません。120mmのフィギュアは高さ0.12単位になります。スライサーのコンバーターがメートルをミリメートルに換算してくれます。

SupaVoxelではどの形式でダウンロードできますか?

SupaVoxelのモデルはすべてGLBで無料ダウンロードできます。新規アカウントの無料3クレジットでも利用可能です。有料プランではSTL、OBJ、USDZ、マルチカラー3MFの書き出し、テクスチャ付きモデル、商用ライセンスが追加されます。無料のGLBしかない場合でも、表示したりglTFやSTLに変換したり、当サイトのツールで圧縮したりできます。

iPhoneでGLBファイルは開けますか?

AR Quick Lookでは開けません。AR Quick LookはUSDZ形式を前提としています。AndroidのScene ViewerやほとんどのWebビューアはglTFまたはGLBを使用します。AR用にモデルを公開するなら、AndroidとWeb用にはGLBを用意し、iPhoneとiPad用にはUSDZを変換して用意しましょう。当サイトの無料GLB→USDZコンバーターはブラウザで動作します。

無料で始める

GLBとglTFの違いはもう解決?モデルを作ってみる

写真を3Dモデルに変換、通常1分以内。最初の3クレジットならカード登録なしでGLBを無料ダウンロード。テクスチャ付きモデルは有料プランで利用できます。

クレジットカード不要 · 無料クレジット3回分付き