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 SceneUmstellungsschritte
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 Datenbank | Erweiterung | Wie wird angegeben? |
|---|---|---|
| GFT-Systeme | .glb / .gftf | Ausweitung automatisch erfassen; GLB binär oder glTF JSON |
| OBJ | .obj ist nicht ersetzt. | Ausweiterung automatisch erkennen |
| STL | .Stl | Ausweiterung automatisch erkennen |
| 3MF | .3mf | Ausweiterung 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.