Jak převést FBX na glTF v Pythonu

Jak převést FBX na glTF v Pythonu

Problém

Vývojáři potřebují převádět soubory 3D modelů FBX do formátu glTF nebo GLB pro použití ve webových prohlížečích, herních enginech a moderních renderovacích pipelinech. Aspose.3D to řeší pomocí Scene.from_file() k načtení souboru FBX a scene.save() k zápisu výstupu glTF.

Poznámka k podpoře FBX: Aspose.3D FOSS má experimentální podporu FBX. Tokenizér FBX je implementován, ale parser má známé strukturální chyby: nesprávné zpracování CLOSE_BRACKET a neomezenou rekurzi u složitých vnořených FBX rozsahů. Komplexní nebo velké soubory FBX mohou vyvolat RecursionError. Jednoduché FBX s plochou geometrií mohou fungovat. Pro produkční použití upřednostněte COLLADA, OBJ nebo glTF před FBX. Viz FAQ pro více detailů.

Požadavky

  • Python 3.7 nebo novější
  • Instalace pomocí pip: pip install aspose-3d-foss
from aspose.threed import Scene

Kroky převodu

Krok 1: Načíst soubor FBX

Použijte Scene.from_file() k načtení souboru FBX. Formát je detekován automaticky z přípony .fbx.

from aspose.threed import Scene

scene = Scene.from_file("input.fbx")

Krok 2: Uložit do binárního glTF (GLB)

Zavolejte scene.save() s rozšířením .glb pro zápis výstupu jako kompaktní binární soubor glTF. Formát je automaticky odvozen z rozšíření. Toto je doporučený přístup: jednosouborový, kompaktní a široce kompatibilní.

# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")

Poznámka: FileFormat.GLTF2_BINARY a FileFormat.GLTF jsou None stub konstanty v aktuální verzi knihovny a neměly by být předávány do scene.save(). Použijte automatické rozpoznání přípony souboru nebo místo toho metodu továrny FileFormat.GLTF2().

Pro uložení jako JSON glTF místo toho:

scene.save("output.gltf")

Krok 3: (volitelně) Použijte GltfSaveOptions

Pro větší kontrolu nad výstupem glTF předávejte objekt GltfSaveOptions:

from aspose.threed.formats import GltfSaveOptions

opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)

Ukázka kódu

Kompletní převod FBX na GLB ve třech řádcích:

from aspose.threed import Scene

scene = Scene.from_file("input.fbx")
scene.save("output.glb")  # .glb extension triggers binary GLB output automatically

print("Conversion complete: input.fbx -> output.glb")

Podporované výstupní formáty

Při převodu z FBX spolehlivě fungují následující výstupní formáty:

Výstupní formátPříponaJak specifikovat
glTF 2.0 binary.glbautomatická detekce přípony (nebo FileFormat.GLTF2())
glTF 2.0 JSON.gltfautomatická detekce přípony (nebo FileFormat.GLTF2())
Wavefront OBJ.objautomatická detekce přípony
STL.stlautomatická detekce přípony
Microsoft 3MF.3mfautomatická detekce přípony (nebo FileFormat.MICROSOFT_3MF_FORMAT())

Poznámka: FileFormat.GLTF2_BINARY, FileFormat.GLTF a FileFormat.MICROSOFT_3MF jsou None stub konstanty a nesmí být předány do scene.save(). Použijte automatické rozpoznávání přípony souboru nebo výše uvedené tovární metody.

Viz také

 Čeština