Kako pretvoriti FBX u glTF u Pythonu

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 Scene

Koraci 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 formatEkstenzijaKako specificirati
glTF 2.0 binarni.glbautomatsko otkrivanje ekstenzije (ili FileFormat.GLTF2())
glTF 2.0 JSON.gltfautomatsko otkrivanje ekstenzije (ili FileFormat.GLTF2())
Wavefront OBJ.objautomatsko otkrivanje ekstenzije
STL.stlautomatsko otkrivanje ekstenzije
Microsoft 3MF.3mfautomatsko 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.

Vidi također

 Hrvatski