Převod GLB na glTF
Konverze formátu GLB na GLTF rozbaluje jeden binární kontejner do samostatných textových souborů a souborů prostředků, což vývojářům umožňuje snadno upravovat textury a definice 3D geometrie.
Porovnání formátů a technické specifikace
| Specifikace | GLB | GLTF |
|---|---|---|
| MIME typ | model/ | model/ |
| Typ | samostatný binární 3D kontejner | přenos 3D assetů za běhu |
| Komprese | binárně zabalený JSON, buffery a textury | bezztrátový manifest JSON + externí binární buffery |
| Standardní specifikace | Binární kontejner Khronos glTF 2.0 | Specifikace Khronos glTF 2.0 |
| Hlavička souboru (Magic bytes) | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) |
Přehled formátu a použití
Formát GLB sdružuje 3D scény, animace, materiály a textury do jednoho přehledného binárního balíčku. Ačkoliv je to skvělé pro rychlé načítání objektů do webových stránek a her, komplikuje to přímou úpravu surových dat. Vývojáři často potřebují rozbalit soubor GLB do formátu GLTF, když chtějí prozkoumat strukturu scény, upravit vlastnosti materiálů v textovém editoru nebo pozměnit parametry vložených shaderů. Práce s rozbalenými prostředky GLTF umožňuje inženýrským týmům spravovat verze specifických komponent 3D sítě pomocí standardních pracovních postupů Git. Namísto sledování obřího binárního souboru mohou vývojáři potvrzovat malé textové změny v manifestu JSON a zároveň spravovat samostatné binární datové bloky. Tento proces konverze podporuje pokročilé vývojové procesy pro web, kde 3D prostředky vyžadují vlastní injektáž shaderů nebo dynamickou výměnu textur před spuštěním v reálném čase.
Technické specifikace a přehled kodeků
Formát GLB používá typ MIME model/gltf-binary a začíná 12bajtovou hlavičkou obsahující 4bajtové magické číslo (0x46546C67), 4bajtové celé číslo verze a 4bajtovou celkovou délku souboru. Za touto hlavičkou následují bloky obsahující manifest JSON a binární vyrovnávací paměti. Konverze do formátu GLTF, který používá typ MIME model/gltf+json, odděluje manifest do lidsky čitelného textového souboru s příponou .gltf. Data geometrie a mapy pixelů se zapisují do samostatných externích souborů, jako jsou .bin a .png. Žádný z formátů standardně nepoužívá ztrátovou kompresi. Oba zachovávají pozice vrcholů, normály a souřadnice UV s plnou matematickou přesností.
Kompatibilita s operačními systémy a prohlížeči
Rozbalené soubory GLTF fungují hladce ve většině moderních webových prohlížečů včetně Google Chrome, Mozilla Firefox, Apple Safari a Microsoft Edge s využitím vykreslovacích modulů WebGL a WebGPU. Stolní operační systémy jako Windows 10 a 11, macOS a Linux podporují zobrazení formátu GLTF prostřednictvím nativních nástrojů, jako je Prohlížeč 3D ve Windows a Blender. Mobilní operační systémy pro iOS a Android vykreslují prostředky GLTF uvnitř nativních prostředí AR a webových aplikací, přičemž vývojáři musí správně hostovat samostatné soubory .bin a .gltf na svých serverech, aby se předešlo chybám sdílení prostředků mezi zdroji (CORS).
Užitečné informace
Po konverzi uchovávejte mapy textur vždy ve stejné složce jako hlavní soubor .gltf, aby manifest JSON mohl najít své externí závislosti bez chyb způsobených neplatnými cestami.
Často kladené otázky
Jak převést glTF Binary na glTF JSON bez ztráty kvality?
Konverze z GLB na GLTF je zcela bezztrátová, protože oba formáty využívají stejné podkladové matematické struktury. Proces jednoduše extrahuje blok JSON a binární datové bloky z jednoho binárního kontejneru a zapíše je jako samostatné soubory na disk, aniž by došlo ke změně dat vrcholů nebo komprese pixelů.
Jaký je rozdíl mezi formáty glTF Binary a glTF JSON?
GLB je soběstačný binární soubor, který sdružuje popis scény, geometrii a textury do jednoho stahování. GLTF tyto prvky odděluje tím, že ukládá graf scény do čitelného textového souboru, zatímco geometrii a textury uchovává v externích binárních souborech a souborech obrázků.