GLB 檔案是什麼?
GLB 檔案是 glTF 2.0 的二進位格式:一個檔案就把 3D 模型的網格、材質、貼圖和動畫全部打包在一起。Khronos Group 在 2017 年發布 glTF 2.0,2022 年它成為國際標準 ISO/IEC 12113。正因如此,從 Blender、AI 模型生成工具或 3D 掃描 App 匯出的 .glb,都能在這個 GLB 檢視器、網頁和大多數遊戲引擎中開啟。
.glb 檢視器只需要讀取檔案並把它畫出來。編輯、重新貼圖、轉存成其他格式,則是 3D 編輯軟體的工作。
GLB 與 glTF:單一檔案還是一個資料夾
同一個模型可以用兩種方式儲存。.gltf 檔案是人看得懂的 JSON,會指向其他獨立的檔案:一個存放幾何資料的 .bin 檔,以及每張貼圖各一個圖片檔。.glb 則把 JSON、二進位資料和圖片全部打包成單一檔案,用電子郵件寄送、上傳都更方便,檔案也不會散落各處。
GLB 的內部:檔頭、JSON 區塊與二進位區塊
12 位元組的檔頭
每個 GLB 都以字母 glTF 開頭,接著是版本號碼與整個檔案的長度。檢視器會先檢查這幾個位元組,所以當一個「GLB」其實是 FBX 或 glTF 1.0 檔案時,它能直接告訴你。
JSON 區塊
接下來是一段描述場景的 JSON:網格、材質、貼圖、動畫,以及每個部分有多少頂點。模型報告就是從這裡讀出來的,所以在畫面上繪製任何東西之前,各項數字就已經出現。
二進位區塊
最後是二進位資料:頂點位置、法線、動畫關鍵影格,通常還有貼圖影像本身,以 PNG、JPEG、WebP 或 KTX2 格式儲存。
3 個步驟檢視 GLB 檔案
開啟你的 GLB 檔案
點擊「開啟 3D 檔案」,或把 .glb 拖放到 GLB 檢視器上。若是 .gltf,請連同它的 .bin 與貼圖檔案一起選取,或直接拖放整個資料夾。手邊沒有模型?可以試試三個範例之一。電腦上可開啟最大 200 MB 的檔案,手機則是 50 MB,因為手機的記憶體比較快用完。
環繞、縮放與平移
拖曳可環繞旋轉,捲動滑鼠滾輪或雙指捏合可縮放,按住右鍵拖曳或雙指拖曳可平移。「重設視角」會讓相機回到原位,「自動旋轉」會讓模型緩緩轉動,「線框」則會顯示底下的網格結構。
查看報告並匯出
檢視器旁的面板會列出模型的檔案大小、三角面數、貼圖與動畫。相機按鈕可以儲存 PNG 截圖,「貼圖」分頁則能把每張圖片以原始格式儲存。
開啟 .glb,或連同相關檔案開啟 .gltf。
環繞、縮放與平移,仔細檢視模型。
查看報告並匯出圖片。
這個 GLB 檢視器能告訴你什麼
開啟模型只完成了一半。另一半是弄清楚它是否已經準備好用在目的地:網頁、手機、AR App 或遊戲。這個 GLB 檢視器會讀出回答這個問題所需的數字。
頂點、三角面與網格
三角面數是衡量模型繪製負擔最清楚的指標。網頁用的產品模型通常維持在數萬個;掃描而來的雕像可能多達數百萬個,在手機上會卡頓。多個部分共用的頂點只計算一次,所以數字與檔案中實際儲存的內容一致。
貼圖:大部分位元組的去處
多數人以為 GLB 檔案很大是因為幾何很複雜,但實際上很少如此。「資訊」分頁有一條長條圖,把檔案拆成貼圖、幾何、動畫和其他部分;對大多數靜態模型來說,貼圖都占了絕大部分。範例模型酪梨(Avocado)只有 682 個三角面,檔案卻有 7.73 MB,幾乎全是三張 2048 × 2048 的圖片。
我們用這個檢視器自己的解析器,量測了 Khronos glTF Sample Assets 中的 13 個 GLB 檔案。貼圖占檔案大小的比例,中位數為 95%。只有會動的角色模型,以及一輛 109,000 個三角面的玩具車,主要由幾何構成。完整數字請見下表。
動畫與變形目標
帶動畫的檔案會列出每個片段及其長度。選一個片段、暫停、拖動時間軸,或把速度降到四分之一,就能逐格檢查走路循環。用於角色與臉部表情的蒙皮和變形目標,也會一併計入報告。
可解碼的壓縮擴充
很多 GLB 都經過壓縮,而無法解碼的檢視器只會什麼都顯示不出來。這個檢視器支援常見的擴充:
- Draco(
KHR_draco_mesh_compression)能大幅縮小幾何資料,但模型在繪製前必須先經過解碼器處理。 - meshopt(
EXT_meshopt_compression)壓縮幾何與動畫,而且解碼速度非常快。 - KTX2(
KHR_texture_basisu)讓貼圖保持 GPU 可直接使用的格式,占用的視訊記憶體更少。 - WebP(
EXT_texture_webp)讓貼圖檔案更小,瀏覽器也能原生解碼。
每個解碼器只有在檔案宣告了對應的擴充時才會下載,所以一般的 GLB 完全不必為此付出代價。
實測:GLB 檔案裡裝了什麼
| 模型 | 檔案大小 | 貼圖 | 幾何 | 動畫 | 三角面數 |
|---|---|---|---|---|---|
| Avocado | 7.73 MB | 99.7% | 0.3% | — | 682 |
| BarramundiFish | 11.91 MB | 99.0% | 1.0% | — | 3,864 |
| WaterBottle | 8.55 MB | 98.3% | 1.7% | — | 4,510 |
| BoomBox | 10.12 MB | 98.0% | 2.0% | — | 6,036 |
| Lantern | 9.12 MB | 97.5% | 2.4% | — | 5,394 |
| AntiqueCamera | 16.73 MB | 95.4% | 4.6% | — | 20,066 |
| Corset | 12.87 MB | 95.1% | 4.9% | — | 18,324 |
| DamagedHelmet | 3.60 MB | 85.1% | 14.8% | — | 15,452 |
| SheenChair | 3.93 MB | 72.2% | 27.6% | — | 39,936 |
| CesiumMan | 0.42 MB | 35.8% | 48.2% | 9.4% | 4,672 |
| ToyCar | 5.17 MB | 32.3% | 67.6% | — | 108,936 |
| Fox | 0.16 MB | 16.4% | 46.7% | 26.9% | 576 |
| BrainStem | 3.05 MB | 0% | 62.9% | 34.3% | 61,666 |
檢視使用外部貼圖的 glTF 檔案
單獨一個 .gltf 檔案只是 JSON 描述。幾何資料放在旁邊的 .bin 檔裡,貼圖則是一張張圖片檔,通常放在 textures 資料夾中。請把它們一次全部交給這個 glTF 檢視器:在檔案對話框中一起選取,或把整個資料夾拖到檢視器上。
檢視器會依照 .gltf 中寫的路徑逐一比對檔案,所以資料夾結構會被正確對應。如果缺少 .bin,它會告訴你該檔案的確切名稱,而不是默默失敗。如果缺少貼圖,模型仍然會開啟,並列出缺少的檔案,讓你知道該去找哪些。
GLB 檔案為什麼打不開(以及如何解決)
模型載入失敗時,原因幾乎都是以下五種之一,而這個 GLB 檢視器會直接指出是哪一種,不會只給你一片空白的畫面。
它其實不是 GLB
有人會把 FBX、OBJ 和 STL 檔案改名成 .glb,希望這樣就能開啟。但這沒有用:檔案內容仍然是另一種格式。檢視器會讀取開頭的幾個位元組,告訴你這個檔案實際上是什麼,你就可以從 Blender 或原本製作它的程式重新匯出成 GLB。
模型呈現黑色、灰色或缺少貼圖
沒有把圖片檔案一起帶上的 .gltf,表面會顯示成單調的灰色或白色。看起來全黑的模型通常是需要光線:在「場景」分頁中開啟「攝影棚燈光」,或調高曝光。
太小、太大或側躺著
glTF 以公尺為單位,並以 +Y 軸朝上。以公釐為單位匯出的模型會大上 1,000 倍,而以其他軸向朝上建立的模型則會側躺。檢視器會自動調整每個模型的取景,讓它始終在畫面中;比例或軸向的問題請在匯出時修正。
它是 glTF 1.0 檔案
2017 年以前匯出的檔案可能是 glTF 1.0,目前的工具已經不再支援讀取。Cesium 的開源工具 gltf-pipeline 可以把大多數這類檔案升級為 glTF 2.0。
頁面在手機上變慢或當掉
手機的瀏覽器與繪圖晶片共用一小塊記憶體。一個帶有 8K 貼圖、120 MB 的掃描模型可能會把它全部用光,這就是手機上限為 50 MB 的原因。請在電腦上開啟大型檔案,或先縮小貼圖。
為什麼模型看起來和在 Blender 裡不一樣
GLB 檢視器以即時方式繪製,每秒算繪許多影格,並使用以物理為基礎的算繪(PBR)和攝影棚環境來產生反射。Blender 的 Cycles 算繪器則會花上數秒到數分鐘追蹤光線來產生一張圖,帶有柔和的陰影,以及在表面之間來回反彈的光線。材質是一樣的,光照卻不同。
顏色也可能有所偏移。這個檢視器採用 Khronos PBR Neutral 色調映射,其設計目的是讓產品顏色保持準確;其他工具則可能套用電影感的色調。如果模型看起來太暗或太亮,請在「場景」分頁調整曝光,而不是去修改它的材質。
將 3D 模型截圖儲存為 PNG
相機按鈕會把你看到的畫面原樣存成 PNG 圖片。選擇檢視器尺寸的 1×、2× 或 4×,就能在高解析度螢幕上得到清晰的圖片;勾選「透明背景」則可去掉攝影棚背景。柔和的地面陰影會保留下來,讓模型自然地落在任何顏色的頁面上。
因此,這個 GLB 檢視器也是把 GLB 轉成 PNG 的快速方法,可用於商品頁、文件、縮圖或作品集。之後若想讓圖片更輕巧,可以壓縮 PNG或轉換成 WebP,再調整尺寸到網站要求的確切大小。
用線上 GLB 檢視器開啟 GLB 檔案安全嗎?
用這個檢視器的話,是安全的。檔案在你的瀏覽器分頁中讀取與算繪,從不上傳,也不會儲存任何相關資訊。即使 .gltf 指向其他網站上的貼圖網址,也不會被允許去抓取,所以開啟模型時不會代替它送出任何請求。
唯一額外下載的是檢視器本身的元件:3D 引擎,以及壓縮檔案需要時才載入的 Draco 或 KTX2 解碼器。它們是程式碼,對每個人都一模一樣,不含任何你的資料。開啟模型時,你可以在瀏覽器開發者工具的 Network 面板中自行確認。
GLB 檢視器選項比較
| 這個 GLB 檢視器 | Blender | 遊戲引擎 | 手機 App | |
|---|---|---|---|---|
| 需要安裝 | 否 | 是,免費 | 是,體積龐大 | 是 |
| 開啟 GLB 與 glTF | 是 | 是 | 是,需透過匯入工具 | 視 App 而定 |
| 依貼圖與幾何拆分檔案大小 | 是 | 否 | 否 | 很少 |
| 編輯、重新貼圖、匯出 | 否 | 是 | 是 | 否 |
| 檔案留在你的裝置上 | 是 | 是 | 是 | 視 App 而定 |
| 可在手機上使用 | 是,最大 50 MB | 否 | 否 | 是 |