Wie man FBX in Python in glTF konvertiert

Wie man FBX in Python in glTF konvertiert

Problem mit der

Entwickler müssen FBX 3D-Modelldateien in das glTF oder GLB-Format konvertieren, um sie in Webviewern, Spielmaschinen und modernen Rendering-Pipelines zu verwenden. Aspose.3D handhabt dies mit Scene.from_file() die FBX-Datei zu laden und scene.save() Um die glTF-Ausgabe zu schreiben.

Hinweis zur Unterstützung von FBX: Die 3D-FOSS hat Versuchsweise FBX-Unterstützung. Der FBx-Tokenisierer ist implementiert, aber der Parser hat strukturelle Fehler: falsche CLOSE_BRACKET Handhabung und unbegrenzte Rekursion auf komplexen verschachtelten FB X-Spekten. Komplexe oder große FB x-Dateien können auslösen RecursionError.Für die Produktion wird COLLADA, OBJ oder glTF vor FBX bevorzugt. Siehe den Abschnitt “Funktionen der Flächen- und Schallplatten” in Kapitel 2. FAQ für weitere Details.

Voraussetzungen für die Durchführung der Maßnahmen

  • Python 3.7 oder neuer
  • Installieren über Pip: pip install aspose-3d-foss
from aspose.threed import Scene

Umstellungsschritte

Schritt 1: Laden der FBX-Datei ein .

Verwendung Scene.from_file() Das Format wird automatisch von der .fbx Erweiterung.

from aspose.threed import Scene

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

Schritt 2: Speichern in glTF Binary (GLB)

Rufen Sie an . scene.save() mit dem .glb Die Ausgabe wird als kompakte binäre glTF-Datei geschrieben. Das Format wird automatisch aus der Erweiterung abgeleitet. Dies ist die empfohlene Vorgehensweise: Single-File, kompakt und weitgehend kompatibel.

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

Anmerkung: DieFileFormat.GLTF2_BINARY und . FileFormat.GLTF sind None Stub-Konstanten in der aktuellen Bibliotheksversion und sollten nicht an die scene.save().Verwenden Sie die Dateierweiterung-Autoerkennung oder den FileFormat.GLTF2() Fabrikmethode statt.

Um stattdessen als JSON glTF zu speichern:

scene.save("output.gltf")

Schritt 3: (optional) Verwenden Sie GltfSaveOptions

Für mehr Kontrolle über die glTF-Ausgabe, geben Sie eine GltfSaveOptions Gegenstand:

from aspose.threed.formats import GltfSaveOptions

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

Beispiel für den Code

Vollständige Umrechnung von FBX-GLB 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

Bei der Konvertierung von FBX funktionieren die folgenden Ausgabeformate zuverlässig:

Format der DatenbankErweiterungWie wird angegeben?
GFT-Systeme.glb / .gftfAusweitung automatisch erfassen; GLB binär oder glTF JSON
OBJ.obj ist nicht ersetzt.Ausweiterung automatisch erkennen
STL.StlAusweiterung automatisch erkennen
3MF.3mfAusweiterung automatisch erkennen

Anmerkung: DieFileFormat.GLTF2_BINARY, FileFormat.GLTF,und . FileFormat.MICROSOFT_3MF sind None Die in der Tabelle aufgeführten Daten sind konstant und dürfen nicht an die scene.save().Verwenden Sie die Auto-Erkennung der Dateierweiterung oder die oben gezeigten Werkmethoden.

Siehe auch:

 Deutsch