Wie man FBX nach glTF in Python konvertiert

Wie man FBX nach glTF in Python konvertiert

Problem

Entwickler müssen FBX‑3D‑Modelldateien in das glTF‑ oder GLB‑Format konvertieren, um sie in Web‑Viewern, Spiel‑Engines und modernen Rendering‑Pipelines zu verwenden. Aspose.3D erledigt dies mit Scene.from_file() zum Laden der FBX‑Datei und scene.save() zum Schreiben der glTF‑Ausgabe.

Hinweis zur FBX-Unterstützung: Aspose.3D FOSS bietet experimentelle FBX-Unterstützung. Der FBX-Tokenizer ist implementiert, aber der Parser weist bekannte strukturelle Fehler auf: falsche CLOSE_BRACKET‑Behandlung und unbeschränkte Rekursion bei komplexen verschachtelten FBX‑Scopes. Komplexe oder große FBX‑Dateien können RecursionError auslösen. Einfaches flaches Geometrie‑FBX kann funktionieren. Für den Produktionseinsatz bevorzugen Sie COLLADA, OBJ oder glTF gegenüber FBX. Siehe die FAQ für weitere Details.

Voraussetzungen

  • Python 3.7 oder höher
  • Installation über pip: pip install aspose-3d-foss
from aspose.threed import Scene

Konvertierungsschritte

Schritt 1: FBX‑Datei laden

Verwenden Sie Scene.from_file(), um die FBX-Datei zu laden. Das Format wird automatisch anhand der .fbx‑Erweiterung erkannt.

from aspose.threed import Scene

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

Schritt 2: Als glTF‑Binärdatei (GLB) speichern

Rufen Sie scene.save() mit der .glb‑Erweiterung auf, um die Ausgabe als kompakte Binär‑glTF‑Datei zu schreiben. Das Format wird automatisch anhand der Erweiterung ermittelt. Dies ist der empfohlene Ansatz: Einzeldatei, kompakt und breit kompatibel.

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

Hinweis: FileFormat.GLTF2_BINARY und FileFormat.GLTF sind None Stub‑Konstanten in der aktuellen Bibliotheksversion und sollten nicht an scene.save() übergeben werden. Verwenden Sie die automatische Erkennung der Dateierweiterung oder die FileFormat.GLTF2()‑Fabrikmethode stattdessen.

Um stattdessen als JSON glTF zu speichern:

scene.save("output.gltf")

Schritt 3: (Optional) GltfSaveOptions verwenden

Für mehr Kontrolle über die glTF‑Ausgabe übergeben Sie ein GltfSaveOptions‑Objekt:

from aspose.threed.formats import GltfSaveOptions

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

Codebeispiel

Vollständige FBX-zu-GLB-Konvertierung in drei Zeilen:

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

Unterstützte Ausgabeformate

Beim Konvertieren von FBX funktionieren die folgenden Ausgabeformate zuverlässig:

AusgabeformatErweiterungWie angeben
glTF 2.0 binär.glbErweiterung automatisch erkennen (oder FileFormat.GLTF2())
glTF 2.0 JSON.gltfErweiterung automatisch erkennen (oder FileFormat.GLTF2())
Wavefront OBJ.objErweiterung automatisch erkennen
STL.stlErweiterung automatisch erkennen
Microsoft 3MF.3mfErweiterung automatisch erkennen (oder FileFormat.MICROSOFT_3MF_FORMAT())

Hinweis: FileFormat.GLTF2_BINARY, FileFormat.GLTF und FileFormat.MICROSOFT_3MF sind None Stub-Konstanten und dürfen nicht an scene.save() übergeben werden. Verwenden Sie die automatische Erkennung der Dateierweiterung oder die oben gezeigten Fabrikmethoden.

Siehe auch

 Deutsch