Hur man konverterar FBX till glTF i Python

Hur man konverterar FBX till glTF i Python

Problem

Utvecklare behöver konvertera FBX 3D-modellfiler till glTF- eller GLB-format för användning i webbvisare, spelmotorer och moderna renderingspipelines. Aspose.3D hanterar detta med Scene.from_file() för att läsa in FBX-filen och scene.save() för att skriva glTF-utdata.

Obs om FBX-stöd: Aspose.3D FOSS har experimentellt FBX-stöd. FBX-tokeniseraren är implementerad men parsern har kända strukturella buggar: felaktig hantering av CLOSE_BRACKET och obegränsad rekursion i komplexa nästlade FBX-omfång. Komplexa eller stora FBX-filer kan utlösa RecursionError. Enkla platta-geometri FBX kan fungera. För produktionsbruk, föredra COLLADA, OBJ eller glTF framför FBX. Se FAQ för mer detaljer.

Förutsättningar

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

Konverteringssteg

Steg 1: Ladda FBX-filen

Använd Scene.from_file() för att ladda FBX-filen. Formatet upptäcks automatiskt från .fbx‑tillägget.

from aspose.threed import Scene

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

Steg 2: Spara till glTF-binär (GLB)

Anropa scene.save() med .glb‑tillägget för att skriva utdata som en kompakt binär glTF‑fil. Formatet härleds automatiskt från tillägget. Detta är det rekommenderade tillvägagångssättet: enfilig, kompakt och brett kompatibel.

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

Obs: FileFormat.GLTF2_BINARY och FileFormat.GLTF är None stub‑konstanter i den aktuella biblioteksversionen och bör inte skickas till scene.save(). Använd automatisk identifiering av filändelse eller FileFormat.GLTF2()‑fabrikmetoden istället.

För att spara som JSON glTF istället:

scene.save("output.gltf")

Steg 3: (Valfritt) Använd GltfSaveOptions

För mer kontroll över glTF-utdata, skicka ett GltfSaveOptions-objekt:

from aspose.threed.formats import GltfSaveOptions

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

Kodexempel

Fullständig FBX‑till‑GLB‑konvertering på tre rader:

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ödda utdataformat

När du konverterar från FBX fungerar följande utdataformat pålitligt:

UtdataformatFiländelseHur man anger
glTF 2.0 binär.glbfiländelse autodetektering (eller FileFormat.GLTF2())
glTF 2.0 JSON.gltffiländelse autodetektering (eller FileFormat.GLTF2())
Wavefront OBJ.objfiländelse autodetektering
STL.stlfiländelse autodetektering
Microsoft 3MF.3mffiländelse autodetektering (eller FileFormat.MICROSOFT_3MF_FORMAT())

Obs: FileFormat.GLTF2_BINARY, FileFormat.GLTF och FileFormat.MICROSOFT_3MF är None stub‑konstanter och får inte skickas till scene.save(). Använd filändelse‑autodetektering eller fabriksmetoderna som visas ovan.

Se även

 Svenska