glTF JSON (.gltf)
ISO/IEC 標準GL 傳輸格式(glTF)是開放標準且免權利金的 JSON 規格,供 WebGL、WebGPU、遊戲引擎和原生應用程式有效率地傳輸與載入 3D 場景和模型。
將 GLTF 轉換為 GLB
免費的瀏覽器端 GLTF 轉 GLB 轉換器。在您的裝置上即時轉換檔案。
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 glTF 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 glTF 檔案:
十六進位簽章(偏移量 0):
7B 0A 20 20 22 61 73 73 65 74 22ASCII 表示法: {\n "asset"
標準化: ISO/IEC 12113:2022 / Khronos 開放標準
技術規格
| 容器架構 | 描述場景圖、節點、網格、存取器、材質與動畫的易讀 JSON 文件,並參照外部緩衝區 |
| 壓縮 | 外部紋理(PNG、JPEG、WebP)與選用的 Draco 幾何壓縮 |
| 位元組序 | UTF-8 JSON 文字(參照 Little-Endian .bin 緩衝區) |
| 色彩空間 | sRGB 基本顏色, 線性粗糙度/金屬度 |
| 色版與結構 | 場景階層、節點、相機、PBR 材質、骨架綁定與變形目標 |
| 最大尺寸 | 不限範圍的座標空間與三角形數量 |
| 透明度 | Alpha 模式 BLEND、具備裁切閾值的 MASK,或是體積透射 |
| 串流與漸進式 | glTF 將場景描述與二進位幾何及紋理資料分離,因此檢視器可以依需求載入元件,而不必等待單一龐大的檔案。 |
技術比較矩陣:glTF 對比競爭格式
| 技術屬性 | glTF (目前) | GLB | OBJ | FBX |
|---|---|---|---|---|
| 檔案架構 | JSON 場景文字 + 隨附的 .bin/紋理 | 單一獨立二進位檔案 | 純文字頂點與面 + .mtl | 專有二進位/ASCII 容器 |
| PBR 材質標準 | 標準化金屬度 - 粗糙度 PBR | 標準化金屬度 - 粗糙度 PBR | 傳統 Phong / Lambert 材質 | 自訂專有材質 |
| 動畫支援 | 骨架綁定與變形目標 | 骨架綁定與變形目標 | 無(僅限靜態幾何) | 複雜動畫與骨骼 |
| 執行階段效能 | 針對 WebGL 與即時引擎最佳化 | 針對 WebGL 與即時引擎最佳化 | 需要緩慢的解析與重建 | 需要複雜的桌面 SDK 解析 |
常見損壞模式與十六進位修復指南
3D 引擎錯誤:「Failed to load buffer: URI not found」。
根本原因: 隨附的 .bin 二進位檔案或紋理圖片未與 .gltf 檔案放在一起。
修復: 將所有隨附檔案一起封裝,或使用 File2File.app 直接轉換為單一 GLB 檔案。
安全性分析與解析器攻擊向量
glTF JSON 檔案會參照外部 URI(資料 URI 或遠端 URL),這可能會觸發伺服器端請求偽造(SSRF)或路徑遍歷。
已知攻擊向量
- 透過相對緩衝區 URI 進行路徑遍歷(例如「uri: ../../../etc/passwd」)。
- 透過伺服器端 3D 縮圖產生器中的遠端網路緩衝區擷取來進行 SSRF。
- 透過格式錯誤的遞迴節點階層循環來進行阻斷服務攻擊。
防禦最佳實務: 載入前請禁止遠端 URL,並標準化所有本機緩衝區 URI 路徑。
歷史起源與里程碑
2022glTF 2.0 獲批為 ISO/IEC 12113:2022 國際標準。
2017Khronos Group 發布 glTF 2.0,將基於物理的算繪(PBR)標準化為核心功能。
2015glTF 1.0 於 SIGGRAPH 宣布,由 Fabrice Robinet、Neil Trevett 與 Tony Parisi 構思。
主要優勢與優點
- 人類可讀的 JSON 結構允許進行程式化編輯、管線指令碼編寫和視覺化檢查。
- 模組化設計:將輕量級場景中繼資料與龐大的二進位幾何(.bin)和紋理分開。
- 基於物理的算繪(PBR)材質可以改善視覺一致性,但結果仍會因算繪器、燈光和設定而異。
技術限制與缺點
- 多檔案管理較複雜:分享模型時,需要將 .gltf、.bin 與圖片紋理檔案壓縮或打包在一起。
- 由於有多個 HTTP 請求,初始網路啟動速度比單一檔案的 GLB 稍慢。
- 如果重新命名或移動隨附的紋理檔案,相對路徑相依性可能會失效。
有趣的技術冷知識
- glTF 被正式暱稱為「3D 的 JPEG」,因為它專門針對執行階段傳輸與顯示,而非內容創作。
- Khronos Group 引入 glTF,旨在簡化用於網路與行動應用程式的 3D 資產傳輸。
- NASA 提供探測車、衛星和太空人的 3D 模型,供大眾以 glTF 格式下載。
常見技術問題
為什麼我的 glTF 檔案遺失顏色或形狀?
.gltf 檔案只包含 JSON 場景指令,需搭配隨附的 .bin 檔案取得 3D 形狀,並搭配 .png/.jpg 檔案取得顏色。請確認所有隨附檔案都在同一個資料夾中。
如何將 glTF 檔案轉為單一 GLB 檔案?
將您的 .gltf 檔案及隨附的 .bin 與紋理檔案加入 File2File.app,即可在瀏覽器中立即將它們合併為單一、獨立的 .glb 檔案。
有哪些程式支援 glTF?
Blender、Three.js、Babylon.js、Unity、Unreal Engine、Godot 與 Windows 3D 檢視器都內建支援 glTF。