Zkratka proGraphics Language Transmission Formatdží-el-tí-ef, hovorově „glitf“TakéGL Transmission Format, glb, gltf 2.0Pokročilý
Definice
glTF je otevřený formát konsorcia Khronos Group pro přenos a načítání 3D scén a modelů. Popisuje geometrii, materiály, textury, animace i kostru v JSON struktuře doplněné o binární buffery, jejichž rozložení odpovídá tomu, co grafické API očekává. Díky tomu se scéna nahraje do GPU s minimem dodatečného zpracování.
Příklady z praxe
Konfigurátor bot v e-shopu
Prodejce chce ukázat botu ve 360° náhledu přímo v prohlížeči. Model se v Blenderu vyexportuje do .glb, textury se převedou přes KHR_texture_basisu a geometrie se protáhne meshoptem. Výsledný soubor má kolem dvou megabajtů a načte se přes three.js nebo webovou komponentu model-viewer bez pluginu.
<model-viewer src="/models/bota.glb" camera-controls shadow-intensity="1" alt="3D model boty"> </model-viewer>Kontrola exportu v JSON hlavičce
Po exportu je užitečné se do .gltf souboru podívat, protože struktura je čitelný JSON. Z pole accessors se hned pozná, kolik vrcholů model má, jestli obsahuje druhou UV sadu pro lightmapu a jaké komponentní typy se použily. Chybějící atribut TEXCOORD_1 vysvětlí, proč se v enginu nezobrazuje zapečené osvětlení.
"meshes": [{ "primitives": [{ "attributes": { "POSITION": 0, "NORMAL": 1, "TEXCOORD_0": 2 }, "indices": 3, "material": 0 }] }]
Časté omyly
- MýtusglTF je komprimovaný formát, proto jsou soubory malé.
- Ve skutečnostiZákladní specifikace žádnou kompresi geometrie neobsahuje: nekomprimovaný .glb může být větší než odpovídající FBX. Zmenšení přináší až rozšíření jako Draco, meshopt nebo Basis Universal pro textury, která musí podporovat i cílový renderer.
- MýtusKdyž model vyexportuji do glTF, přenesu i celý rig a materiálový uzlový strom.
- Ve skutečnostiglTF přenáší jen výsledné transformace kostí a materiál podle modelu metallic-roughness. Constrainty, IK, ovladače ani procedurální shader nody se neexportují, složité materiály je nutné zapéct do textur.
- MýtusglTF a USD dělají totéž, stačí si vybrat.
- Ve skutečnostiglTF je doručovací formát optimalizovaný pro rychlé načtení hotové scény, zatímco USD je navrženo pro produkční pipeline s vrstvením, referencemi a nedestruktivními úpravami. V praxi se často kombinují: USD v produkci, glTF na výstupu.
Časté dotazy
- Kdy zvolit .glb místo .gltf?
- Varianta .glb se hodí všude, kde model putuje po síti nebo se předává jako jeden artefakt: web, AR náhled, sdílení mezi týmy. Sbalí JSON, binární buffery i textury do jednoho souboru, takže odpadají další HTTP požadavky a nemůže se stát, že se ztratí externí .bin. Textovou variantu .gltf má smysl použít při ladění, když chcete strukturu číst nebo upravovat ručně, případně když více modelů sdílí stejné textury a nechcete je duplikovat.
- Podporují glTF všechny prohlížeče nativně?
- glTF není součástí prohlížeče podobně jako obrázek: prohlížeč ho sám nevykreslí. Zobrazení zajišťuje JavaScriptová knihovna nad WebGL nebo WebGPU, typicky three.js, Babylon.js nebo webová komponenta model-viewer. Podpora je tedy prakticky univerzální ve smyslu, že tyto knihovny běží ve všech moderních prohlížečích, ale vždy je potřeba nějaký renderer. Operační systémy jdou vlastní cestou: iOS pro rychlý AR náhled používá USDZ, takže pro Apple zařízení se z glTF často generuje ještě USDZ varianta.
- Jak zmenšit velikost glTF modelu pro web?
- Zmenšení glTF modelu má tři páky. Geometrii lze zkomprimovat rozšířením KHR_draco_mesh_compression nebo EXT_meshopt_compression, přičemž meshopt bývá rychlejší na dekódování. Textury, které tvoří obvykle většinu objemu, se převádějí přes KHR_texture_basisu do GPU formátu, který se nemusí dekomprimovat do RAM. Třetí pákou je samotný obsah: snížení počtu polygonů, sloučení materiálů do atlasu a odstranění nepoužitých UV sad. Nástroje jako gltf-transform nebo gltfpack tyto kroky zvládnou dávkově.
- Umí glTF uložit celou scénu včetně světel a kamer?
- glTF ukládá hierarchii uzlů, kamery a přes rozšíření KHR_lights_punctual také bodová, směrová a kuželová světla. Prostředí ve smyslu HDRI mapy pro obrazové osvětlení ale součástí jádra specifikace není a řeší se na straně rendereru nebo dalším rozšířením. Formát rovněž nepopisuje logiku scény: skripty, fyziku, kolizní tvary ani interakci. Ty zůstávají na enginu, do kterého se model načte.
Zdroje
- glTF Overview(otevře se v novém okně)
- glTF 2.0 Specification(otevře se v novém okně)
- Khronos glTF Registry(otevře se v novém okně)
- glTF(otevře se v novém okně)