Kako pretvoriti FBX u glTF u Pythonu
Problem
Programerima je potrebno pretvoriti FBX 3D model datoteke u glTF ili GLB format za korištenje u web preglednicima, game engine-ima i modernim renderirnim cjevovodima. Aspose.3D to rješava pomoću Scene.from_file() za učitavanje FBX datoteke i scene.save() za zapisivanje glTF izlaza.
Napomena o FBX podršci: Aspose.3D FOSS ima eksperimentalnu FBX podršku. FBX tokenizator je implementiran, ali parser ima poznate strukturne greške: neispravno rukovanje CLOSE_BRACKET i neograničenu rekurziju u složenim ugniježđenim FBX opsezima. Kompleksne ili velike FBX datoteke mogu izazvati RecursionError. Jednostavni FBX s ravnom geometrijom može raditi. Za proizvodnu upotrebu, radije koristite COLLADA, OBJ ili glTF umjesto FBX. Pogledajte FAQ za više detalja.
Preduvjeti
- Python 3.7 ili noviji
- Instalirajte putem pip-a:
pip install aspose-3d-foss
from aspose.threed import SceneKoraci konverzije
Korak 1: Učitaj FBX datoteku
Koristite Scene.from_file() za učitavanje FBX datoteke. Format se automatski otkriva iz ekstenzije .fbx.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")Korak 2: Spremi u glTF binarni (GLB)
Pozovite scene.save() s ekstenzijom .glb da biste zapisali izlaz kao kompaktnu binarnu glTF datoteku. Format se automatski zaključuje iz ekstenzije. Ovo je preporučeni pristup: jedna datoteka, kompaktna i široko kompatibilna.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")Napomena: FileFormat.GLTF2_BINARY i FileFormat.GLTF su None stub konstante u trenutnoj verziji biblioteke i ne bi se smjele proslijediti scene.save(). Koristite automatsko otkrivanje ekstenzije datoteke ili FileFormat.GLTF2() metodu tvornice umjesto toga.
Za spremanje kao JSON glTF umjesto:
scene.save("output.gltf")Korak 3: (Opcionalno) Koristite GltfSaveOptions
Za veću kontrolu nad glTF izlazom, proslijedite GltfSaveOptions objekt:
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Primjer koda
Potpuna konverzija FBX u GLB u tri retka:
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")Podržani izlazni formati
Pri konverziji iz FBX‑a, sljedeći izlazni formati pouzdano rade:
| Izlazni format | Ekstenzija | Kako specificirati |
|---|---|---|
| glTF 2.0 binarni | .glb | automatsko otkrivanje ekstenzije (ili FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | automatsko otkrivanje ekstenzije (ili FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | automatsko otkrivanje ekstenzije |
| STL | .stl | automatsko otkrivanje ekstenzije |
| Microsoft 3MF | .3mf | automatsko otkrivanje ekstenzije (ili FileFormat.MICROSOFT_3MF_FORMAT()) |
Napomena: FileFormat.GLTF2_BINARY, FileFormat.GLTF i FileFormat.MICROSOFT_3MF su None stub konstante i ne smiju se proslijediti scene.save(). Koristite automatsko otkrivanje ekstenzije datoteke ili metode tvornice prikazane iznad.