GLB vs glTF: у чому різниця?
GLB vs glTF — це про пакування, а не про дані: .gltf — це читабельний JSON з окремими файлами, .glb пакує все в один. Віддавайте GLB, редагуйте glTF, конвертуйте без втрат.
- Специфікація Khronos glTF 2.0
- Виміряні розміри файлів
- Конвертація без втрат
GLB vs glTF: коротка відповідь
glTF — це відкритий формат Khronos Group для передавання 3D-сцен у застосунки та веб, а GLB — не інший формат, а його бінарний контейнер. Специфікація визначає обидва: файл .gltf — це JSON (медіатип model/gltf+json), а файл .glb (model/gltf-binary) загортає той самий JSON плюс один бінарний буфер в один файл.
Отже, питання GLB vs glTF — це про пакування, а не про якість. Меші, PBR-матеріали, текстури, анімації, скіни та морф-таргети зберігаються однаково в обох. Змінюється те, скільки файлів ви тримаєте, чи можна відкрити опис сцени в текстовому редакторі і скільки зайвого розміру ви платите, якщо вбудувати бінарні дані в JSON.
Майже для всіх відповідь — GLB: один файл, щоб завантажити, надіслати поштою або кинути в three.js, Babylon.js, <model-viewer>, Blender, Unity чи Unreal. Обирайте glTF з окремими файлами, коли ви налагоджуєте, правите значення матеріалів вручну або ділите текстури між багатьма моделями на CDN.
Порівняльна таблиця GLB vs glTF
Обидва — це glTF 2.0, тож більшість рядків збігаються. Відрізняються саме ті рядки, які вирішують GLB vs glTF для вашого проєкту.
| GLB (.glb) | glTF (.gltf) | |
|---|---|---|
| Тип геометрії | Трикутні меші (також точки й лінії), ієрархія вузлів, скіни, морф-таргети | Ідентично |
| Колір / текстура | Текстури PNG або JPEG, збережені всередині бінарного чанка; кольори вершин | Текстури як окремі файли зображень або data URI у base64 всередині JSON |
| Одиниці | Метри, правостороння система, +Y вгору, згідно зі специфікацією | Ідентично |
| Матеріали | PBR metallic-roughness вбудовано; більше через розширення KHR | Ідентично |
| Розмір файлу | Найкомпактніша однофайлова форма: 12-байтовий заголовок плюс JSON-чанк і BIN-чанк | Ті самі байти, що й окремі файли; приблизно на 33% більше, якщо бінарні дані вбудовані як base64 |
| Редагованість | Бінарний; потрібен інструмент для перегляду | JSON читабельний для людини і придатний для diff у текстовому редакторі |
| Підтримка в програмах | three.js, Babylon.js, model-viewer, Blender, Unity, Unreal, Godot, Windows 3D Viewer | Ті самі завантажувачі; зовнішні файли мають лежати в правильній відносній теці |
| Використання для друку | Не формат для друку; UltiMaker Cura його відкриває, більшість слайсерів — ні | Те саме; конвертуйте в STL або 3MF для друку |
| Кількість файлів | 1 | від 1 до багатьох (.gltf, .bin, зображення) |
Джерело: специфікація Khronos glTF 2.0, розділи про розширення файлів, систему координат і одиниці та формат файлу GLB.
Як із glTF збирається файл GLB
GLB починається з 12-байтового заголовка: магічні байти glTF, версія (2) і загальна довжина. Далі йдуть чанки. Перший — JSON-чанк, той самий опис сцени, який містив би .gltf. Другий — BIN-чанк, у якому лежать позиції вершин, нормалі, UV, індекси, ключові кадри анімації і, зазвичай, самі зображення текстур.
.gltf зберігає цей JSON як окремий файл і посилається на бінарні дані одним із двох способів: відносними шляхами до .bin і файлів зображень, що лежать поруч, або data URI, які кодують байти в base64 прямо в JSON. Сама специфікація зазначає, що base64 збільшує довжину даних на 33%, а декодування потребує додаткової обробки. Саме тому GLB існує.
- GLB: заголовок + JSON-чанк + BIN-чанк, один файл
- glTF: JSON плюс .bin і зображення поруч
- Вбудований glTF: один файл, але base64 додає третину
Розмір GLB vs glTF: одна модель, три способи пакування
Ми взяли текстуровану AI-модель з нашої галереї — стимпанк-лицаря-робота з 500,000 трикутників, 287,963 вершинами та трьома PNG-текстурами 2048 x 2048 — і виміряли кожне пакування.
| Пакування | Файли | Розмір |
|---|---|---|
| GLB | 1 | 26.9 MB |
| glTF + .bin + текстури PNG | 5 (.gltf, .bin, 3 PNG) | близько 26.9 MB загалом; сам .gltf JSON — близько 2 KB |
| glTF із вбудованими даними base64 | 1 | близько 35.9 MB |
| Що це за байти | Геометрія 15.2 MB, текстури 11.7 MB |
Пакування нічого не зменшує. Щоб зробити модель меншою, стисніть геометрію (Draco або meshopt), зменште роздільну здатність або перекодуйте текстури чи скоротіть кількість трикутників. Наш компресор GLB і спрощувач мешів роблять це у браузері.
glTF vs GLB у вебі, AR та Blender
У вебі GLB — практичний стандарт за замовчуванням: один запит, один запис у кеші, і кожен популярний завантажувач його читає. Окремі файли glTF можуть вигравати на сайті, де показано багато моделей зі спільними текстурами, бо браузер завантажує спільне зображення лише раз; про цей компроміс ідеться в примітках до реалізації в самій специфікації.
Для AR: Scene Viewer на Android приймає glTF і GLB, а Quick Look від Apple на iPhone потребує USDZ, тож публікуйте обидва формати й конвертуйте GLB в USDZ для пристроїв Apple. У Blender File > Import > glTF 2.0 читає будь-який із них, а меню Format в експортері пропонує glTF Binary (.glb) і glTF Separate (.gltf + .bin + textures). Обирайте Binary, якщо немає причини робити інакше.
Для 3D-друку жоден із них не є правильним форматом передачі. Конвертуйте GLB в STL або 3MF; текстури не надрукуються, а форма — так.
- Веб і поширення: GLB
- Багато моделей зі спільними текстурами: окремий glTF
- AR на iPhone: конвертуйте в USDZ
- Друк: конвертуйте в STL або 3MF
GLB vs glTF: коли що використовувати
Обидва — коректний glTF 2.0. Обирайте за робочим процесом.
Поділитися моделлю з кимось
Вбудувати на сайт
Налагодження зламаного матеріалу
baseColorFactor, metallicFactor чи індекси текстур, виправте й перезавантажте.Каталог товарів зі спільними текстурами
Контроль версій
Уникайте: вбудований glTF
Конвертація glTF і GLB без нічого зламаного
Конвертація без втрат в обидва боки, за умови що всі пов'язані файли на місці.
- Тримайте .gltf, .bin і зображення текстур у тих самих відносних теках, у яких їх експортували
- Завантажте результат у в'юер і переконайтеся, що текстури на місці, перш ніж ділитися
- Пам'ятайте, що glTF — у метрах: фігурка 30 мм це 0.03 одиниці, що в деяких інструментах виглядає крихітно
- Стискайте геометрію й текстури для вебу; саме перепакування нічого не економить
- Надсилайте лише файл .gltf; без .bin і зображень модель завантажиться порожньою або сірою
- Перейменовуйте .gltf у .glb; бінарний заголовок має записати конвертер
- Використовуйте вбудований base64 glTF для великих моделей; це додає близько 33% до бінарних даних
- Сподівайтеся, що слайсер надрукує текстури з GLB; конвертуйте в 3MF для багатоколірного друку
Безкоштовні в'юери й конвертери GLB та glTF
Інструменти для обох боків GLB vs glTF. Усі працюють у браузері без входу, а ваші файли залишаються на пристрої.
FAQ
Часті запитання
GLB vs glTF: що краще?
У чому різниця між GLB і glTF одним реченням?
Чи втрачається якість при конвертації glTF у GLB?
Чому мій GLB такий великий?
Чи можна надрукувати GLB або glTF на 3D-принтері?
Які одиниці використовує glTF?
Який формат дає мені SupaVoxel?
Чи відкривають iPhone файли GLB?
Схожі інструменти та гайди
Продовжуйте
Почати безкоштовно
GLB чи glTF — розібралися? Створіть модель
Перетворіть фото на 3D-модель — зазвичай менш ніж за хвилину. Завантаження GLB безкоштовні за перші 3 кредити й не потребують картки; текстуровані моделі — на платному плані.
Без картки · 3 безкоштовні кредити на старт