Export OBJ FBX GLTF

Export OBJ FBX GLTF

Proč záleží na volbě exportního formátu

Volba exportního formátu výrazně ovlivňuje kvalitu, věrnost materiálů, velikost souboru, kompatibilitu, rychlost načítání i možnosti animace. Tři nejrozšířenější formáty – OBJ, FBX a glTF – cílí na odlišné potřeby. Zatímco OBJ je jednoduchý “mesh + MTL” standard bez pokročilých funkcí, FBX je historicky robustní výměnný formát pro DCC (Maya, 3ds Max, Blender) s bohatým systémem animací a rigů, a glTF 2.0 je moderní, runtime-friendly formát optimalizovaný pro web, mobil a XR s fyzikálně založenými materiály (PBR) a bohatým ekosystémem rozšíření.

Přehled formátů: silné a slabé stránky

Vlastnost OBJ (.obj + .mtl) FBX (.fbx) glTF 2.0 (.gltf/.glb)
Geometrie Trojúhelníky/quad; bez hierarchie; 1–n UV (implementačně omezené) Mesh + hierarchie; podp. NURBS/shape (často bake na triangly) Triangly; hierarchie uzlů; instancing; morph targets
Materiály MTL (Lambert/Phong), bez PBR Široká škála shaderů; různé DCC interpretace PBR Metal-Rough (standard); rozšíření KHR_materials_*
Textury Odkazy v MTL (externí soubory) Vložené/externí; někdy proprietární komprese Externí (GLTF) nebo zabalené (GLB); KTX2/BasisU komprese
Animace Ne (jen statické) Rigging, skinning, blendshapes, constrainty Skinning, morph targets, klíčové snímky
Kosti/rig Ne Ano (bohaté) Ano (standardizované pro runtime)
Světla/kamery Ne Ano Přes rozšíření (KHR_lights_punctual), kamery standardně
Velikost/načtení Velké soubory, pomalejší IO Střední, někdy nadbytečná metadata Velmi efektivní binární GLB, rychlé načtení
Interoperabilita Všude čitelné, jednoduché Široce podporované v DCC; verze mohou kolidovat Standard pro web/mobil/XR; rostoucí podpora DCC
Use-case Statické modely, archivace jednoduchých meshů Pipeline mezi DCC, komplexní animace/rigy Distribuce do runtime (WebGL/WebGPU, herní enginy, XR)

OBJ: kdy dává smysl “nejjednodušší možný” formát

OBJ je textový popis geometrie s doprovodným .mtl. Výhody: extrémní kompatibilita, snadná editovatelnost, vhodný pro statické modely bez nároků na pokročilé materiály. Nevýhody: žádná animace, žádné PBR, omezená definice normal map (tangent space není standardizován), často jen jeden UV set, nerozlišuje instancing, neřeší jednotky a osy. U složitých scén roste velikost a doba importu. Pokud exportujete produkt do CAD/3D tisku či jednoduché vizualizace bez animací, OBJ může stačit – jinak bývá limitující.

FBX: tradiční práce v DCC, bohaté animace a úskalí verzí

FBX je de facto standard mezi DCC nástroji (Maya, 3ds Max, Blender) pro směnu animovaných assetů, rigů, constraintů a shape keys. Silné stránky: hierarchie, skinning, blendshapes, kamery, světla, někdy i částice (často nutný bake). Slabiny: verzování (ASCII vs. binární; “FBX 2011/2013/2016/2018” – různé importéry/enginy preferují specifickou revizi), nekonzistentní interpretace materiálů a jednotek napříč nástroji, občasné potíže s tangent space a smoothing groups. Doporučení: péct constrainty a simulace do klíčů, triangulovat před exportem, sjednotit jednotky (cm vs. m) a osy (Y-up/Z-up), zmrazit transformace a validovat v cílovém engine.

glTF 2.0 / GLB: “JPEG 3D” pro web, mobil a XR

glTF 2.0 je otevřený standard optimalizovaný pro distribuci do runtime. Varianta .gltf odkazuje na externí binární/texture soubory, .glb vše balí do jednoho binárního kontejneru (ideální pro distribuční kanály). Silné stránky: nativní PBR (metal-rough), precizní definice tangent space (MikkTSpace), skinning a morph targets, rozšíření pro světla, objemové/transmisní efekty, a standardizovaná komprese (Draco pro geometrii, KTX2/BasisU pro textury). Slabiny: menší bohatost rig constraintů (vše je zamýšleno jako “runtime-ready” – komplexní chování péct do klíčů), některé DCC funkce se převádějí na bake.

Materiály a PBR: Phong vs. metal-rough

  • OBJ/MTL: jednoduché difúzní/specular parametry, bez normalizovaných PBR kanálů; nelze věrně přenést moderní shadery.
  • FBX: přenese materiály, ale interpretace se liší dle importéru; často nutný ruční lookdev po importu.
  • glTF: standardní metal-rough workflow (albedo, metallic-roughness, normal, occlusion, emissive); rozšíření KHR_materials_clearcoat, transmission, ior, sheen, specular aj. zajišťují vysokou vizuální věrnost napříč enginy.

Animace, skinning a morph targets

Pro komplexní rigging (constraints, IK řetězce, řídicí křivky) je FBX stále velmi silný – ale i zde se doporučuje bake animací na klíčové snímky a validace v cílovém engine. glTF spolehlivě přenáší skeletal animace a morph targets (blendshapes) pro runtime. OBJ animace nepřenáší vůbec.

