Дані glTF у форматі JSON (.gltf)
ISO/IEC СтандартGL Transmission Format (glTF): це відкрита безоплатна специфікація JSON для ефективного передавання й завантаження 3D-сцен і моделей у WebGL, WebGPU, ігрові рушії та нативні застосунки.
Конвертувати з GLTF у GLB
Безкоштовний конвертер з GLTF у GLB у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли glTF, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли glTF, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
7B 0A 20 20 22 61 73 73 65 74 22ПОДАННЯ В ASCII: {\n "asset"
Стандартизація: ISO/IEC 12113:2022 / Khronos Open Standard
Технічні характеристики
| Архітектура контейнера | Зрозумілий для читання людиною документ JSON з описом графа сцени, вузлів, сіток, засобів доступу до даних (accessors), матеріалів і анімацій із посиланнями на зовнішні буфери. |
| Стиснення | Зовнішні текстури (PNG, JPEG, WebP) і необов’язкове стиснення геометрії за допомогою Draco |
| Порядок байтів (Endianness) | Текст JSON у кодуванні UTF-8 (посилання на буфери .bin із порядком байтів від молодшого до старшого, Little-Endian) |
| Колірні простори | Базовий колір sRGB, Лінійні канали шорсткості та металічності |
| Канали та структура | Ієрархія сцени, вузли, камери, матеріали PBR, скелети зі скінінгом та цілі морфінгу |
| Максимальні розміри | Необмежений простір координат і кількість трикутників |
| Прозорість | Режим альфа-каналу BLEND, MASK з порогом відсікання або об’ємне пропускання світла |
| Потокове та прогресивне завантаження | glTF відокремлює описи сцени від двійкових даних геометрії та текстур, тому переглядач може завантажувати потрібні компоненти окремо, не чекаючи на один великий файл. |
Технічна матриця порівняння: glTF проти конкурентів
| Технічний атрибут | glTF (Поточний) | GLB | OBJ | FBX |
|---|---|---|---|---|
| Архітектура файлу | Текст сцени у форматі JSON + супутні файли .bin і текстурні файли | Один самодостатній бінарний файл | Звичайний текст вершин і граней + .mtl | Проприєтарний бінарний/ASCII контейнер |
| Стандарти матеріалів PBR | Стандартизована модель Metallic-Roughness PBR | Стандартизована модель Metallic-Roughness PBR | Застарілі матеріали Phong/Lambert | Власні проприєтарні матеріали |
| Підтримка анімації | Скелетна деформація та цілі морфінгу | Скелетна деформація та цілі морфінгу | Відсутня (тільки статична геометрія) | Складна анімація та кісткові структури |
| Продуктивність виконання | Оптимізований для WebGL і рушіїв реального часу | Оптимізований для WebGL і рушіїв реального часу | Потребує повільного розбору й повторного створення | Потребує складного розбору за допомогою настільного SDK |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
Помилка рушія 3D: «Failed to load buffer: URI not found».
Першопричина: Супутній двійковий файл .bin або зображення текстур не були завантажені разом із файлом .gltf.
Відновлення: Запакуйте всі супутні файли разом або конвертуйте їх безпосередньо в єдиний файл GLB за допомогою File2File.app.
Аналіз безпеки та векторів атак на парсери
Файли JSON формату glTF містять посилання на зовнішні URI (URI даних або віддалені URL), що може призвести до підроблення запитів на стороні сервера (SSRF) або атак обходу шляхів.
Відомі вектори атак
- Обхід шляхів за допомогою відносних URI буферів (наприклад, «uri: ../../../etc/passwd»).
- SSRF через завантаження буферів із віддалених джерел у серверних засобах створення 3D-мініатюр.
- Відмова в обслуговуванні через некоректні цикли в рекурсивній ієрархії вузлів.
Рекомендації щодо захисту: Забороняйте віддалені URL-адреси та нормалізуйте всі локальні шляхи URI буферів перед завантаженням.
Історичне походження та віхи
Основні переваги
- Структура JSON, зрозуміла людині, дає змогу редагувати дані програмно, писати скрипти для конвеєрів і візуально їх переглядати.
- Модульна структура: відокремлює легкі метадані сцени від об'ємних двійкових даних геометрії (.bin) і текстур.
- Матеріали PBR можуть покращити узгодженість, але результат залежить від рушія, освітлення та налаштувань.
Технічні обмеження та недоліки
- Складність роботи з кількома файлами: щоб поділитися моделлю, потрібно заархівувати або об'єднати файли .gltf, .bin і текстури.
- Початкове завантаження дещо повільніше, ніж для однофайлового GLB, через кілька HTTP-запитів.
- Залежності від відносних шляхів можуть порушитися, якщо супутні файли текстур перейменовано або переміщено.
Цікаві технічні факти
- glTF офіційно називають «JPEG для 3D», оскільки формат призначений виключно для передавання та відображення під час виконання, а не для створення.
- Група Khronos представила glTF, щоб спростити передавання 3D-ресурсів для веб- і мобільних застосунків.
- NASA надає 3D-моделі марсоходів, супутників та астронавтів для публічного завантаження у форматі glTF.
Поширені технічні запитання
Чому у моєму файлі glTF відсутні кольори або форми?
Файл .gltf містить лише опис сцени у форматі JSON. Для 3D-форм потрібні супутні файли .bin, а для текстур: файли .png/.jpg. Переконайтеся, що всі супутні файли зберігаються в одній папці.
Як перетворити файл glTF на єдиний файл GLB?
Завантажте свій файл .gltf разом із супутнім файлом .bin і файлами текстур на File2File.app, щоб миттєво об'єднати їх в один самодостатній файл .glb.
Які програми підтримують glTF?
Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot і Windows 3D Viewer підтримують glTF одразу після встановлення.
Пов'язані пари конвертації glTF
Перетворіть ресурси glTF JSON на бінарний контейнер glTF: окремий текстовий маніфест, бінарні буфери й текстури буде об’єднано в один файл для швидшого завантаження у вебі.
Конвертація GLB у GLTF розпаковує єдиний бінарний контейнер у окремі текстові файли та файли ресурсів, що дозволяє розробникам легко редагувати текстури та код 3D-геометрії.
Перетворення файлів геометрії Wavefront OBJ на маніфести glTF JSON переводить статичні 3D-моделі у сучасні ресурси для вебу, які швидко завантажуються у звичайних браузерах.