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 SceneKroky 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.GLTF sú None 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át | Prípona | Ako špecifikovať |
|---|---|---|
| glTF 2.0 binárny | .glb | automatické rozpoznanie prípony (alebo FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | automatické rozpoznanie prípony (alebo FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | automatické rozpoznanie prípony |
| STL | .stl | automatické rozpoznanie prípony |
| Microsoft 3MF | .3mf | automatické rozpoznanie prípony (alebo FileFormat.MICROSOFT_3MF_FORMAT()) |
Poznámka: FileFormat.GLTF2_BINARY, FileFormat.GLTF a FileFormat.MICROSOFT_3MF sú None 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.