glTF JSON (.gltf)
ISO/IEC StandardGL Transmission Format (glTF) je otvorena, besplatna JSON specifikacija za efikasan prenos i učitavanje 3D scena i modela u WebGL-u, WebGPU-u, gejming endžinima i izvornim aplikacijama.
Konvertujte GLTF u GLB
Besplatan konvertor GLTF u GLB u pregledaču. Konvertujte datoteke odmah na svom uređaju.
Pregled i metapodaci
Operativni sistemi i analizatori datoteka identifikuju glTF datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (magični bajtovi)
Operativni sistemi i analizatori datoteka identifikuju glTF datoteke proverom početnog binarnog niza bajtova:
HEKSADECIMALNI POTPIS (OFFSET 0):
7B 0A 20 20 22 61 73 73 65 74 22ASCII REPREZENTACIJA: {\n "asset"
Standardizacija: ISO/IEC 12113:2022 / otvoreni standard Khronos grupe
Tehničke specifikacije
| Arhitektura kontejnera | Čitljiv JSON dokument koji opisuje graf scene, čvorove, mreže, accessors, materijale i animacije, a upućuje na spoljne bafere |
| Kompresija | Spoljne teksture (PNG, JPEG, WebP) i opciona Draco kompresija geometrije |
| Bajtni redosled (Endianness) | UTF-8 JSON tekst (koji upućuje na .bin bafere sa little-endian redosledom bajtova) |
| Prostori boja | sRGB osnovna boja, Linearna hrapavost/metalnost |
| Kanali i struktura | Hijerarhija scene, čvorovi, kamere, PBR materijali, skeleti za skinning i ciljevi morfinga |
| Maksimalne dimenzije | Neograničen koordinatni prostor i broj trouglova |
| Transparentnost | Alfa režim BLEND, MASK sa pragom odsecanja ili volumetrijski prenos |
| Strimovanje i progresivno učitavanje | glTF razdvaja opise scene od binarnih podataka geometrije i tekstura, pa pregledač može da učitava komponente po potrebi umesto da čeka jednu veliku datoteku. |
Tehnička matrica poređenja: glTF u odnosu na konkurente
| Tehnički atribut | glTF (Trenutno) | GLB | OBJ | FBX |
|---|---|---|---|---|
| Arhitektura datoteke | JSON tekst scene + prateći .bin / teksture | Jedna samodovoljna binarna datoteka | Običan tekst verteksa i lica + .mtl | Vlasnički binarni/ASCII kontejner |
| Standardi PBR materijala | Standardizovani Metallic-Roughness PBR | Standardizovani Metallic-Roughness PBR | Nasleđeni Phong/Lambert materijali | Prilagođeni vlasnički materijali |
| Podrška za animaciju | Skeletno bindovanje (skinning) i ciljevi morfinga | Skeletno bindovanje (skinning) i ciljevi morfinga | Nema (samo statična geometrija) | Kompleksna animacija i kosti |
| Performanse u toku izvršavanja | Optimizovano za WebGL i endžine u realnom vremenu | Optimizovano za WebGL i endžine u realnom vremenu | Zahteva sporo parsiranje i ponovno građenje | Zahteva složeno parsiranje pomoću desktop SDK-a |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Greška 3D endžina: „Failed to load buffer: URI not found“.
Osnovni uzrok: Prateća binarna .bin datoteka ili slike tekstura nisu otpremljene zajedno sa .gltf datotekom.
Oporavak: Zapakujte sve prateće datoteke zajedno ili ih konvertujte direktno u jednu GLB datoteku pomoću File2File.app-a.
Bezbednosna analiza i vektori napada parsera
glTF JSON datoteke upućuju na spoljne URI adrese (data URI adrese ili udaljene URL adrese) koje mogu da pokrenu falsifikovanje zahteva na strani servera (SSRF) ili prelazak preko putanja (path traversal).
Poznati vektori napada
- Prelazak preko putanja putem relativnih URI adresa bafera (npr. 'uri: ../../../etc/passwd').
- SSRF putem preuzimanja udaljenog mrežnog bafera u generatorima 3D sličica na strani servera.
- Uskraćivanje usluge kroz neispravno formirane rekurzivne cikluse hijerarhije čvorova.
Najbolje prakse za zaštitu: Zabranite udaljene URL adrese i normalizujte sve putanje URI adresa lokalnih bafera pre učitavanja.
Istorijat i prekretnice
Ključne prednosti
- JSON struktura čitljiva ljudima omogućava programsko uređivanje, skriptovanje procesa i vizuelni pregled.
- Modularni dizajn: odvaja male metapodatke scene od obimnih binarnih podataka geometrije (.bin) i tekstura.
- PBR materijali mogu da poboljšaju doslednost, ali rezultat zavisi od renderera, osvetljenja i podešavanja.
Tehnička ograničenja i nedostaci
- Složenost više datoteka: za deljenje modela potrebno je spakovati .gltf, .bin i teksture u ZIP arhivu ili ih na drugi način objediniti.
- Nešto sporije početno učitavanje preko mreže u odnosu na GLB u jednoj datoteci zbog više HTTP zahteva.
- Zavisnosti od relativne putanje mogu da se pokvare ako se prateće datoteke tekstura preimenuju ili premeste.
Zanimljivosti
- glTF nosi nadimak „JPEG za 3D“ jer se strogo fokusira na prenos i prikaz tokom izvršavanja, a ne na kreiranje sadržaja.
- Khronos Group je predstavio glTF kako bi pojednostavio prenos 3D resursa za veb i mobilne aplikacije.
- NASA obezbeđuje 3D modele rovera, satelita i astronauta za javno preuzimanje u glTF formatu.
Često postavljana tehnička pitanja
Zašto mom glTF fajlu nedostaju boje ili oblici?
.gltf datoteka sadrži samo JSON uputstva za scenu. Oslanja se na prateće .bin datoteke za 3D oblike i .png/.jpg datoteke za boje. Uverite se da su sve prateće datoteke u istoj fascikli.
Kako da pretvorim glTF fajl u jedan GLB fajl?
Otpremite svoju .gltf datoteku i njene prateće .bin datoteke i datoteke tekstura na File2File.app da biste ih odmah spojili u jednu samostalnu .glb datoteku.
Koji programi podržavaju glTF?
Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot i Windows 3D Viewer podržavaju glTF podrazumevano.
Povezani parovi konverzije za glTF
Konvertovanje glTF JSON resursa u glTF Binary kontejnere pakuje odvojene tekstualne manifeste, binarne bafere i teksture u jednu datoteku radi brže isporuke preko veba.
Konvertovanje GLB u GLTF format razdvaja jedinstveni binarni kontejner na zasebne tekstualne i 3D datoteke, što programerima omogućava lako uređivanje tekstura i koda 3D geometrije.
Konvertovanje geometrijskih datoteka Wavefront OBJ u glTF JSON manifeste modernizuje statične 3D modele u resurse spremne za veb koji se trenutno učitavaju u standardnim veb-pregledačima.