Kako konvertovati FBX u glTF u Pythonu

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 Scene

Koraci 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 formatEkstenzijaKako specificirati
glTF 2.0 binarni.glbekstenzija automatsko otkrivanje (ili FileFormat.GLTF2())
glTF 2.0 JSON.gltfekstenzija automatsko otkrivanje (ili FileFormat.GLTF2())
Wavefront OBJ.objekstenzija automatsko otkrivanje
STL.stlekstenzija automatsko otkrivanje
Microsoft 3MF.3mfekstenzija 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.

Види такође

 Српски