Бинарный glTF (.glb)
ISO/IEC СтандартДвоичный формат glTF (GLB) представляет собой автономную однофайловую двоичную упаковку стандарта glTF 2.0, которую часто называют «JPEG для 3D» в сфере трехмерной графики для интернета, дополненной реальности (AR) и игровых движков реального времени.
Конвертировать из GLTF в GLB
Бесплатный конвертер из GLTF в GLB прямо в браузере. Конвертируйте файлы мгновенно на Вашем устройстве.
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы GLB по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы GLB по начальной двоичной последовательности байтов:
HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):
67 6C 54 46ПРЕДСТАВЛЕНИЕ ASCII: glTF
Стандартизация: ISO/IEC 12113:2022 / Открытый стандарт Khronos
Технические спецификации
| Архитектура контейнера | 12-байтовый двоичный заголовок ('glTF', версия, длина), за которым следуют блок JSON (БЛОК 0) и блок двоичного буфера (БЛОК 1) |
| Сжатие | Сжатие геометрии сетки DRACO, KHR_texture_basisu (текстуры GPU в форматах KTX2/Basis Universal) и ExtMeshopt |
| Порядок байтов (Endianness) | Младший байт первым (стандарт Intel x86 и WebGL) |
| Цветовые пространства | Текстуры sRGB, Линейные каналы шероховатости/металлической поверхности PBR |
| Каналы и структура | Материалы PBR (Metallic-Roughness), скелетные сетки с привязкой к костям, цели морфинга, анимации, камеры и источники света |
| Максимальные размеры | Неограниченное количество вершин и треугольников (поддерживает модели размером в несколько гигабайт) |
| Прозрачность | Альфа-покрытие (MASK), альфа-смешивание (BLEND) и объемное пропускание света |
| Потоковая передача и прогрессивная загрузка | Один автономный файл с таблицами двоичных смещений для прямой загрузки VBO графического процессора |
Техническая матрица сравнения: GLB с конкурентами
| Технический атрибут | GLB (Текущий) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| Модель упаковки | Один автономный двоичный файл | JSON + внешние файлы .bin и текстуры | ZIP-архив схем USD и текстур | Проприетарный бинарный/текстовый формат Autodesk |
| Веб-стандарт и стандарт AR | Поддержка зависит от программы. | Поддержка зависит от программы. | Стандарт Apple iOS Quick Look AR | Стандарт импорта для настольных игровых движков |
| Модель материалов | Стандартизированная модель PBR Metallic-Roughness в glTF | Стандартизированная модель PBR в glTF | Поддержка зависит от программы. | Проприетарные шейдеры Phong/Lambert/PBR |
| Производительность чтения GPU | Мгновенное (прямое отображение в память) | Быстрая (несколько сетевых запросов) | Быстрая (незапакованные элементы ZIP) | Медленная (требуется сложный разбор) |
Распространенные сценарии повреждения и руководство по восстановлению в HEX
3D-модель отображается с отсутствующими текстурами или полностью черными поверхностями.
Первопричина: Поврежден встроенный блок текстуры или отсутствует ссылка на текстуру PBR с параметрами Metallic-Roughness.
Восстановление: Проверьте и восстановите смещения блоков с помощью конвертера File2File.app 3D или инструмента glTF-Transform.
Анализ безопасности и векторы атак на парсер
Анализаторы GLB обрабатывают текстовые блоки JSON в сочетании с произвольными двоичными буферами, что может привести к переполнению буфера при несовпадении размеров.
Известные векторы атак
- Чтение за пределами буфера, когда byteOffset + byteLength для bufferView превышает длину двоичного блока.
- Чтение индекса вершины за пределами допустимого диапазона во время выполнения функции WebGL drawElements.
- Отказ в обслуживании из-за чрезмерно длительного распаковывания данных Draco из-за патологических циклов.
Лучшие практики защиты: Строго проверяйте, что все диапазоны байтов accessor и bufferView находятся в пределах, объявленных для двоичного блока.
История происхождения и ключевые этапы
Ключевые преимущества и плюсы
- Полная автономность: объединяет 3D-геометрию, материалы PBR, текстуры (PNG/JPEG/KTX2) и скелетную анимацию в один файл.
- Прямая загрузка на графический процессор: двоичные буферы геометрии соответствуют раскладке памяти WebGL и Vulkan, поэтому процессору не нужно разбирать данные.
- Бесспорный стандарт для WebGL, WebGPU, предварительного просмотра 3D-товаров в электронной коммерции и мобильной дополненной реальности.
Технические ограничения и минусы
- Двоичная структура затрудняет ручной просмотр содержимого в текстовом виде или редактирование без специализированных 3D-инструментов.
- Требует наличия библиотек декомпрессии Draco или Basis Universal при использовании расширенных алгоритмов сжатия.
- Платформы Apple отдают предпочтение формату USDZ для просмотра дополненной реальности в iOS Quick Look, что требует конвертации из GLB.
Интересные технические факты
- Первые 4 байта каждого файла GLB равны 0x67 0x6C 0x54 0x46, что в ASCII-кодировке образует слово «glTF».
- Просматривая 3D-модель кроссовок в браузере смартфона, Вы почти наверняка имеете дело с интерактивной моделью в формате GLB.
- GLB разработан так, чтобы графическое оборудование могло считывать буферы вершин напрямую с диска в видеопамять без преобразования данных.
Часто задаваемые технические вопросы
В чем разница между glTF и GLB?
glTF: это файл JSON, который ссылается на внешние файлы геометрии .bin и отдельные файлы изображений текстур. GLB объединяет весь этот пакет в один компактный двоичный файл.
Как можно конвертировать GLB в USDZ для дополненной реальности Apple?
Вы можете конвертировать модели GLB в готовые для Apple файлы USDZ в один клик с помощью File2File.app прямо в своем веб-браузере.
Можно ли открывать файлы GLB в Blender?
Да. Blender включает в себя встроенный высокопроизводительный инструмент импорта и экспорта glTF/GLB.
Связанные конвертации для GLB
Конвертация ресурсов glTF JSON в контейнеры glTF Binary объединяет отдельные текстовые манифесты, бинарные буферы и текстуры в единый файл для более быстрой доставки через веб.
Конвертация GLB в GLTF распаковывает единый двоичный контейнер в отдельные текстовые файлы и файлы ресурсов, чтобы разработчики могли легко редактировать текстуры и код 3D-геометрии.