Дані glTF у форматі JSON (.gltf)

ISO/IEC Стандарт

GL Transmission Format (glTF): це відкрита безоплатна специфікація JSON для ефективного передавання й завантаження 3D-сцен і моделей у WebGL, WebGPU, ігрові рушії та нативні застосунки.

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

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

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

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

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

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

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

Сигнатура заголовка на байтовому рівні (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 (Поточний)GLBOBJFBX
Архітектура файлуТекст сцени у форматі 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 буферів перед завантаженням.

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

2022glTF 2.0 отримує міжнародне затвердження як стандарт ISO/IEC 12113:2022.
2017Khronos Group випускає glTF 2.0, стандартизуючи фізично обґрунтований рендеринг (PBR) як ключову функцію.
2015glTF 1.0 анонсовано на SIGGRAPH; його розробниками стали Фабріс Робіне, Ніл Треветт та Тоні Парізі.

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

  • Структура 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 одразу після встановлення.