Бинарный 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 (металлическая шероховатость), скелетные сетки с привязкой к костям, целевые морфы, анимации, камеры и источники света |
| Макс. габариты | Неограниченное количество вершин и треугольников (поддерживает модели размером в несколько гигабайт) |
| Прозрачность | Альфа-покрытие (MASK), альфа-смешивание (BLEND) и объемное пропускание света |
| Потоковая передача и прогрессивная загрузка | Один автономный файл с таблицами двоичных смещений для прямой загрузки VBO графического процессора |
Техническая матрица сравнения: GLB против конкурентов
| Технический атрибут | GLB (Текущий) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| Модель упаковки | Один автономный двоичный файл | JSON + внешние файлы .bin и текстуры | ZIP-архив схем USD и текстур | Проприетарный бинарный/текстовый формат Autodesk |
| Веб-стандарт и стандарт AR | Универсальный стандарт WebGL и Android AR | Универсальный стандарт WebGL (несколько файлов) | Стандарт Apple iOS Quick Look AR | Стандарт импорта для настольных игровых движков |
| Модель материалов | Стандартизированная модель PBR Metallic-Roughness в glTF | Стандартизированная модель PBR в glTF | Универсальная схема материалов Pixar PBR | Проприетарные шейдеры Phong/Lambert/PBR |
| Производительность чтения GPU | Мгновенная (прямое отображение в память) | Быстрая (несколько сетевых запросов) | Быстрая (незапакованные элементы ZIP) | Медленная (требуется сложный разбор) |
Типичные режимы повреждения и руководство по восстановлению в HEX
3D-модель отображается с отсутствующими текстурами или полностью черными поверхностями.
Первопричина: Поврежденный внедренный блок текстуры или отсутствие ссылки на текстуру металлической шероховатости PBR.
Восстановление: Проверьте и восстановите смещения блоков с помощью конвертера File2File 3D или инструмента glTF-Transform.
Анализ безопасности и векторы атак на парсер
Анализаторы GLB обрабатывают текстовые блоки JSON в сочетании с произвольными двоичными буферами, что может привести к переполнению буфера при несовпадении размеров.
Известные векторы атак
- Чтение за пределами буфера, когда byteOffset + byteLength для bufferView превышает длину двоичного блока.
- Чтение индекса вершины за пределами допустимого диапазона во время выполнения функции WebGL drawElements.
- Отказ в обслуживании из-за циклических циклов декомпрессии поврежденного алгоритма Draco.
Защитные лучшие практики: Строго проверяйте, чтобы все диапазоны байтов аксессоров и bufferView попадали внутрь заявленных границ двоичного блока.
Исторические истоки и вехи
Ключевые преимущества и плюсы
- Полная автономность: объединяет 3D-геометрию, материалы PBR, текстуры (PNG/JPEG/KTX2) и скелетную анимацию в один файл.
- Прямая загрузка в GPU: двоичные буферы геометрии соответствуют картам памяти WebGL / Vulkan без затрат ресурсов процессора на синтаксический анализ.
- Бесспорный стандарт для WebGL, WebGPU, предварительного просмотра 3D-товаров в электронной коммерции и мобильной дополненной реальности.
Технические ограничения и минусы
- Двоичная структура затрудняет ручной просмотр текста или редактирование без специализированных 3D-инструментов.
- Требует наличия библиотек декомпрессии Draco или Basis Universal при использовании расширенных алгоритмов сжатия.
- Платформы Apple отдают предпочтение формату USDZ для функции быстрого просмотра iOS Quick Look AR, что требует конвертации из 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 распаковывает единый двоичный контейнер в отдельные текстовые и файловые ресурсы, позволяя разработчикам легко редактировать текстуры и код трехмерной геометрии.