Двійковий формат glTF (.glb)

ISO/IEC Стандарт

Бінарний glTF (GLB): це самодостатнє двійкове представлення стандарту glTF 2.0 в одному файлі, яке часто називають «JPEG для 3D» у контексті 3D-графіки для вебу, доповненої реальності (AR) та ігрових рушіїв реального часу.

Конвертувати з GLTF у GLB

Безкоштовний конвертер з GLTF у GLB у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли GLB, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли GLB, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

67 6C 54 46

ПОДАННЯ В ASCII: glTF

Стандартизація: ISO/IEC 12113:2022 / Khronos Open Standard

Технічні характеристики

Архітектура контейнера12-байтовий двійковий заголовок («glTF», версія, довжина), за яким ідуть блок JSON (CHUNK 0) і блок двійкового буфера (CHUNK 1)
СтисненняСтиснення геометрії сітки DRACO, KHR_texture_basisu (текстури KTX2/Basis Universal для GPU) та ExtMeshopt
Порядок байтів (Endianness)Little-Endian (Intel x86 / WebGL standard)
Колірні просториsRGB textures, Лінійні канали шорсткості та металічності PBR
Канали та структураМатеріали PBR (металічність: шорсткість), скелетні сітки, прив’язані до кісток, цілі морфінгу, анімації, камери та джерела світла
Максимальні розміриНеобмежена кількість вершин і трикутників (підтримує моделі розміром у кілька гігабайтів)
ПрозорістьПокриття альфа-каналу (MASK), альфа-змішування (BLEND) та об’ємне пропускання світла
Потокове та прогресивне завантаженняОдин самодостатній файл із таблицями двійкових зсувів для прямого завантаження даних у буфери вершин GPU (VBO)

Технічна матриця порівняння: GLB проти конкурентів

Технічний атрибутGLB (Поточний)GLTFUSDZFBX
Модель пакуванняОдин самодостатній бінарний файлJSON + зовнішні файли .bin та текстуриZIP-архів схем USD та текстурПроприєтарний бінарний/ASCII формат Autodesk
Стандарт для вебу й ARПідтримка залежить від програми.Підтримка залежить від програми.Стандарт Apple iOS Quick Look ARСтандарт імпорту для десктопних ігрових рушіїв
Модель матеріалівСтандартизована модель PBR Metallic-Roughness у glTFСтандартизований glTF PBRПідтримка залежить від програми.Проприєтарні шейдери Phong/Lambert/PBR
Швидкість читання GPUМиттєве (пряме відображення пам'яті)Швидке (кілька мережевих запитів)Швидка (нестиснуті елементи ZIP)Повільне (потребує складного розбору)

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

3D-модель відображається без текстур або із суцільно чорними поверхнями.

Першопричина: Пошкоджений вбудований блок текстури або відсутнє посилання на текстуру PBR із металічністю та шорсткістю.

Відновлення: Перевірте й відновіть зміщення блоків за допомогою File2File.app 3D Converter або glTF-Transform.

Аналіз безпеки та векторів атак на парсери

Засоби розбору GLB обробляють блоки тексту JSON разом із довільними двійковими буферами. Якщо довжини буферів не збігаються, це може призвести до переповнення буфера.

Відомі вектори атак

  • Читання за межами буфера, коли byteOffset + byteLength для bufferView перевищує довжину двійкового блока.
  • Читання індексу вершини за межами масиву під час виконання WebGL drawElements.
  • Відмова в обслуговуванні через патологічні цикли декомпресії Draco.

Рекомендації щодо захисту: Ретельно перевіряйте, що діапазони байтів accessor і bufferView повністю лежать у межах оголошеного двійкового блока.

Історичне походження та віхи

2022glTF 2.0 та GLB стандартизовано на міжнародному рівні організацією ISO/IEC як ISO/IEC 12113:2022.
2018Google обирає GLB як стандартний 3D-формат для Android Scene Viewer і доповненої реальності у вебі за допомогою <model-viewer>.
2015Khronos Group представляє GLB як однофайловий двійковий контейнер для екосистеми glTF.

Основні переваги

  • Повністю самодостатній формат: об'єднує 3D-геометрію, матеріали PBR, текстури (PNG/JPEG/KTX2) і скелетні анімації в один файл.
  • Пряме завантаження в GPU: двійкові буфери геометрії відповідають структурі пам'яті WebGL / Vulkan, тож CPU не витрачає ресурси на розбір даних.
  • Беззаперечний стандарт для WebGL, WebGPU, перегляду 3D-товарів в електронній комерції та мобільної доповненої реальності.

Технічні обмеження та недоліки

  • Двійкова структура ускладнює ручний перегляд вмісту або редагування без спеціалізованих 3D-інструментів.
  • Вимагає бібліотек декомпресії Draco або Basis Universal у разі використання додаткових розширень стиснення.
  • Платформи Apple віддають перевагу USDZ для перегляду доповненої реальності у вбудованому засобі iOS Quick Look, тому GLB потрібно конвертувати.

Цікаві технічні факти

  • Перші 4 байти кожного файлу GLB: це 0x67 0x6C 0x54 0x46, що в ASCII утворює рядок 'glTF'.
  • Коли ви розглядаєте 3D-кросівки у веббраузері смартфона, ви майже напевно дивитеся на інтерактивну модель GLB.
  • GLB спеціально розробили так, щоб графічне обладнання могло читати буфери вершин безпосередньо з диска у VRAM без перетворень.

Поширені технічні запитання

У чому різниця між glTF та GLB?

glTF: це JSON-файл, який посилається на зовнішні .bin файли геометрії та окремі файли текстур зображень. GLB об'єднує весь цей набір в один компактний бінарний файл.

Як конвертувати GLB у USDZ для Apple AR?

Ви можете конвертувати моделі GLB у файли USDZ, сумісні з пристроями Apple в один клік за допомогою File2File.app безпосередньо у вашому веббраузері.

Чи можна відкривати файли GLB у Blender?

Так. У Blender вбудовано високопродуктивні засоби імпорту й експорту glTF/GLB.