Kako konvertovati FBX u glTF u Pythonu
Problem
Programerima je potrebno da konvertuju FBX 3D model fajlove u glTF ili GLB format za upotrebu u web preglednicima, game engine‑ima i modernim render pipeline‑ovima. Aspose.3D to omogućava pomoću Scene.from_file() za učitavanje FBX fajla i scene.save() za pisanje glTF izlaza.
Napomena o podršci za FBX: Aspose.3D FOSS ima eksperimentalnu podršku za FBX. FBX tokenizator je implementiran, ali parser ima poznate strukturne greške: nepravilno rukovanje CLOSE_BRACKET i neograničenu rekurziju na složenim ugnježdenim FBX opsezima. Kompleksni ili veliki FBX fajlovi mogu izazvati RecursionError. Jednostavni FBX‑ovi sa ravnom geometrijom mogu raditi. Za proizvodnu upotrebu, radije koristite COLLADA, OBJ ili glTF umesto FBX. Pogledajte FAQ za više detalja.
Preduslovi
- 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 fajl
Koristite Scene.from_file() da učitate FBX fajl. Format se automatski otkriva iz ekstenzije .fbx.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")Korak 2: Sačuvaj u glTF binarni (GLB)
Pozovite scene.save() sa ekstenzijom .glb da biste zapisali izlaz kao kompaktan binarni glTF fajl. Format se automatski zaključuje iz ekstenzije. Ovo je preporučeni pristup: jednofajlni, kompaktni i široko kompatibilni.
# 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 trebalo da se prosleđuju scene.save(). Koristite automatsko otkrivanje ekstenzije fajla ili FileFormat.GLTF2() fabriku metodu umesto toga.
Da biste sačuvali kao JSON glTF umesto:
scene.save("output.gltf")Korak 3: (Opcionalno) Koristite GltfSaveOptions
Za veću kontrolu nad glTF izlazom, prosledite GltfSaveOptions objekat:
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Primer koda
Kompletna konverzija FBX‑u‑GLB u tri linije:
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 konvertovanju iz FBX, sledeći izlazni formati rade pouzdano:
| Izlazni format | Ekstenzija | Kako specificirati |
|---|---|---|
| glTF 2.0 binarni | .glb | ekstenzija automatsko otkrivanje (ili FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | ekstenzija automatsko otkrivanje (ili FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | ekstenzija automatsko otkrivanje |
| STL | .stl | ekstenzija automatsko otkrivanje |
| Microsoft 3MF | .3mf | ekstenzija automatsko otkrivanje (ili FileFormat.MICROSOFT_3MF_FORMAT()) |
Napomena: FileFormat.GLTF2_BINARY, FileFormat.GLTF i FileFormat.MICROSOFT_3MF su None stub konstante i ne smeju se proslediti scene.save(). Koristite automatsko otkrivanje ekstenzije fajla ili fabrike metode prikazane iznad.