Ako konvertovať FBX do glTF v Pythone

Ako konvertovať FBX do glTF v Pythone

Problém

Vývojári potrebujú konvertovať súbory 3D modelov FBX do formátu glTF alebo GLB pre použitie vo webových prehliadačoch, herných enginoch a moderných renderovacích pipelineoch. Aspose.3D to rieši pomocou Scene.from_file() na načítanie súboru FBX a scene.save() na zápis výstupu glTF.

Poznámka k podpore FBX: Aspose.3D FOSS má experimentálnu podporu FBX. FBX tokenizér je implementovaný, ale parser má známe štrukturálne chyby: nesprávne spracovanie CLOSE_BRACKET a neobmedzenú rekurziu pri zložitých vnorených FBX oblastiach. Zložité alebo veľké FBX súbory môžu spustiť RecursionError. Jednoduché FBX s plochou geometriou môžu fungovať. Pre produkčné použitie uprednostnite COLLADA, OBJ alebo glTF pred FBX. Pozrite si FAQ pre viac detailov.

Požiadavky

  • Python 3.7 alebo novší
  • Inštalovať pomocou pip: pip install aspose-3d-foss
from aspose.threed import Scene

Kroky konverzie

Krok 1: Načítajte súbor FBX

Použite Scene.from_file() na načítanie súboru FBX. Formát sa automaticky deteguje z prípony .fbx.

from aspose.threed import Scene

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

Krok 2: Uložiť do binárneho glTF (GLB)

Zavolajte scene.save() s rozšírením .glb, aby ste výstup zapísali ako kompaktný binárny glTF súbor. Formát sa automaticky odvodí z rozšírenia. Toto je odporúčaný prístup: jednosúborový, kompaktný a široko kompatibilný.

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

Poznámka: FileFormat.GLTF2_BINARY a FileFormat.GLTFNone stub konštanty v aktuálnej verzii knižnice a nemali by sa odovzdávať do scene.save(). Použite automatickú detekciu prípony súboru alebo namiesto toho metódu továrne FileFormat.GLTF2().

Ak chcete uložiť ako JSON glTF namiesto toho:

scene.save("output.gltf")

Krok 3: (Voliteľné) Použiť GltfSaveOptions

Pre väčšiu kontrolu nad výstupom glTF odovzdajte objekt GltfSaveOptions:

from aspose.threed.formats import GltfSaveOptions

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

Ukážka kódu

Kompletná konverzia FBX na GLB v troch riadkoch:

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

Pri konverzii z FBX spoľahlivo fungujú nasledujúce výstupné formáty:

Výstupný formátPríponaAko špecifikovať
glTF 2.0 binárny.glbautomatické rozpoznanie prípony (alebo FileFormat.GLTF2())
glTF 2.0 JSON.gltfautomatické rozpoznanie prípony (alebo FileFormat.GLTF2())
Wavefront OBJ.objautomatické rozpoznanie prípony
STL.stlautomatické rozpoznanie prípony
Microsoft 3MF.3mfautomatické rozpoznanie prípony (alebo FileFormat.MICROSOFT_3MF_FORMAT())

Poznámka: FileFormat.GLTF2_BINARY, FileFormat.GLTF a FileFormat.MICROSOFT_3MFNone stub konštanty a nesmú byť odovzdané scene.save(). Použite automatickú detekciu prípony súboru alebo továrenské metódy uvedené vyššie.

Pozri tiež

 Slovenčina