GLB 轉 glTF 轉換器
將 GLB 轉換為 GLTF 會將單一二進位容器解壓縮成獨立的文字與資產檔案,以便開發者輕鬆編輯材質與 3D 幾何程式碼。
格式比較與技術規格
| 規格 | GLB | GLTF |
|---|---|---|
| MIME 類型 | model/ | model/ |
| 類型 | 自包含二進位 3D 容器 | 執行階段 3D 資產傳輸 |
| 壓縮 | 二進位封裝的 JSON、緩衝區與材質 | 無損 JSON 資訊清單 + 外部二進位緩衝區 |
| 標準規格 | Khronos glTF 2.0 Binary Container | Khronos glTF 2.0 Specification |
| 檔案簽章(magic bytes)標頭 | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) |
格式概述與應用
GLB 格式將 3D 場景、動畫、材質和紋理打包成一個整齊的二進位封裝。雖然這對於將物件快速載入網頁和遊戲中很有幫助,但也使編輯原始資料變得困難。當開發者想檢查場景結構、在文字編輯器中微調材質屬性或修改嵌入的著色器參數時,經常需要將 GLB 檔案解壓縮為 GLTF 格式。使用解壓縮後的 GLTF 資產,可讓工程團隊透過標準 Git 工作流程管理特定 3D 網格元件的版本。開發者不必追蹤龐大的二進位資料,而是可以將小幅文字變更提交到 JSON 清單,同時管理獨立的二進位緩衝區檔案。此轉換過程支援進階網頁開發管線,讓 3D 資產在正式部署前可注入自訂著色器或動態替換紋理。
技術規格與編解碼器解析
GLB 使用 model/gltf-binary MIME 類型,並以一個 12 位元組的標頭開頭,其中包含 4 位元組魔術數字(0x46546C67)、4 位元組版本整數以及 4 位元組總檔案長度。此標頭後面接著包含 JSON 清單與二進位緩衝區的區塊。將其轉換為使用 model/gltf+json MIME 類型的 GLTF 時,會將清單分離成副檔名為 .gltf 的人類可讀文字檔。幾何資料與像素對應表會寫入到 .bin 和 .png 等獨立的外部檔案中。預設情況下,這兩種格式都不會使用有損壓縮。兩者都以完整的數學精確度保留頂點位置、法向量和 UV 座標。
作業系統與瀏覽器相容性
未封裝的 GLTF 檔案可在大多數現代網頁瀏覽器(包含 Google Chrome、Mozilla Firefox、Apple Safari 與 Microsoft Edge)中透過 WebGL 和 WebGPU 算繪器順暢執行。Windows 10 和 11、macOS 與 Linux 等桌面作業系統透過 Windows 3D 檢視器和 Blender 等原生工具支援 GLTF 檢視。iOS 與 Android 等行動作業系統會在原生 AR 環境與網頁應用程式內算繪 GLTF 資產,不過開發人員必須在其伺服器上正確代管獨立的 .bin 與 .gltf 檔案,以避免跨來源資源共用(CORS)錯誤。
實用資訊
轉換後,請務必將材質貼圖與主要的 .gltf 檔案放在同一個資料夾中,讓 JSON 資訊清單能找到外部相依檔案,避免發生路徑錯誤。
常見問題
如何在不失真的情況下將 glTF Binary 轉換為 glTF JSON?
從 GLB 轉換為 GLTF 是完全無損的,因為這兩種格式使用相同的底層數學結構。此程序只會從單一二進位容器中擷取 JSON 區塊與二進位緩衝區,並將它們寫入您的磁碟作為獨立檔案,而不會改變頂點資料或像素壓縮。
glTF Binary 與 glTF JSON 有什麼區別?
GLB 是一個獨立的二進位檔案,將場景描述、幾何圖形與材質打包到單一下載中。GLTF 透過將場景圖儲存在可讀取的文字檔案中,同時將幾何圖形與材質保留在外部二進位與圖片檔案中,來分隔這些元素。