glTF JSON (.gltf)

Standard Standard

GL Transmission Format (glTF) este specificația JSON standard deschisă, fără redevențe, pentru transmisia și încărcarea eficientă a scenelor și modelelor 3D de către WebGL, WebGPU, motoare de jocuri și aplicații native.

Convertește din GLTF în GLB

Convertor gratuit din GLTF în GLB direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.

Inspectare și metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele glTF prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Privat - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate: nicio transmisie prin rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (octeți magici)

Sistemele de operare și analizatoarele de fișiere identifică fișierele glTF prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):

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

REPREZENTARE ASCII: {\n "asset"

Standardizare: Standard deschis Khronos / ISO/IEC 12113:2022

Specificații tehnice

Arhitectură containerDocument JSON lizibil care descrie graful scenei, nodurile, rețelele, accessorii, materialele și animațiile și face referire la buffere externe
CompresieTexturi externe (PNG, JPEG, WebP) și compresie opțională a geometriei cu Draco
Ordinea octețilorText JSON UTF-8 (cu referințe la bufferele .bin Little-Endian)
Spații de culoareCuloare de bază sRGB, Rugozitate/metallicitate liniară
Canale și structurăIerarhia scenei, noduri, camere, materiale PBR, schelete cu skinning și ținte de morfologie
Dimensiuni maximeSpațiu de coordonate și număr de triunghiuri nelimitate
TransparențăMod alfa BLEND, MASK cu prag de tăiere sau transmisie volumetrică
Streaming și progresivglTF separă descrierile scenei de datele binare ale geometriei și texturilor, astfel încât vizualizatorul poate încărca componentele când este nevoie, fără să aștepte un singur fișier monolitic.

Matrice de comparație tehnică: glTF vs. concurenți

Atribut tehnicglTF (Curent)GLBOBJFBX
Arhitectura fișieruluiText scenă JSON + .bin / texturi însoțitoareUn singur fișier binar autonomVârfuri și fețe text simplu + .mtlContainer binar/ASCII proprietar
Standarde de materiale PBRMetallic-Roughness PBR standardizatMetallic-Roughness PBR standardizatMateriale clasice Phong/LambertMateriale personalizate proprietare
Suport pentru animațieSkinning scheletic și ținte de morfologie (morph targets)Skinning scheletic și ținte de morfologieNiciunul (doar geometrie statică)Animație complexă și oase
Performanță la rulareOptimizat pentru WebGL și motoare în timp realOptimizat pentru WebGL și motoare în timp realNecesită analiză și reconstrucție lentăNecesită analiză complexă prin SDK desktop

Moduri comune de corupție și ghid de recuperare hexazecimală

Eroare în motorul 3D: „Nu s-a putut încărca bufferul: URI-ul nu a fost găsit”.

Cauză principală: Fișierul binar însoțitor .bin sau imaginile textură nu au fost încărcate alături de fișierul .gltf.

Recuperare: Împachetează toate fișierele însoțitoare la un loc sau convertește-le direct într-un singur fișier GLB cu File2File.app.

Analiză de securitate și vectori de atac asupra parserului

Fișierele JSON glTF fac referire la URI-uri externe (URI-uri de date sau URL-uri la distanță) care pot declanșa falsificare de cereri pe server (SSRF) sau accesare neautorizată de directoare (path traversal).

Vectori de atac cunoscuți

  • Accesare neautorizată de directoare prin URI-uri de buffer relative (de ex. 'uri: ../../../etc/passwd').
  • SSRF prin preluarea la distanță a bufferelor de rețea în generatoarele de miniaturi 3D rulate pe server.
  • Refuz de serviciu prin cicluri malformate în ierarhia recursivă de noduri.

Cele mai bune practici de securitate: Nu permite URL-uri la distanță și normalizează toate căile URI ale bufferelor locale înainte de încărcare.

Origini istorice și repere

2022glTF 2.0 obține ratificarea internațională ca ISO/IEC 12113:2022.
2017Grupul Khronos lansează glTF 2.0, standardizând Randarea Bazată Fizic (PBR) ca funcție de bază.
2015glTF 1.0 este anunțat la SIGGRAPH, conceput de Fabrice Robinet, Neil Trevett și Tony Parisi.

Avantaje cheie și beneficii

  • Structura JSON citibilă de către om permite editarea programatică, scrierea de scripturi pentru fluxul de lucru și inspecția vizuală.
  • Design modular: separă metadatele ușoare ale scenei de geometria binară grea (.bin) și de texturi.
  • Materialele PBR pot îmbunătăți consecvența, dar rezultatul depinde de motorul de randare, iluminare și setări.

Limitări tehnice și dezavantaje

  • Complexitate cu fișiere multiple: partajarea unui model necesită arhivarea (zip) sau pachetarea fișierelor .gltf, .bin și a texturilor imagine împreună.
  • Pornire inițială în rețea ușor mai lentă decât în cazul fișierului unic GLB din cauza multiplelor solicitări HTTP.
  • Dependențele de căi relative se pot întrerupe dacă fișierele de textură însoțitoare sunt denumite diferit sau mutate.

Curiozități tehnice interesante

  • glTF este poreclit oficial „JPEG-ul 3D" deoarece se concentrează strict pe transmisia și afișarea în timpul rulării, mai degrabă decât pe creare.
  • Grupul Khronos a introdus glTF pentru a simplifica transmiterea resurselor 3D în aplicații web și mobile.
  • NASA oferă modele 3D de rovere, sateliți și astronauți pentru descărcare publică în format glTF.

Întrebări tehnice frecvente

De ce îi lipsesc fișierului meu glTF culorile sau formele?

Un fișier .gltf conține doar instrucțiunile JSON ale scenei. Pentru formele 3D are nevoie de fișiere .bin însoțitoare, iar pentru culori, de fișiere .png/.jpg. Asigură-te că toate fișierele însoțitoare se află în același dosar.

Cum transform un fișier glTF într-un singur fișier GLB?

Încarcă fișierul .gltf și fișierele .bin și de texturi însoțitoare în File2File.app ca să le îmbini imediat într-un singur fișier .glb autonom.

Ce programe acceptă glTF?

Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot și Windows 3D Viewer acceptă glTF nativ.