GLB vs glTF: Sự khác biệt là gì?
GLB vs glTF là chuyện đóng gói, không phải dữ liệu: .gltf là JSON đọc được với các tệp riêng, còn .glb gói tất cả vào một tệp. Phát hành GLB, chỉnh sửa glTF, chuyển đổi không mất dữ liệu.
- Đặc tả Khronos glTF 2.0
- Dung lượng tệp đo được
- Chuyển đổi không mất dữ liệu
GLB vs glTF: câu trả lời ngắn gọn
glTF là định dạng mở của Khronos Group để đưa cảnh 3D vào ứng dụng và web, còn GLB không phải định dạng khác mà là vùng chứa nhị phân của nó. Đặc tả định nghĩa cả hai: tệp .gltf là JSON (media type model/gltf+json), và tệp .glb (model/gltf-binary) bọc cùng JSON đó cùng một buffer nhị phân vào một tệp duy nhất.
Vậy câu hỏi GLB vs glTF là về cách đóng gói, không phải chất lượng. Lưới, vật liệu PBR, texture, hoạt ảnh, skin và morph target tồn tại y hệt trong cả hai. Điều thay đổi là số tệp bạn phải xử lý, liệu bạn có thể mở mô tả cảnh trong trình soạn thảo văn bản, và dung lượng tăng thêm nếu nhúng nhị phân vào JSON.
Với gần như tất cả mọi người, câu trả lời là GLB: một tệp để tải lên, gửi email hoặc thả vào three.js, Babylon.js, <model-viewer>, Blender, Unity hay Unreal. Chọn glTF tệp riêng khi bạn gỡ lỗi, chỉnh sửa giá trị vật liệu bằng tay, hoặc chia sẻ texture giữa nhiều mô hình trên CDN.
Bảng so sánh GLB vs glTF
Cả hai đều là glTF 2.0, nên hầu hết các hàng giống nhau. Những hàng khác biệt là những hàng quyết định GLB vs glTF cho dự án của bạn.
| GLB (.glb) | glTF (.gltf) | |
|---|---|---|
| Kiểu hình học | Lưới tam giác (cả điểm và đường), phân cấp nút, skin, morph target | Giống hệt |
| Màu sắc / texture | Texture PNG hoặc JPEG lưu trong khối nhị phân; màu đỉnh | Texture dưới dạng tệp ảnh riêng, hoặc data URI base64 trong JSON |
| Đơn vị | Mét, hệ tay phải, +Y hướng lên, theo đặc tả | Giống hệt |
| Vật liệu | PBR metallic-roughness tích hợp sẵn; thêm qua phần mở rộng KHR | Giống hệt |
| Dung lượng tệp | Dạng một tệp nhỏ nhất: header 12 byte cộng khối JSON và khối BIN | Tổng số byte như tệp riêng; lớn hơn khoảng 33% nếu nhúng nhị phân dưới dạng base64 |
| Khả năng chỉnh sửa | Nhị phân; cần công cụ để xem | JSON dễ đọc với người và có thể diff trong trình soạn thảo văn bản |
| Hỗ trợ phần mềm | three.js, Babylon.js, model-viewer, Blender, Unity, Unreal, Godot, Windows 3D Viewer | Cùng các trình tải; tệp bên ngoài phải nằm đúng thư mục tương đối |
| Dùng để in 3D | Không phải định dạng in; UltiMaker Cura mở được, hầu hết slicer thì không | Như trên; chuyển sang STL hoặc 3MF để in |
| Số tệp | 1 | 1 đến nhiều (.gltf, .bin, ảnh) |
Nguồn: đặc tả Khronos glTF 2.0, các mục về phần mở rộng tệp, hệ tọa độ và đơn vị, và định dạng tệp GLB.
Cách tệp GLB được tạo từ glTF
Một GLB bắt đầu bằng header 12 byte: các byte magic glTF, phiên bản (2) và tổng độ dài. Sau đó là các khối. Khối đầu tiên là khối JSON, chính là mô tả cảnh mà một .gltf sẽ chứa. Khối thứ hai là khối BIN, chứa vị trí đỉnh, pháp tuyến, UV, chỉ số, keyframe hoạt ảnh và thường là cả ảnh texture.
Một .gltf giữ JSON đó dưới dạng tệp độc lập và tham chiếu dữ liệu nhị phân theo một trong hai cách: đường dẫn tương đối tới tệp .bin và ảnh nằm cạnh nó, hoặc data URI mã hóa base64 byte thẳng vào JSON. Bản thân đặc tả ghi rằng base64 làm tăng độ dài byte của payload thêm 33%, và việc giải mã tốn thêm xử lý. Đó là lý do chính khiến GLB tồn tại.
- GLB: header + khối JSON + khối BIN, một tệp
- glTF: JSON cùng .bin và ảnh nằm cạnh nhau
- glTF nhúng: một tệp, nhưng base64 làm tăng một phần ba
Dung lượng GLB vs glTF: một mô hình đóng gói theo ba cách
Chúng tôi lấy một mô hình AI có texture từ thư viện, một hiệp sĩ robot steampunk với 500,000 tam giác, 287,963 đỉnh và ba texture PNG 2048 x 2048, rồi đo từng cách đóng gói.
| Cách đóng gói | Tệp | Dung lượng |
|---|---|---|
| GLB | 1 | 26.9 MB |
| glTF + .bin + texture PNG | 5 (.gltf, .bin, 3 tệp PNG) | tổng khoảng 26.9 MB; riêng JSON .gltf khoảng 2 KB |
| glTF nhúng dữ liệu base64 | 1 | khoảng 35.9 MB |
| Các byte gồm những gì | Hình học 15.2 MB, texture 11.7 MB |
Đóng gói không làm nhỏ bất cứ thứ gì. Để mô hình nhỏ hơn, hãy nén hình học (Draco hoặc meshopt), giảm kích thước hoặc mã hóa lại texture, hoặc giảm số tam giác. Công cụ nén GLB và đơn giản hóa lưới của chúng tôi làm việc đó ngay trong trình duyệt.
glTF vs GLB trên web, trong AR và trong Blender
Trên web, GLB là lựa chọn mặc định thực tế: một yêu cầu, một mục cache, và mọi trình tải lớn đều đọc được. glTF tệp riêng có thể thắng trên một trang hiển thị nhiều mô hình dùng chung texture, vì trình duyệt chỉ tải ảnh dùng chung một lần; ghi chú triển khai của chính đặc tả mô tả sự đánh đổi đó.
Với AR, Scene Viewer trên Android nhận glTF và GLB, còn Quick Look trên iPhone của Apple cần USDZ, nên hãy phát hành cả hai và chuyển GLB sang USDZ cho thiết bị Apple. Trong Blender, File > Import > glTF 2.0 đọc được cả hai, và menu Format của trình xuất có glTF Binary (.glb) và glTF Separate (.gltf + .bin + textures). Chọn Binary trừ khi bạn có lý do không làm vậy.
Với in 3D, cả hai đều không phải định dạng bàn giao phù hợp. Hãy chuyển GLB sang STL hoặc 3MF; texture sẽ không in được, nhưng hình dạng thì có.
- Web và chia sẻ: GLB
- Nhiều mô hình dùng chung texture: glTF tệp riêng
- AR trên iPhone: chuyển sang USDZ
- In 3D: chuyển sang STL hoặc 3MF
GLB vs glTF: khi nào dùng cái nào
Cả hai đều là glTF 2.0 hợp lệ. Chọn theo quy trình làm việc.
Chia sẻ mô hình với bất kỳ ai
Nhúng vào website
Gỡ lỗi vật liệu bị hỏng
baseColorFactor, metallicFactor hoặc chỉ số texture, sửa và tải lại.Danh mục sản phẩm dùng chung texture
Kiểm soát phiên bản
Tránh: glTF nhúng
Chuyển đổi glTF và GLB mà không làm hỏng gì
Chuyển đổi không mất dữ liệu theo cả hai chiều, miễn là mọi tệp được tham chiếu đều có mặt.
- Giữ .gltf, .bin và ảnh texture trong đúng thư mục tương đối như khi xuất
- Tải kết quả vào trình xem và xác nhận texture hiển thị trước khi chia sẻ
- Nhớ rằng glTF dùng đơn vị mét: một mô hình 30 mm là 0.03 đơn vị, trông rất nhỏ trong một số công cụ
- Nén hình học và texture cho web; chỉ đóng gói lại không tiết kiệm gì
- Chỉ gửi tệp .gltf; thiếu .bin và ảnh, mô hình sẽ tải rỗng hoặc xám
- Đổi tên .gltf thành .glb; header nhị phân phải được ghi bởi công cụ chuyển đổi
- Dùng glTF nhúng base64 cho mô hình lớn; nó làm tăng khoảng 33% dữ liệu nhị phân
- Đừng mong slicer in texture từ GLB; chuyển sang 3MF để in nhiều màu
Trình xem và công cụ chuyển đổi GLB, glTF miễn phí
Công cụ cho cả hai phía của GLB vs glTF. Tất cả chạy trong trình duyệt, không cần đăng nhập, và tệp của bạn ở lại trên thiết bị.
Hỏi đáp
Câu hỏi thường gặp
GLB vs glTF: cái nào tốt hơn?
Sự khác biệt giữa GLB và glTF trong một câu là gì?
Chuyển glTF sang GLB có làm giảm chất lượng không?
Tại sao GLB của tôi lớn vậy?
Tôi có thể in 3D tệp GLB hoặc glTF không?
glTF dùng đơn vị nào?
SupaVoxel cung cấp cho tôi định dạng nào?
iPhone có mở được file GLB không?
Công cụ & hướng dẫn liên quan
Tiếp tục
Bắt đầu miễn phí
Đã rõ GLB vs glTF? Tạo mô hình ngay
Biến ảnh thành mô hình 3D, thường chỉ trong chưa đầy một phút. Tải GLB miễn phí với 3 credit đầu tiên, không cần thẻ; mô hình có texture đi kèm gói trả phí.
Không cần thẻ tín dụng · 3 credit miễn phí khi bắt đầu