glTF 二進位 (.glb)
ISO/IEC 標準二進位 glTF (GLB) 是 glTF 2.0 標準的獨立單一檔案二進位封裝,在基於網頁的 3D 圖形、擴增實境 (AR) 與即時遊戲引擎領域中,被廣泛譽為「3D 的 JPEG」。
將 GLTF 轉換為 GLB
免費的瀏覽器端 GLTF 轉 GLB 轉換器。在您的裝置上即時轉換檔案。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 GLB 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 GLB 檔案:
十六進位簽章(偏移量 0):
67 6C 54 46ASCII 表示法: glTF
標準化: ISO/IEC 12113:2022 / Khronos Open Standard
技術規格
| 容器架構 | 12 位元組二進位標頭('glTF'、版本、長度),後接 JSON 區塊(CHUNK 0)與二進位緩衝區區塊(CHUNK 1) |
| 壓縮 | DRACO 網格幾何圖形壓縮、KHR_texture_basisu(KTX2/Basis Universal GPU 紋理)與 ExtMeshopt |
| 位元組序 | 小端序(Intel x86 / WebGL 標準) |
| 色彩空間 | sRGB 紋理, 線性 PBR 粗糙度/金屬度通道 |
| 色版與結構 | PBR 材質(金屬度 - 粗糙度)、蒙皮骨架網格、變形目標、動畫、相機與燈光 |
| 最大尺寸 | 無限制的頂點與三角形數量(支援多 GB 模型) |
| 透明度 | Alpha 遮罩(MASK)、Alpha 混合(BLEND)與體積透射 |
| 串流與漸進式 | 包含二進位區塊的單一獨立檔案,軟體可進行解析並上傳至 GPU 緩衝區 |
技術比較矩陣:GLB 對比競爭格式
| 技術屬性 | GLB (目前) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| 封裝模型 | 單一獨立二進位檔案 | JSON + 外部 .bin 與紋理檔案 | USD 架構與紋理的 ZIP 壓縮檔 | 專屬 Autodesk 二進位/ASCII |
| 網路與 AR 標準 | 支援情況因軟體而異。 | 支援情況因軟體而異。 | Apple iOS Quick Look AR 標準 | 桌面遊戲引擎匯入標準 |
| 材質模型 | 標準化 glTF PBR 金屬 - 粗糙度 | 標準化 glTF PBR | 支援情況因軟體而異。 | 專屬 Phong/Lambert/PBR 著色器 |
| GPU 讀取效能 | 即時(直接記憶體對映) | 快速(多次網路請求) | 快速(未壓縮的 ZIP 項目) | 緩慢(需要複雜的解析) |
常見損壞模式與十六進位修復指南
3D 模型算繪時缺少紋理或顯示為純黑色表面。
根本原因: 損壞的內嵌紋理區塊或缺少 PBR 金屬 - 粗糙度紋理參照。
修復: 使用 File2File.app 3D 轉換器或 glTF-Transform 檢查並修復區塊偏移量。
安全性分析與解析器攻擊向量
GLB 剖析器會處理 JSON 文字區塊與任意二進位緩衝區的結合,如果緩衝區長度不符合,可能會觸發緩衝區溢位。
已知攻擊向量
- 當 bufferView 的 byteOffset 加上 byteLength 超過二進位區塊長度時,會發生緩衝區過度讀取。
- 在 WebGL drawElements 執行期間,發生超出範圍的頂點索引讀取。
- 透過異常的 Draco 解壓縮迴圈造成阻斷服務。
防禦最佳實務: 嚴格驗證所有 accessor 和 bufferView 的位元組範圍是否皆落在宣告的二進位區塊邊界之內。
歷史起源與里程碑
2022glTF 2.0 與 GLB 經 ISO/IEC 國際標準化為 ISO/IEC 12113:2022。
2018Google 採用 GLB 作為 Android Scene Viewer 與網頁 <model-viewer> AR 體驗的標準 3D 格式。
2015Khronos Group 推出 GLB 作為 glTF 生態系統的單一檔案二進位容器。
主要優勢與優點
- 完全獨立:將 3D 幾何圖形、PBR 材質、紋理(PNG/JPEG/KTX2)與骨架動畫封裝在一個檔案中。
- 二進位區塊可以減少載入場景資料所需的工作,但應用程式仍會剖析 glTF 中繼資料,並為其算繪管線準備資源。
- WebGL、WebGPU、電子商務 3D 產品預覽以及行動擴增實境無庸置疑的標準。
技術限制與缺點
- 二進位性質使得在沒有專門 3D 工具的情況下難以進行手動文字檢查或編輯。
- 使用進階壓縮擴充功能時,需要 Draco 或 Basis Universal 解壓縮函式庫。
- Apple 平台偏好將 USDZ 用於原生 iOS Quick Look AR,需要從 GLB 進行格式轉換。
有趣的技術冷知識
- GLB 檔案開頭是 4 位元組的檔案簽章(magic bytes)0x67 0x6C 0x54 0x46,代表 ASCII 字串「glTF」。
- 當您在智慧型手機的網頁瀏覽器上檢視 3D 運動鞋時,幾乎可以確定看到的是互動式 GLB 模型。
- GLB 的設計目的是讓圖形硬體能直接將頂點緩衝區從磁碟讀入 VRAM,無須轉換。
常見技術問題
glTF 與 GLB 有什麼不同?
glTF 是一個參照外部 .bin 幾何圖形和獨立圖片紋理檔案的 JSON 檔案。GLB 則是將整個組合打包成單一且緊湊的二進位檔案。
如何將 GLB 轉換為 Apple AR 的 USDZ?
您可以使用 File2File.app 直接在網頁瀏覽器中一鍵將 GLB 模型轉換為 Apple 支援的 USDZ 檔案。
我可以在 Blender 中開啟 GLB 檔案嗎?
可以。Blender 內建高效能的 glTF / GLB 匯入與匯出功能,直接整合在軟體中。