glTF JSON (.gltf)
ISO/IEC StandardowyGL Transmission Format (glTF) to otwartoźródłowa specyfikacja JSON wolna od opłat licencyjnych, służąca do wydajnego przesyłania oraz ładowania scen i modeli 3D przez WebGL, WebGPU, silniki gier oraz aplikacje natywne.
Konwertuj GLTF na GLB
Darmowy konwerter z GLTF na GLB w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.
Inspekcja i metadane
Systemy operacyjne i analizatory plików identyfikują pliki glTF, sprawdzając początkową sekwencję bajtów binarnych:
Podpis nagłówka na poziomie bajtów (Magic Bytes)
Systemy operacyjne i analizatory plików identyfikują pliki glTF, sprawdzając początkową sekwencję bajtów binarnych:
PODPIS HEX (OFFSET 0):
7B 0A 20 20 22 61 73 73 65 74 22REPREZENTACJA ASCII: {\n "asset"
Normalizacja: ISO/IEC 12113:2022 / Khronos Open Standard
Specyfikacja techniczna
| Architektura kontenera | Human-readable JSON document describing scene graph, nodes, meshes, accessors, materials, and animations, referencing external buffers |
| Kompresja | External textures (PNG, JPEG, WebP) and optional Draco geometry compression |
| Kolejność bajtów (Endianness) | UTF-8 JSON text (referencing Little-Endian .bin buffers) |
| Przestrzenie kolorów | sRGB base color, Linear roughness/metallic |
| Kanały i struktura | Scene hierarchy, nodes, cameras, PBR materials, skinning skeletons, and morph targets |
| Maks. wymiary | Unbounded coordinate space and triangle count |
| Przezroczystość | Alpha mode BLEND, MASK with cutoff threshold, or volumetric transmission |
| Streaming i progresywne ładowanie | Asynchronous loading: scene JSON loads instantly while heavy binary buffers stream in background |
Techniczna macierz porównawcza: glTF a konkurencja
| Atrybut techniczny | glTF (Bieżący) | GLB | OBJ | FBX |
|---|---|---|---|---|
| Architektura pliku | Tekst sceny JSON + towarzyszący plik .bin / tekstury | Pojedynczy, samowystarczalny plik binarny | Czysty tekst wierzchołków i ścian + .mtl | Własnościowy kontener binarny/ASCII |
| Standardy materiałów PBR | Standaryzowany Metallic-Roughness PBR | Standaryzowany Metallic-Roughness PBR | Starsze materiały Phong/Lambert | Niestandardowe materiały własnościowe |
| Obsługa animacji | Skórowanie szkieletowe i cele morficzne (morph targets) | Skórowanie szkieletowe i cele morficzne (morph targets) | Brak (tylko geometria statyczna) | Złożone animacje i kości |
| Wydajność w czasie wykonania | Zoptymalizowany pod WebGL i silniki czasu rzeczywistego | Zoptymalizowany pod WebGL i silniki czasu rzeczywistego | Wymaga wolnego parsowania i przebudowy | Wymaga złożonego parsowania przez SDK na komputerze |
Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego
Błąd silnika 3D: „Nie udało się załadować buktora: Nie znaleziono URI".
Główna przyczyna: Towarzyszący plik binarny .bin lub obrazy tekstur nie zostały przesłane razem z plikiem .gltf.
Odzyskiwanie: Spakuj wszystkie pliki powiązane razem lub przekonwertuj je bezpośrednio do pojedynczego pliku GLB za pomocą File2File.
Analiza bezpieczeństwa i wektory ataku na parser
Pliki JSON formatu glTF odwołują się do zewnętrznych adresów URI (URI danych lub zdalnych adresów URL), co może wywołać podatności typu SSRF (Server-Side Request Forgery) lub przejście ścieżki (path traversal).
Znane wektory ataku
- Przejście ścieżki poprzez względne URI buktora (np. 'uri: ../../../etc/passwd').
- Atak SSRF poprzez pobieranie buktora z sieci zdalnej w serwerowych generatorach miniaturowych obrazów 3D.
- Odmowa usługi (DoS) poprzez niepoprawne cykle rekurencyjnej hierarchii węzłów.
Najlepsze praktyki obronne:
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Czytelna dla człowieka struktura JSON umożliwia edycję programową, skryptowanie potoków przetwarzania oraz inspekcję wizualną.
- Modułowa budowa: oddziela lekkie metadane sceny od ciężkiej binarnej geometrii (.bin) i tekstur.
- Definicja materiałów opartych na fizyce (PBR) gwarantuje, że zasoby 3D wyglądają identycznie we wszystkich silnikach renderujących.
Ograniczenia techniczne i wady
- Złożoność wielu plików: udostępnianie modelu wymaga spakowania plików .gltf, .bin oraz tekstur w archiwum ZIP.
- Nieco wolniejszy początkowy start sieciowy w porównaniu do jednoplikowego GLB z uwagi na wiele żądań HTTP.
- Zależności od ścieżek względnych mogą ulec uszkodzeniu w przypadku zmiany nazwy lub przeniesienia towarzyszących plików tekstur.
Ciekawe informacje techniczne
- glTF ma formalny przydomek „JPEG formatów 3D", ponieważ skupia się ściśle na transmisji oraz wyświetlaniu w czasie wykonania, a nie na tworzeniu treści.
- Współtwórcą formatu był Tony Parisi, który w 1994 roku współtworzył język VRML (Virtual Reality Modeling Language).
- NASA udostępnia publicznie modele 3D łazików, satelitów i astronautów do pobrania w formacie glTF.
Często zadawane pytania techniczne
Czym różni się glTF od GLB?
glTF to format tekstowy oparty na formacie JSON wraz z osobnymi plikami binarnymi, podczas gdy GLB łączy wszystko w jeden zwarty plik binarny.
Czy mogę otworzyć plik glTF w edytorze tekstu?
Tak, główny plik .gltf to plik tekstowy w formacie JSON, który można otworzyć i edytować w dowolnym edytorze tekstu.
Jak najłatwiej udostępnić plik glTF?
Najlepiej przekonwertować go do pliku GLB za pomocą File2File, aby uniknąć problemów z brakującymi plikami tekstur lub buktorów .bin.
Powiązane pary konwersji glTF
Konwersja zasobów glTF JSON do kontenerów glTF Binary łączy osobne manifesty tekstowe, bufory binarne i tekstury w jeden plik, zapewniając szybsze dostarczanie przez web.
Konwersja pliku GLB do formatu GLTF rozpakowuje pojedynczy kontener binarny do osobnych plakatów tekstowych i zasobów, umożliwiając programistom łatwą edycję tekstur i kodu geometrii 3D.
Konwersja plików geometrii Wavefront OBJ na manifesty glTF JSON pozwala zmodernizować statyczne modele 3D do zasobów gotowych do sieci web, które ładowane są natychmiast w standardowych przeglądarkach internetowych.