glTF 轉 GLB 轉換器
將 glTF JSON 資產轉換為 glTF Binary 容器,可將獨立的文字資訊清單、二進位緩衝區與紋理封裝到單一檔案中,以加快網頁遞送速度。
格式比較與技術規格
| 規格 | GLTF | GLB |
|---|---|---|
| MIME 類型 | model/ | model/ |
| 類型 | 執行階段 3D 資產傳輸 | 自包含二進位 3D 容器 |
| 壓縮 | 無損 JSON 資訊清單 + 外部二進位緩衝區 | 二進位封裝的 JSON、緩衝區與材質 |
| 標準規格 | Khronos glTF 2.0 Specification | Khronos glTF 2.0 Binary Container |
| 檔案簽章(magic bytes)標頭 | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) |
格式概述與應用
glTF JSON 格式使用純文字結構來儲存 3D 場景。這個文字檔指向外部二進位檔案和圖片材質。雖然這種設定有助於開發者直接在程式碼編輯器中編輯材質與幾何節點,但移動模型時必須同時管理多個檔案。如果有一個材質檔案遺失或檔案路徑失效,3D 模型將無法在瀏覽器和遊戲引擎中正確載入。將 glTF JSON 轉換為 glTF Binary 會把所有這些獨立的元件打包成單一檔案。3D 美術人員與網頁開發者在將資產發布到正式版網頁伺服器或載入擴增實境檢視器之前,都會使用這個轉換步驟。擁有單一檔案可以減少 HTTP 請求,進而加快造訪電子商務產品頁面與互動式 3D 網頁應用程式的使用者之載入速度。
技術規格與編解碼器解析
glTF JSON 格式使用 model/gltf+json MIME 類型,依賴基於文字的 JSON 清單,並與外部 bin 檔案和圖片配對。相對地,GLB 格式使用 model/gltf-binary MIME 類型,並將所有內容打包到單一二進位容器中。GLB 檔案以一個 12 位元組的標頭開頭,其中包含設為 0x46546C67 的 4 位元組魔術數字、4 位元組版本號以及 4 位元組的總檔案長度。此標頭後面接著儲存 JSON 清單與二進位緩衝區資料的區塊。這兩種格式在轉換過程中都不會改變底層的網格幾何或材質像素資料,這意味著此過程是嚴格無損的。
作業系統與瀏覽器相容性
這兩種格式在現代網頁瀏覽器中透過 WebGL 和 WebGPU 算繪器原生運作,無需第三方外掛程式。Windows 和 macOS 等桌面作業系統透過內建的檔案預覽工具支援 GLB 檢視。包含 iOS 和 Android 在內的行動平臺直接在擴增實境 Quick Look 和 Scene Viewer 應用程式內算繪 GLB 檔案。
實用資訊
在將原始材質打包到 GLB 檔案之前,請將其保持在 PNG 或 JPEG 格式,以維持視覺逼真度,同時避免膨脹容器大小。
常見問題
如何將 glTF JSON 轉換為 glTF Binary 而不失真?
將 glTF JSON 轉換為 GLB 是完全無損的,因為該過程只是將現有的文字清單、二進位緩衝區和圖片檔案重新打包到單一容器中,而不會改變頂點資料或進一步壓縮材質像素。
glTF JSON 與 glTF Binary 有什麼區別?
glTF JSON 使用人類可讀的文字檔來參照外部 bin 與圖片檔案,而 glTF Binary 則將文字清單、幾何資料與材質打包到一個帶有檔案簽章標頭的自包含檔案中。