SupaVoxel
Định dạng tệp 3D

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
Đã cập nhật tháng 10 năm 2026

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ọcLưới tam giác (cả điểm và đường), phân cấp nút, skin, morph targetGiống hệt
Màu sắc / textureTexture PNG hoặc JPEG lưu trong khối nhị phân; màu đỉnhTexture 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ệuPBR metallic-roughness tích hợp sẵn; thêm qua phần mở rộng KHRGiống hệt
Dung lượng tệpDạng một tệp nhỏ nhất: header 12 byte cộng khối JSON và khối BINTổ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ửaNhị phân; cần công cụ để xemJSON 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ềmthree.js, Babylon.js, model-viewer, Blender, Unity, Unreal, Godot, Windows 3D ViewerCù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 3DKhông phải định dạng in; UltiMaker Cura mở được, hầu hết slicer thì khôngNhư trên; chuyển sang STL hoặc 3MF để in
Số tệp11 đế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óiTệpDung lượng
GLB126.9 MB
glTF + .bin + texture PNG5 (.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 base641khoả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

GLB. Một tệp, không sợ mất tệp khi truyền, mở được trong Windows 3D Viewer, Blender và mọi trình xem web.

Nhúng vào website

GLB với hình học và texture đã nén. Một yêu cầu HTTP và bản tải nhỏ nhất trong thực tế.

Gỡ lỗi vật liệu bị hỏng

glTF Separate. Mở JSON, kiểm tra 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

glTF Separate, để texture vải hoặc gỗ dùng chung chỉ được cache một lần cho hàng trăm mô hình.

Kiểm soát phiên bản

glTF Separate. Git có thể diff JSON, và tệp nhị phân lớn có thể đi qua LFS.

Tránh: glTF nhúng

Nó là một tệp như GLB nhưng lớn hơn khoảng một phần ba và chậm phân tích cú pháp hơn. Hiếm khi có lý do để chọn nó.

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.

Nên làm
  • 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ì
Nên tránh
  • 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

Hỏi đáp

Câu hỏi thường gặp

GLB vs glTF: cái nào tốt hơn?

Cả hai không bên nào tốt hơn về chất lượng; chúng mang cùng dữ liệu glTF 2.0. GLB tốt hơn để phân phối vì là một tệp và tránh chi phí base64 33% của glTF nhúng. glTF tệp riêng tốt hơn để kiểm tra và chỉnh sửa vì mô tả cảnh là JSON đọc được. Để chia sẻ, trên web và AR trên Android, hãy chọn GLB.

Sự khác biệt giữa GLB và glTF trong một câu là gì?

Tệp .gltf là mô tả cảnh JSON, thường đi kèm các tệp .bin và ảnh riêng bên cạnh, còn tệp .glb đặt cùng JSON đó và toàn bộ dữ liệu nhị phân vào một vùng chứa nhị phân nhỏ gọn. Lưới, vật liệu, texture và hoạt ảnh bên trong giống hệt nhau, đó là lý do bạn có thể chuyển đổi theo cả hai chiều mà không mất gì.

Chuyển glTF sang GLB có làm giảm chất lượng không?

Không. Công cụ chuyển đổi sao chép JSON vào khối JSON của GLB và chuyển buffer cùng ảnh vào khối BIN mà không mã hóa lại bất cứ thứ gì, nên hình học, texture và hoạt ảnh giống hệt từng bit. Cách duy nhất để mất thứ gì đó là thiếu tệp phụ: nếu texture được .gltf tham chiếu không nằm trong thư mục của nó, nó không thể được đóng gói.

Tại sao GLB của tôi lớn vậy?

Thường là do texture. Trong mô hình thử nghiệm 500,000 tam giác của chúng tôi, ba texture PNG 2048 x 2048 chiếm 11.7 MB trong GLB 26.9 MB, còn hình học chiếm 15.2 MB còn lại. Hãy giảm kích thước texture hoặc mã hóa lại thành JPEG, áp dụng nén hình học Draco hoặc meshopt, hoặc đơn giản hóa lưới. Công cụ nén GLB miễn phí của chúng tôi xử lý việc này trong trình duyệt.

Tôi có thể in 3D tệp GLB hoặc glTF không?

Gián tiếp. UltiMaker Cura liệt kê glTF Binary và glTF Embedded trong các định dạng nó mở, nhưng PrusaSlicer và Bambu Studio thì không, và không slicer nào in được texture. Cách đáng tin cậy là chuyển GLB sang STL cho một màu, hoặc sang 3MF cho nhiều màu, rồi cắt lớp. Công cụ chuyển đổi trên trình duyệt của chúng tôi làm cả hai mà không tải tệp lên.

glTF dùng đơn vị nào?

Mét. Đặc tả glTF 2.0 quy định mọi khoảng cách tuyến tính theo đơn vị mét, với hệ tọa độ bàn tay phải và trục +Y hướng lên. Nhờ vậy, tỉ lệ luôn nhất quán giữa các công cụ, khác với STL hay OBJ, nhưng lại gây bất ngờ cho người quen với in 3D: một mô hình cao 120 mm chỉ tương đương 0,12 đơn vị. Các công cụ chuyển đổi cho slicer sẽ tự đổi mét sang milimét giúp bạn.

SupaVoxel cung cấp cho tôi định dạng nào?

Mọi mô hình SupaVoxel đều có thể tải xuống dưới dạng GLB miễn phí, kể cả khi dùng 3 credit miễn phí mà tài khoản mới được tặng. Gói trả phí bổ sung xuất STL, OBJ, USDZ và 3MF nhiều màu, mô hình có texture và giấy phép thương mại. Nếu bạn chỉ có GLB miễn phí, bạn vẫn có thể xem, chuyển sang glTF hoặc STL, hoặc nén bằng các công cụ ngay trên trang này.

iPhone có mở được file GLB không?

Không, vì AR Quick Look chỉ nhận USDZ. Scene Viewer trên Android và hầu hết trình xem trên web dùng glTF hoặc GLB. Nếu bạn xuất bản mô hình cho AR, hãy giữ GLB cho Android và web, rồi chuyển thêm một bản USDZ cho iPhone và iPad. Công cụ chuyển GLB sang USDZ miễn phí của chúng tôi chạy ngay trên trình duyệt.

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