Komprese, velikost a výkon

  • OBJ: textový formát – velké soubory; lze komprimovat zipem, ale i tak pomalý parse.
  • FBX: binární FBX je menší než ASCII; přesto obsahuje metadata, která runtime nepotřebuje.
  • glTF: GLB + Draco (geometrie) a KTX2/BasisU (textury) poskytují špičkový poměr kvalita/velikost a rychlé streamované načítání.

Jednotky, osy a tangent space: časté zdroje chyb

  • Jednotky: sjednoťte (m vs. cm). FBX často implicitně používá centimetry; glTF definuje metry.
  • Osy: DCC nástroje se liší (Y-up vs. Z-up; pravotočivá vs. levotočivá soustava). Při exportu nastavte korektní up-axis a aplikujte “freeze transforms”.
  • Tangent space: pro normal mapy preferujte MikkTSpace (glTF standard). U FBX si zkontrolujte, že importér generuje kompatibilní tangenty.

Workflow doporučení pro jednotlivé scénáře

  • Web/AR/VR distribuce: glTF/GLB s Draco + KTX2, PBR materiály, instancing, LOD chain, oddělené collision meshe; validace přes glTF Validator.
  • Filmové a DCC pipeline: FBX pro přenos animací/rigů mezi nástroji; pečení constraintů, sjednocení jednotek, triangulace před exportem, verze FBX podle cíle.
  • Jednoduché statické katalogy: u minimálních požadavků OBJ stačí, ale pro online náhledy je vhodnější glTF kvůli PBR a velikosti.
  • Herní runtime (Unity/Unreal): import glTF je stále častější (pluginy/nativně), FBX má tradiční podporu; pro mobil preferujte glTF kvůli asset pipeline s KTX2.

Rozšíření glTF, která stojí za pozornost

  • KHR_draco_mesh_compression: komprese geometrie (zásadní pro sítě a mobil).
  • KHR_texture_basisu + KHR_texture_transform: univerzální texturová komprese a UV transformace.
  • KHR_materials_clearcoat, sheen, transmission, ior, specular, volume: pokročilé PBR efekty pro realističtější materiály.
  • KHR_lights_punctual: bodová/směrová/spot světla.
  • EXT_meshopt_compression: alternativní efektivní komprese a optimalizace vertex indexů.

Migrace mezi formáty: na co si dát pozor

  • OBJ → glTF: přemapujte materiály na PBR (albedo/roughness/metallic/normal/ao/emissive), vygenerujte tangenty, sjednoťte UV.
  • FBX → glTF: bake constrainty a simulační křivky do klíčů, triangulace, převod shaderů na PBR; ověřte, že skinning a morph targets se mapují korektně.
  • glTF → FBX: ztráty u některých PBR rozšíření; materiály mohou vyžadovat ruční lookdev v DCC.

LOD, instancing a scene graph

Pro reálný runtime výkon jsou zásadní úrovně detailu (LOD) a instancing. glTF nativně umožňuje efektivní reprezentaci instancí (opakované použití node/mesh). LOD lze řešit buď engine-specificky, nebo přes doplňková rozšíření/smluvené konvence. FBX i OBJ LODy přímo nedefinují, obvykle se řídí importérem/enginovým toolingem.

Integrita dat: validace a testy

  • Validace: u glTF používejte oficiální validator; u FBX testujte import v cílové verzi engine/DCC.
  • Vizualizační testy: kontrola shadingu (normal map, roughness/metallic), tangenty, UV seam, mikropovrch.
  • Animace: porovnejte křivky, IK rozpad, skin váhy, pivoty, smyčky.

Rozhodovací strom: co zvolit

  1. Potřebujete animaci/rig? Ano → zvažte FBX (DCC exchange) nebo glTF (runtime). Ne → pokračujte.
  2. Cíl je web/mobil/XR runtime? Ano → glTF/GLB (PBR, komprese, rychlé načítání). Ne → pokračujte.
  3. Jednoduchý statický model pro nejširší kompatibilitu? Ano → OBJ (s vědomím limitů materiálů). Ne → glTF pro moderní shadery a velikost.
  4. DCC–DCC přenos komplexních rigů/constraintů? Ano → FBX s pečením animací a správnou verzí.

Best practices pro spolehlivý export

  • Triangulace před exportem pro konzistentní shading a UV seam.
  • Freeze/Reset transforms, sjednocené jednotky a osy.
  • Tangenty podle MikkTSpace; synchronizujte normal map (OpenGL vs. DirectX konvence – invertování zeleného kanálu dle engine).
  • Jednotné UV, žádné překryvy u PBR (pokud nejsou záměrné); rozumná texel density.
  • LOD řetězce a instancing pro velké scény.
  • Komprese: u glTF aktivujte Draco a KTX2; testujte artefakty a výkon.
  • Bake constraintů, simulací a procedur na klíčové snímky pro přenositelnost.

Doporučení podle cílové platformy

  • Web/WebXR: glTF/GLB + Draco + KTX2; PBR standard; validace a performance budget.
  • Mobilní hry/AR: glTF/GLB, důraz na velikost a počet draw calls (instancing, merge), LOD.
  • AAA pipeline: FBX mezi DCC a engine, ale stále častěji glTF pro distribuční fázi assetů.
  • Archivace/statické zobrazení: OBJ pro jednoduchost, glTF pro budoucí-proof PBR.

Závěr

Neexistuje “jeden nejlepší” formát pro všechny situace. OBJ vítězí jednoduchostí u statických modelů, FBX je osvědčený pro komplexní DCC výměnu s animacemi a rigy, a glTF/GLB je moderní standard pro distribuované runtime scénáře s PBR a kompresí. Klíčem je sladit formát s cílovou platformou, způsobem nasazení a požadavky na vizuální věrnost, velikost a rychlost načítání, a dodržet osvědčené postupy pro export a validaci.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *