glTF JSON (.gltf)

ISO/IEC Стандарт

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

Конвертиране от GLTF към GLB

Безплатен конвертор от GLTF към GLB в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Проверка и метаданни

Операционните системи и файловите анализатори идентифицират glTF файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират glTF файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

7B 0A 20 20 22 61 73 73 65 74 22

ASCII ПРЕДСТАВЯНЕ: {\n "asset"

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

Технически спецификации

Контейнерна архитектураЧетим JSON документ, който описва графа на сцената, възлите, мрежите, аксесорите, материалите и анимациите и препраща към външни буфери
КомпресияВъншни текстури (PNG, JPEG, WebP) и незадължителна компресия на геометрията DRACO
Поредност на байтовете (Endianness)Текстът JSON е в UTF-8; препратките към двоичните буфери .bin са в ред от младшия към старшия байт (Little-Endian).
Цветови пространстваОсновен цвят sRGB, Линейни стойности за грапавост и металност
Канали и структураЙерархия на сцената, възли, камери, PBR материали, скелети за деформация и цели на преобразуване
Максимални размериНеограничено координатно пространство и брой триъгълници
ПрозрачностРежим на алфа канала BLEND, MASK с праг за изрязване или обемно пропускане на светлина
Поточно предаване и прогресивно зарежданеglTF разделя описанието на сцената от двоичните данни за геометрията и текстурите, така че визуализаторът може да зарежда компонентите при нужда, вместо да чака един монолитен файл.

Техническа сравнителна матрица: glTF спрямо конкуренти

Технически атрибутglTF (Текущ)GLBOBJFBX
Файлова структураJSON текст на сцената + придружаващи .bin / текстуриЕдин самостоятелен двоичен файлОбикновен текстов формат за върхове и лица + .mtlПроприетарен двоичен/ASCII контейнер
Стандарти за материали с физически коректно изобразяване (PBR)Стандартизиран PBR модел Metallic-RoughnessСтандартизиран PBR модел Metallic-RoughnessСтари материали Phong/LambertПерсонализирани проприетарни материали
Поддръжка на анимацияСкелетна анимация (skinning) и цели за морфингСкелетна деформация (skinning) и цели за морфингНяма (само статична геометрия)Сложна анимация и кости
Производителност по време на изпълнениеОптимизиран за WebGL и двигатели в реално времеОптимизиран за WebGL и двигатели в реално времеИзисква бавно анализиране и възстановяванеИзисква сложен анализ чрез десктоп SDK

Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни

Грешка в 3D двигателя: „Неуспешно зареждане на буфера: URI адресът не е намерен“.

Първопричина: Придружаващият двоичен файл .bin или изображенията с текстури не са били качени заедно с файла .gltf.

Възстановяване: Пакетирайте всички придружаващи файлове заедно или ги конвертирайте директно в един GLB файл с File2File.app.

Анализ на сигурността и вектори на атака към парсера

JSON файловете на glTF съдържат препратки към външни URI адреси (data URI или отдалечени URL адреси), които могат да доведат до SSRF атаки (подправяне на заявки от страна на сървъра) или до излизане извън зададената директория (path traversal).

Известни вектори на атака

  • Излизане извън зададената директория чрез относителни 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 материалите могат да подобрят последователността, но резултатът зависи от рендерера, осветлението и настройките.

Технически ограничения и минуси

  • Многофайлова сложност: споделянето на модел изисква архивиране в ZIP или пакетно обединяване на .gltf, .bin и текстурите на изображенията.
  • Малко по-бавно първоначално мрежово стартиране в сравнение с еднофайловия GLB поради множество HTTP заявки.
  • Зависимостите на относителните пътища могат да се нарушат, ако придружаващите файлове с текстури бъдат преименувани или преместени.

Интересни технически факти

  • glTF официално е наричан „JPEG на 3D“, тъй като е изцяло насочен към предаване и показване по време на изпълнение, а не към създаване.
  • Khronos Group представя glTF, за да улесни предаването на 3D ресурси за уеб и мобилни приложения.
  • НАСА предоставя 3D модели на марсоходи, сателити и астронавти за публично изтегляне във формат glTF.

Често задавани технически въпроси

Защо в моя glTF файл липсват цветовете или формите?

Файлът .gltf съдържа само инструкциите за сцената във формат JSON. Той разчита на придружаващи .bin файлове за 3D формите и .png/.jpg файлове за цветовете. Уверете се, че всички придружаващи файлове са в същата папка.

Как да превърна glTF файл в един GLB файл?

Качете своя .gltf файл заедно със съответните .bin и текстурни файлове във File2File.app, за да ги обедините незабавно в един самостоятелен .glb файл.

Кои програми поддържат glTF?

Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot и Windows 3D Viewer поддържат glTF директно.