glTFバイナリ (.glb)
ISO/IEC 標準バイナリ glTF (GLB) は、glTF 2.0 標準の自己完結型単一ファイルバイナリパッケージであり、Web ベースの 3D グラフィックス、拡張現実 (AR)、リアルタイムゲームエンジン向けに「3D の JPEG」として広く称賛されています。
GLTF を GLB に変換
無料のブラウザ内 GLTF から GLB へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してGLBファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してGLBファイルを識別します:
16進数シグネチャ(オフセット0):
67 6C 54 46ASCII表現: glTF
標準化: ISO/IEC 12113:2022 / Khronosオープン標準
技術仕様
| コンテナアーキテクチャ | 12バイトのバイナリヘッダー('glTF'、バージョン、長さ)に続き、JSONチャンク(CHUNK 0)とバイナリバッファチャンク(CHUNK 1)を格納 |
| 圧縮 | DRACOメッシュ形状圧縮、KHR_texture_basisu(KTX2/Basis Universal GPUテクスチャ)、ExtMeshopt |
| バイトエンディアン | リトルエンディアン(Intel x86 / WebGL標準) |
| 色空間 | sRGBテクスチャ, リニアPBRの粗さ/金属度チャンネル |
| チャンネルと構造 | PBRマテリアル(Metallic-Roughness)、スキン付き骨格メッシュ、モーフターゲット、アニメーション、カメラ、ライト |
| 最大寸法 | 頂点数と三角形数に上限なし(数GB規模のモデルに対応) |
| 透過性 | アルファカバレッジ(MASK)、アルファブレンド(BLEND)、ボリューム透過 |
| ストリーミングとプログレッシブ | GPUのVBOへ直接読み込むためのバイナリオフセットテーブルを含む単一の自己完結型ファイル |
技術比較表:GLBと競合製品
| 技術属性 | GLB (現在) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| パッケージングモデル | 単一の自己完結型バイナリファイル | JSON + 外部の .bin およびテクスチャファイル | USD スキーマとテクスチャの ZIP アーカイブ | プロプライエタリな Autodesk バイナリ/ASCII |
| Web & AR 標準 | ソフトウェアによって対応状況は異なります。 | ソフトウェアによって対応状況は異なります。 | Apple iOS Quick Look AR 標準 | デスクトップゲームエンジンインポート標準 |
| マテリアルモデル | 標準化された glTF PBR メタリックラフネス | 標準化された glTF PBR | ソフトウェアによって対応状況は異なります。 | プロプライエタリな Phong/Lambert/PBR シェーダー |
| GPU 読み取りパフォーマンス | 即時 (ダイレクトメモリマッピング) | 高速 (複数のネットワークリクエスト) | 高速 (圧縮されていない ZIP エントリ) | 低速 (複雑な解析が必要) |
一般的な破損モードと16進数リカバリガイド
3D モデルがテクスチャの欠落や真っ黒な表面でレンダリングされる。
根本原因: 埋め込みテクスチャチャンクの破損、または PBR メタリックラフネスのテクスチャ参照の欠落。
復旧: File2File.app 3D Converter または glTF-Transform を使用してチャンクオフセットを検査および修復します。
セキュリティ分析とパーサー攻撃ベクトル
GLB パーサーは、JSON テキストチャンクと任意のバイナリバッファを組み合わせて処理するため、バッファ長が一致しない場合にバッファオーバーフローを引き起こす可能性があります。
既知の攻撃ベクター
- bufferView の byteOffset + byteLength がバイナリチャンク長を超える場合のバッファオーバーリード。
- WebGL の drawElements 実行中の範囲外の頂点インデックス読み取り。
- 異常な Draco 解凍ループによるサービス拒否 (DoS)。
防御的ベストプラクティス: すべてのアクセサーとbufferViewのバイト範囲が、宣言されたバイナリチャンクの境界内に収まっていることを厳格に検証します。
歴史的背景とマイルストーン
主なメリット
- 完全に自己完結型: 3D ジオメトリ、PBR マテリアル、テクスチャ (PNG/JPEG/KTX2)、スケルトンアニメーションを 1 つのファイルにパッケージ化します。
- 直接 GPU アップロード: バイナリジオメトリバッファは、CPU の解析オーバーヘッドなしで WebGL / Vulkan のメモリレイアウトと一致します。
- WebGL、WebGPU、E コマースの 3D 製品プレビュー、モバイル拡張現実における揺るぎない標準です。
技術的な制限とデメリット
- バイナリ形式であるため、特殊な 3D ツールなしでの手動テキスト検査や編集が困難です。
- 高度な圧縮拡張機能を使用する場合、Draco または Basis Universal の解凍ライブラリが必要です。
- Apple プラットフォームはネイティブの iOS Quick Look AR に USDZ を好むため、GLB からのフォーマット変換が必要です。
興味深い技術トリビア
- すべての GLB ファイルの最初の 4 バイトは 0x67 0x6C 0x54 0x46 であり、ASCII の文字列「glTF」を表します。
- スマートフォンなどの Web ブラウザで 3D のスニーカーを見ている場合、それはほぼ間違いなくインタラクティブな GLB モデルです。
- GLB は、グラフィックスハードウェアが頂点バッファをディスクから VRAM に変換なしで直接読み取れるように特別に設計されました。
よくある技術的な質問
glTFとGLBの違いは何ですか?
glTFは、外部の.binジオメトリや個別の画像テクスチャファイルを参照するJSONファイルです。GLBはその一式を単一のコンパクトなバイナリファイルにまとめます。
Apple AR用にGLBをUSDZに変換するにはどうすればよいですか?
Webブラウザから直接File2File.appを使用して、1クリックでGLBモデルをApple対応のUSDZファイルに変換できます。
BlenderでGLBファイルを開くことはできますか?
はい。Blenderには、ソフトウェアに直接組み込まれたネイティブで高性能なglTF/GLBインポーターとエクスポーターが含まれています。