glTF JSON (.gltf)
ISO/IEC StandardGL Transmission Format (glTF) to otwarta, wolna od opłat licencyjnych specyfikacja JSON służąca do wydajnego przesyłania i ładowania scen oraz modeli 3D przez WebGL, WebGPU, silniki gier i 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 | Czytelny dokument JSON opisujący graf sceny, węzły, siatki, akcesory, materiały i animacje oraz odwołujący się do zewnętrznych buforów |
| Kompresja | Tekstury zewnętrzne (PNG, JPEG, WebP) i opcjonalna kompresja geometrii Draco |
| Kolejność bajtów (Endianness) | Tekst JSON UTF-8 z odwołaniami do buforów .bin w kolejności Little-Endian |
| Przestrzenie kolorów | Kolor bazowy sRGB, Liniowe kanały chropowatości i metaliczności |
| Kanały i struktura | Hierarchia sceny, węzły, kamery, materiały PBR, szkielety do animacji szkieletowej i cele morfingu |
| Maks. wymiary | Nieograniczona przestrzeń współrzędnych i liczba trójkątów |
| Przezroczystość | Tryb alfa BLEND, MASK z progiem odcięcia lub transmisja objętościowa |
| Streaming i progresywne ładowanie | glTF oddziela opis sceny od binarnych danych geometrii i tekstur, dzięki czemu przeglądarka może wczytywać potrzebne elementy zamiast czekać na jeden duży plik. |
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 | Zwykły tekst zawierający wierzchołki i ściany + .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 dla WebGL i silników czasu rzeczywistego | Zoptymalizowany dla WebGL i silników 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ć bufora: 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 razem wszystkie pliki towarzyszące lub przekonwertuj je bezpośrednio na pojedynczy plik GLB za pomocą File2File.app.
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 bufora (np. 'uri: ../../../etc/passwd').
- Atak SSRF przez pobieranie buforów ze zdalnych adresów sieciowych w serwerowych generatorach miniatur 3D.
- Odmowa usługi wskutek błędnie skonstruowanych cykli w rekurencyjnej hierarchii węzłów.
Najlepsze praktyki obronne: Zablokuj zdalne adresy URL i normalizuj lokalne ścieżki URI buforów przed ich wczytaniem.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Czytelna dla człowieka struktura JSON umożliwia edycję programową, tworzenie skryptów dla potoków przetwarzania oraz oględziny.
- Modułowa budowa: oddziela lekkie metadane sceny od obszernej geometrii binarnej (.bin) i tekstur.
- Materiały PBR mogą poprawiać spójność, ale wynik zależy od renderera, oświetlenia i ustawień.
Ograniczenia techniczne i wady
- Złożoność wielu plików: udostępnianie modelu wymaga spakowania plików .gltf, .bin oraz tekstur w archiwum ZIP.
- Rozpoczęcie przesyłania przez sieć jest nieco wolniejsze niż w przypadku jednoplikowego GLB ze względu 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 nosi oficjalny przydomek „JPEG formatów 3D”, ponieważ skupia się na przesyłaniu i wyświetlaniu modeli w czasie działania, a nie na ich tworzeniu.
- Grupa Khronos wprowadziła glTF, aby usprawnić przesyłanie zasobów 3D w aplikacjach internetowych i mobilnych.
- NASA udostępnia publicznie modele 3D łazików, satelitów i astronautów do pobrania w formacie glTF.
Często zadawane pytania techniczne
Dlaczego w moim pliku glTF brakuje kolorów lub kształtów?
Plik .gltf zawiera jedynie instrukcje sceny zapisane w JSON. Do kształtów 3D odwołuje się w towarzyszących plikach .bin, a do kolorów - w plikach tekstur .png lub .jpg. Upewnij się, że wszystkie te pliki znajdują się w tym samym folderze.
Jak przekształcić plik glTF w pojedynczy plik GLB?
Prześlij plik .gltf wraz z towarzyszącym mu plikiem .bin i plikami tekstur do File2File.app, aby natychmiast połączyć je w pojedynczy, samowystarczalny plik .glb.
Jakie programy obsługują format glTF?
Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot i Windows 3D Viewer obsługują glTF od razu, bez dodatkowej konfiguracji.
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, przyspieszając dostarczanie treści w internecie.
Konwersja pliku GLB do formatu GLTF rozpakowuje pojedynczy kontener binarny na osobne manifesty tekstowe i pliki zasobów, umożliwiając programistom łatwą edycję tekstur i kodu geometrii 3D.
Konwersja geometrii Wavefront OBJ do manifestu glTF JSON unowocześnia statyczne modele 3D, tworząc zasoby gotowe do szybkiego wczytywania w standardowych przeglądarkach internetowych.