Конвертер из двоичного glTF в JSON glTF
Конвертация из GLB в GLTF распаковывает единый двоичный контейнер в отдельные текстовые и файловые ресурсы, позволяя разработчикам легко редактировать текстуры и код трехмерной геометрии.
Сравнение форматов и технические характеристики
| Характеристика | 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 упаковывает трехмерные сцены, анимации, материалы и текстуры в единый аккуратный двоичный пакет. Хотя это отлично подходит для быстрой загрузки объектов на веб-страницы и в игры, это затрудняет редактирование исходных данных. Разработчикам часто требуется распаковать файл GLB в формат GLTF для проверки структуры сцены, настройки свойств материалов в текстовом редакторе или изменения встроенных параметров шейдеров. Работа с распакованными ресурсами GLTF позволяет инженерным командам использовать стандартные рабочие процессы Git для контроля версий конкретных компонентов трехмерной сетки. Вместо отслеживания огромного двоичного блока разработчики могут фиксировать небольшие текстовые изменения в манифесте JSON, управляя отдельными файлами двоичных буферов. Этот процесс конвертации поддерживает передовые веб-разработки, где трехмерным ресурсам требуется внедрение пользовательских шейдеров или динамическая замена текстур до выполнения.
Технические спецификации и разбор кодеков
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 с помощью встроенных инструментов, таких как «Средство просмотра 3D» в Windows и Blender. Мобильные операционные системы на базе iOS и Android отображают ресурсы GLTF в собственных средах дополненной реальности и веб-приложениях, хотя разработчики должны правильно размещать отдельные файлы .bin и .gltf на своих серверах во избежание ошибок совместного использования ресурсов между источниками (CORS).
💡 Полезная информация
Всегда храните карты текстур в той же папке, что и основной файл .gltf после конвертации, чтобы манифест JSON мог найти свои внешние зависимости без ошибок путей.
Сравнение форматов и технические характеристики
Сложная модель трехмерного персонажа размером 15 мегабайт в формате GLB дает аналогичный общий объем данных при разделении на манифест .gltf и внешние файлы .bin. При стандартном соединении 4G со скоростью 30 мегабит в секунду загрузка этого ресурса занимает около 4 секунд. Переход на сеть 5G или оптоволоконное соединение со скоростью 300 мегабит сокращает время передачи до доли секунды, делая многофайловую загрузку в Интернете практически мгновенной.
Часто задаваемые вопросы
Как конвертировать двоичный glTF в JSON glTF без потери качества?
Конвертация из GLB в GLTF полностью без потерь, поскольку оба формата используют одни и те же базовые математические структуры. Процесс просто извлекает блок JSON и двоичные буферы из единого двоичного контейнера и записывает их в виде отдельных файлов на диск без изменения данных вершин или сжатия пикселей.
В чем разница между двоичным glTF и JSON glTF?
GLB - это автономный двоичный файл, который объединяет описание сцены, геометрию и текстуры в одну загрузку. GLTF разделяет эти элементы, сохраняя граф сцены в читаемом текстовом файле, в то время как геометрия и текстуры хранятся во внешних двоичных файлах и файлах изображений.