Hoe FBX naar glTF converteren in Python

Hoe FBX naar glTF converteren in Python

Probleem

Ontwikkelaars moeten FBX 3D-modellbestanden converteren naar het glTF- of GLB-formaat voor gebruik in webviewers, game-engines en moderne renderpijplijnen. Aspose.3D behandelt dit met Scene.from_file() om het FBX-bestand te laden en scene.save() om de glTF-uitvoer te schrijven.

Opmerking over FBX-ondersteuning: Aspose.3D FOSS heeft experimentele FBX-ondersteuning. De FBX-tokenizer is geïmplementeerd, maar de parser heeft bekende structurele bugs: onjuiste CLOSE_BRACKET-afhandeling en onbeperkte recursie bij complexe geneste FBX-scopes. Complexe of grote FBX-bestanden kunnen RecursionError activeren. Eenvoudige vlakke-geometry FBX kan werken. Voor productiegebruik, geef de voorkeur aan COLLADA, OBJ of glTF boven FBX. Zie de FAQ voor meer details.

Voorvereisten

  • Python 3.7 of hoger
  • Installeer via pip: pip install aspose-3d-foss
from aspose.threed import Scene

Conversiestappen

Stap 1: Laad het FBX-bestand

Gebruik Scene.from_file() om het FBX‑bestand te laden. Het formaat wordt automatisch gedetecteerd aan de hand van de .fbx‑extensie.

from aspose.threed import Scene

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

Stap 2: Opslaan als glTF Binary (GLB)

Roep scene.save() aan met de .glb extensie om de uitvoer als een compact binair glTF‑bestand te schrijven. Het formaat wordt automatisch afgeleid van de extensie. Dit is de aanbevolen aanpak: één bestand, compact en breed compatibel.

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

Opmerking: FileFormat.GLTF2_BINARY en FileFormat.GLTF zijn None stub-constanten in de huidige bibliotheekversie en mogen niet worden doorgegeven aan scene.save(). Gebruik automatische detectie van bestandsextensies of de FileFormat.GLTF2()-fabrieksmethode in plaats daarvan.

Om in plaats daarvan op te slaan als JSON glTF:

scene.save("output.gltf")

Stap 3: (Optioneel) Gebruik GltfSaveOptions

Voor meer controle over de glTF‑uitvoer, geef een GltfSaveOptions object door:

from aspose.threed.formats import GltfSaveOptions

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

Codevoorbeeld

Volledige FBX-naar-GLB-conversie in drie regels:

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

Ondersteunde uitvoerformaten

Bij het converteren vanuit FBX werken de volgende uitvoerformaten betrouwbaar:

UitvoerformaatExtensieHoe te specificeren
glTF 2.0 binary.glbextensie automatisch detecteren (of FileFormat.GLTF2())
glTF 2.0 JSON.gltfextensie automatisch detecteren (of FileFormat.GLTF2())
Wavefront OBJ.objextensie automatisch detecteren
STL.stlextensie automatisch detecteren
Microsoft 3MF.3mfextensie automatisch detecteren (of FileFormat.MICROSOFT_3MF_FORMAT())

Opmerking: FileFormat.GLTF2_BINARY, FileFormat.GLTF en FileFormat.MICROSOFT_3MF zijn None stub-constanten en mogen niet worden doorgegeven aan scene.save(). Gebruik automatische detectie van bestandsextensie of de hierboven getoonde fabrieksmethoden.

Zie ook

 Nederlands