Конвертер бінарного glTF у glTF JSON
Конвертація GLB у GLTF розпаковує єдиний бінарний контейнер у окремі текстові файли та файли ресурсів, що дозволяє розробникам легко редагувати текстури та код 3D-геометрії.
Порівняння форматів та технічні характеристики
| Специфікація | GLB | GLTF |
|---|---|---|
| MIME-тип | model/gltf-binary | model/gltf+json |
| Тип | self-contained binary 3D container | runtime 3D asset transmission |
| Стиснення | binary packaged JSON, buffers, and textures | lossless JSON manifest + external binary buffers |
| Стандартна специфікація | Khronos glTF 2.0 Binary Container | Khronos glTF 2.0 Specification |
| Заголовок Magic Bytes | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) |
Огляд формату та застосування
Формат GLB пакує 3D-сцени, анімації, матеріали та текстури в один охайний бінарний пакет. Хоча це чудово для швидкого завантаження об'єктів на вебсторінки та в ігри, це ускладнює редагування вихідних даних. Розробникам часто потрібно розпакувати файл GLB у формат GLTF, коли необхідно перевірити структуру сцени, налаштувати властивості матеріалів у текстовому редакторі або змінити вбудовані параметри шейдерів. Робота з розпакованими ресурсами GLTF дозволяє інженерним командам використовувати контроль версій для конкретних компонентів 3D-сітки за допомогою стандартних робочих процесів Git. Замість відстеження масивного бінарного блоба розробники можуть фіксувати невеликі текстові зміни в маніфесті JSON, одночасно керуючи окремими бінарними буферними файлами. Цей процес конвертації підтримує вдосконалені пайплайни веб-розробки, де 3D-ресурси потребують введення кастомних шейдерів або динамічної заміни текстур перед розгортанням у реальному часі.
Технічні специфікації та розбір кодеків
GLB використовує MIME-тип model/gltf-binary та починається з 12-байтового заголовка, що містить 4-байтове магічне число (0x46546C67), 4-байтове ціле число версії та 4-байтову загальну довжину файлу. За цим заголовком слідують блоки, що містят маніфест JSON та бінарні буфери. Конвертація у GLTF, який використовує MIME-тип model/gltf+json, розділяє маніфест на зручний для читання людиною текстовий файл із розширенням .gltf. Дані геометрії та карти пікселів записуються в окремі зовнішні файли, такі як .bin та .png. Жоден із форматів за замовчуванням не використовує стиснення з втратами. Обидва зберігають позиції вершин, нормалі та текстурні координати з повною математичною точністю.
Сумісність з ОС та браузерами
Розпаковані файли GLTF плавно працюють у всіх сучасних веббраузерах, зокрема Google Chrome, Mozilla Firefox, Apple Safari та Microsoft Edge з використанням рендерерів WebGL і WebGPU. Настільні операційні системи, такі як Windows 10 та 11, macOS і Linux, підтримують перегляд GLTF за допомогою вбудованих інструментів, таких як Windows 3D Viewer та Blender. Мобільні операційні системи на iOS та Android відмальовують ресурси GLTF усередині нативних середовищ доповненої реальності та вебзастосунків, хоча розробники повинні правильно розміщувати окремі файли .bin та .gltf на своїх серверах, щоб уникнути помилок спільного використання ресурсів між різними джерелами (CORS).
💡 Корисна інформація
Завжди тримайте свої карти текстур у тій самій папці, що й основний файл .gltf після конвертації, щоб маніфест JSON міг знайти свої зовнішні залежності без помилок розриву шляхів.
Порівняння форматів та технічні характеристики
Складні 3D-моделі персонажа розміром 15 мегабайт у форматі GLB дадуть подібний загальний обсяг даних при розділенні на маніфест .gltf та зовнішні файли .bin. На стандартному з'єднанні 4G зі швидкістю 30 мегабіт на секунду завантаження цього ресурсу займає близько 4 секунд. Перехід на мережу 5G або оптоволоконне з'єднання зі швидкістю 300 мегабіт скорочує час передачі до частки секунди, роблячи багатофайлове вебзавантаження практично миттєвим.
Поширені запитання
Як конвертувати бінарний glTF у glTF JSON без втрати якості?
Конвертація з GLB у GLTF є повністю без втрат, оскільки обидва формати використовують однакові базові математичні структури. Просте вилучення блоку JSON та бінарних буферів з єдиного бінарного контейнера з подальшим записом їх як окремих файлів на диск не змінює даних вершин чи піксельного стиснення.
У чому різниця між бінарним glTF та glTF JSON?
GLB - це самодостатній бінарний файл, який пакує опис сцени, геометрію та текстури в одне завантаження. GLTF розділяє ці елементи, зберігаючи граф сцени в читабельному текстовому файлі, тоді як геометрія та текстури знаходяться в зовнішніх бінарних файлах та файлах зображень.