Hvordan konvertere FBX til glTF i Python

Hvordan konvertere FBX til glTF i Python

Problem

Utviklere trenger å konvertere FBX 3D-modellfiler til glTF- eller GLB-formatet for bruk i nettleservisere, spillmotorer og moderne renderingsrørledninger. Aspose.3D håndterer dette med Scene.from_file() for å laste FBX-filen og scene.save() for å skrive glTF-utdata.

Merk om FBX-støtte: Aspose.3D FOSS har eksperimentell FBX-støtte. FBX-tokenizeren er implementert, men parseren har kjente strukturelle feil: feil håndtering av CLOSE_BRACKET og ubegrenset rekursjon på komplekse nestede FBX-områder. Kompleks eller stor FBX-fil kan utløse RecursionError. Enkelt flat-geometri FBX kan fungere. For produksjonsbruk, foretrekk COLLADA, OBJ eller glTF fremfor FBX. Se FAQ for mer detalj.

Forutsetninger

  • Python 3.7 eller nyere
  • Installer via pip: pip install aspose-3d-foss
from aspose.threed import Scene

Konverteringssteg

Steg 1: Last inn FBX-filen

Bruk Scene.from_file() for å laste FBX-filen. Formatet oppdages automatisk fra .fbx‑utvidelsen.

from aspose.threed import Scene

scene = Scene.from_file("input.fbx")

Steg 2: Lagre til glTF-binær (GLB)

Kall scene.save() med .glb‑utvidelsen for å skrive utdataene som en kompakt binær glTF‑fil. Formatet blir automatisk avledet fra utvidelsen. Dette er den anbefalte tilnærmingen: enkeltfil, kompakt og bredt kompatibel.

# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")

Merk: FileFormat.GLTF2_BINARY og FileFormat.GLTF er None stub‑konstanter i den nåværende bibliotekversjonen og bør ikke sendes til scene.save(). Bruk automatisk gjenkjenning av filtype eller FileFormat.GLTF2() fabrikkmetode i stedet.

For å lagre som JSON glTF i stedet:

scene.save("output.gltf")

Trinn 3: (Valgfritt) Bruk GltfSaveOptions

For mer kontroll over glTF‑utdataene, send inn et GltfSaveOptions‑objekt:

from aspose.threed.formats import GltfSaveOptions

opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)

Kodeeksempel

Fullstendig FBX-til-GLB-konvertering i tre linjer:

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")

Støttede utdataformater

Når du konverterer fra FBX, fungerer følgende utdataformater pålitelig:

Output FormatExtensionHow to specify
glTF 2.0 binær.glbutvidelse automatisk gjenkjenning (eller FileFormat.GLTF2())
glTF 2.0 JSON.gltfutvidelse automatisk gjenkjenning (eller FileFormat.GLTF2())
Wavefront OBJ.objutvidelse automatisk gjenkjenning
STL.stlutvidelse automatisk gjenkjenning
Microsoft 3MF.3mfutvidelse automatisk gjenkjenning (eller FileFormat.MICROSOFT_3MF_FORMAT())

Merk: FileFormat.GLTF2_BINARY, FileFormat.GLTF og FileFormat.MICROSOFT_3MF er None stub‑konstanter og må ikke sendes til scene.save(). Bruk automatisk gjenkjenning av filtype eller fabrikkmetodene vist ovenfor.

Se også

 Norsk