Sådan konverteres FBX til glTF i Python

Sådan konverteres FBX til glTF i Python

Problem

Udviklere har brug for at konvertere FBX 3D-modelfiler til glTF- eller GLB-formatet for brug i web‑visere, spilmotorer og moderne renderings‑pipelines. Aspose.3D håndterer dette med Scene.from_file() til at indlæse FBX-filen og scene.save() til at skrive glTF-output.

Bemærk om FBX-understøttelse: Aspose.3D FOSS har eksperimentel FBX-understøttelse. FBX-tokenizeren er implementeret, men parseren har kendte strukturelle fejl: forkert håndtering af CLOSE_BRACKET og ubegrænset rekursion i komplekse indlejrede FBX-områder. Komplekse eller store FBX-filer kan udløse RecursionError. Simpel flad-geometri FBX kan fungere. Til produktionsbrug foretrækkes COLLADA, OBJ eller glTF frem for FBX. Se FAQ for flere detaljer.

Forudsætninger

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

Konverteringstrin

Trin 1: Indlæs FBX-filen

Brug Scene.from_file() til at indlæse FBX-filen. Formatet opdages automatisk ud fra .fbx-udvidelsen.

from aspose.threed import Scene

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

Trin 2: Gem som glTF Binary (GLB)

Kald scene.save() med .glb-udvidelsen for at skrive output som en kompakt binær glTF-fil. Formatet udledes automatisk fra udvidelsen. Dette er den anbefalede tilgang: enkeltfil, kompakt og bredt kompatibel.

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

Bemærk: FileFormat.GLTF2_BINARY og FileFormat.GLTF er None stub-konstanter i den aktuelle biblioteksversion og bør ikke videregives til scene.save(). Brug automatisk filtypegenkendelse eller FileFormat.GLTF2() fabriksmetode i stedet.

For at gemme som JSON glTF i stedet:

scene.save("output.gltf")

Trin 3: (Valgfrit) Brug GltfSaveOptions

For mere kontrol over glTF-outputtet, videregiv et GltfSaveOptions-objekt:

from aspose.threed.formats import GltfSaveOptions

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

Kodeeksempel

Komplet FBX-til-GLB-konvertering på 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")

Understøttede outputformater

Når du konverterer fra FBX, fungerer følgende outputformater pålideligt:

OutputformatFilendelseSådan angives
glTF 2.0 binary.glbfilendelse automatisk genkendelse (eller FileFormat.GLTF2())
glTF 2.0 JSON.gltffilendelse automatisk genkendelse (eller FileFormat.GLTF2())
Wavefront OBJ.objfilendelse automatisk genkendelse
STL.stlfilendelse automatisk genkendelse
Microsoft 3MF.3mffilendelse automatisk genkendelse (eller FileFormat.MICROSOFT_3MF_FORMAT())

Bemærk: FileFormat.GLTF2_BINARY, FileFormat.GLTF og FileFormat.MICROSOFT_3MF er None stub-konstanter og må ikke videregives til scene.save(). Brug filtypebaseret automatisk genkendelse eller fabriksmetoderne vist ovenfor.

Se også

 Dansk