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 Open Standard
技術仕様
| コンテナアーキテクチャ | 12-byte binary header ('glTF', version, length) followed by JSON chunk (CHUNK 0) and binary buffer chunk (CHUNK 1) |
| 圧縮 | DRACO mesh geometry compression, KHR_texture_basisu (KTX2/Basis Universal GPU textures), and ExtMeshopt |
| バイトエンディアン | Little-Endian (Intel x86 / WebGL standard) |
| 色空間 | sRGB textures, Linear PBR roughness/metallic channels |
| チャンネルと構造 | PBR materials (Metallic-Roughness), skinned skeletal meshes, morph targets, animations, cameras, and lights |
| 最大寸法 | Unbounded vertex and triangle count (supports multi-gigabyte models) |
| 透過性 | Alpha coverage (MASK), alpha blending (BLEND), and volumetric transmission |
| ストリーミングとプログレッシブ | Single self-contained file with binary offset tables for direct GPU VBO loading |
技術比較マトリックス: GLB 対 競合製品
| 技術属性 | GLB (現在) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| パッケージングモデル | 単一の自己完結型バイナリファイル | JSON + 外部の .bin およびテクスチャファイル | USD スキーマとテクスチャの ZIP アーカイブ | プロプライエタリな Autodesk バイナリ/ASCII |
| Web & AR 標準 | ユニバーサル WebGL & Android AR 標準 | ユニバーサル WebGL 標準 (マルチファイル) | Apple iOS Quick Look AR 標準 | デスクトップゲームエンジンインポート標準 |
| マテリアルモデル | 標準化された glTF PBR メタリックラフネス | 標準化された glTF PBR | ユニバーサル Pixar PBR マテリアルスキーマ | プロプライエタリな Phong/Lambert/PBR シェーダー |
| GPU 読み取りパフォーマンス | 即時 (ダイレクトメモリマッピング) | 高速 (複数のネットワークリクエスト) | 高速 (圧縮されていない ZIP エントリ) | 低速 (複雑な解析が必要) |
一般的な破損モードと16進数リカバリガイド
3D モデルがテクスチャの欠落や真っ黒な表面でレンダリングされる。
根本原因: 埋め込みテクスチャチャンクの破損、または PBR メタリックラフネスのテクスチャ参照の欠落。
復旧: File2File 3D Converter または glTF-Transform を使用してチャンクオフセットを検査および修復します。
セキュリティ分析とパーサー攻撃ベクトル
GLB パーサーは、JSON テキストチャンクと任意のバイナリバッファを組み合わせて処理するため、バッファ長が一致しない場合にバッファオーバーフローを引き起こす可能性があります。
既知の攻撃ベクター
- bufferView の byteOffset + byteLength がバイナリチャンク長を超える場合のバッファオーバーリード。
- WebGL の drawElements 実行中の範囲外の頂点インデックス読み取り。
- 異常な Draco 解凍ループによるサービス拒否 (DoS)。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- 完全に自己完結型: 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インポーターとエクスポーターが含まれています。