Конвертер glTF в GLB
Конвертация ресурсов glTF JSON в контейнеры glTF Binary объединяет отдельные текстовые манифесты, бинарные буферы и текстуры в единый файл для более быстрой доставки через веб.
Сравнение форматов и технические характеристики
| Характеристика | GLTF | GLB |
|---|---|---|
| MIME-тип | model/ | model/ |
| Тип | передача 3D-ресурсов во время выполнения | автономный двоичный 3D-контейнер |
| Сжатие | без потерь, манифест JSON + внешние бинарные буферы | бинарный пакет JSON, буферов и текстур |
| Стандартная спецификация | Khronos glTF 2.0 Specification | Khronos glTF 2.0 Binary Container |
| Сигнатура файла (Magic Bytes) | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) |
Обзор формата и областей применения
Формат glTF JSON сохраняет 3D-сцены с использованием структуры в виде обычного текста. Этот текстовый файл указывает на внешние бинарные файлы и изображения текстур. Хотя такая установка помогает разработчикам редактировать материалы и узлы геометрии непосредственно в редакторах кода, перемещение модели требует управления несколькими файлами одновременно. Если один файл текстуры потеряется или путь к файлу нарушится, 3D-модель не сможет корректно загрузиться в браузерах и игровых движках. Конвертация glTF JSON в glTF Binary объединяет все эти разрозненные элементы в один упакованный файл. 3D-художники и веб-разработчики используют этот шаг конвертации перед публикацией ресурсов на производственных веб-серверах или загрузкой их в программы просмотра дополненной реальности. Наличие единственного файла уменьшает количество HTTP-запросов, что ускоряет время загрузки для пользователей, посещающих страницы товаров электронной коммерции и интерактивные веб-приложения с 3D.
Технические спецификации и разбор кодеков
Формат glTF JSON использует MIME-тип model/gltf+json, опираясь на текстовый манифест JSON в сочетании с внешними bin-файлами и изображениями. В то же время формат GLB использует MIME-тип model/gltf-binary и упаковывает все в один двоичный контейнер. Файл GLB начинается с 12-байтового заголовка, содержащего 4-байтовый магический номер (magic number), установленный в значение 0x46546C67, 4-байтовый номер версии и 4-байтовую общую длину файла. За этим заголовком следуют блоки, в которых хранятся манифест JSON и данные бинарного буфера. Ни один из форматов не изменяет лежащую в основе геометрию сетки или пиксели текстуры во время конвертации, что означает отсутствие потерь при конвертации.
Совместимость с ОС и браузерами
Оба формата работают встроенными средствами в современных веб-браузерах с использованием рендереров WebGL и WebGPU без необходимости установки сторонних плагинов. Настольные операционные системы, такие как Windows и macOS, поддерживают просмотр GLB с помощью встроенных инструментов предварительного просмотра файлов. Мобильные платформы, включая iOS и Android, отображают файлы GLB напрямую в приложениях дополненной реальности Quick Look и Scene Viewer.
Полезная информация
Сохраняйте исходные текстуры в формате PNG или JPEG перед их упаковкой в файл GLB, чтобы сохранить визуальную точность без раздувания размера контейнера.
Часто задаваемые вопросы
Как конвертировать glTF JSON в glTF Binary без потери качества?
Конвертация glTF JSON в GLB происходит абсолютно без потерь, так как процесс заключается лишь в переупаковке существующего текстового манифеста, бинарных буферов и файлов изображений в единый контейнер без изменения данных вершин или дополнительного сжатия пикселей текстур.
В чем разница между glTF JSON и glTF Binary?
glTF JSON использует читаемый человеком текстовый файл, который ссылается на внешние bin-файлы и файлы изображений, в то время как glTF Binary упаковывает текстовый манифест, данные геометрии и текстуры в один автономный файл с сигнатурным заголовком.