Jak przekonwertować FBX na glTF w Pythonie

Jak przekonwertować FBX na glTF w Pythonie

problemem

Twórcy muszą konwertować pliki modelu FBX 3D do formatu glTF lub GLB do użytku w przeglądarkach internetowych, silnikach gier i nowoczesnych rurociągach renderowania. Scene.from_file() do pobrania pliku FBX i scene.save() Wpisz wydanie GTTF.

Uwaga na wsparcie FBX: Aspose.3D FOSS jest Eksperyment Wsparcie FBX. Wdrażany jest tokenizer FB X, ale parser zna błędy strukturalne: nieprawidłowe obsługi CLOSE_BRACKET i nieograniczona recursja na złożonych niestowanych plikach FBx. Kompleksowe lub duże pliki FB x mogą wywołać RecursionError. prosty płaski geometry FBX może pracować. do użytku produkcyjnego, preferuj COLLADA, OBJ lub glTF nad FB X. Zobacz FAQ Dla więcej szczegółów.

Warunki

  • Python 3.7 lub później
  • Instalacja przez pip: pip install aspose-3d-foss
from aspose.threed import Scene

Krok konwersji

Krok 1: Pobierz plik FBX

Używanie Scene.from_file() do pobierania pliku FBX. format jest automatycznie wykryty z .fbx i rozszerzenia .

from aspose.threed import Scene

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

Krok 2: Uszczędź na glTF binary (GLB)

Wzywaj scene.save() Z tym z .glb rozszerzenie do pisania wyjścia jako kompaktowy plik binarny glTF. Format jest automatycznie wyciągnięty z rozciągania. To jest zalecany sposób podejścia: pojedynczy, kompozytowych i szeroko kompatybilnych.

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

Uwaga : WystarczyFileFormat.GLTF2_BINARY i FileFormat.GLTFNone w wersji bibliotecznej, a nie należy ją przechodzić do scene.save(). użyj rozszerzenia pliku automatycznego wykrywania lub FileFormat.GLTF2() Zamiast tego metodę fabryczną.

Aby zaoszczędzić jako JSON glTF zamiast:

scene.save("output.gltf")

Krok 3: (opcjonalne) Użyj GltfSaveOptions

Aby uzyskać więcej kontroli nad wydajnością glTF, przejdź do GltfSaveOptions Obiekty :

from aspose.threed.formats import GltfSaveOptions

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

Kod przykładowy

Konwersja FBX-GLB w trzech liniach:

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

Wspierane formaty wyjścia

Podczas konwersji z FBX następujące formaty wyjścia działają niezawodnie:

FormatowanieRozszerzenieJak określić
GTTF.Wskaźnik .glb / .gltfRozszerzenie automatyczne wykrywa; GLB binary lub glTF JSON
OBJ.Wujek OBJRozszerzenie Auto-detekty
STL.StlRozszerzenie Auto-detekty
3MF.3 mfRozszerzenie Auto-detekty

Uwaga : WystarczyFileFormat.GLTF2_BINARY, FileFormat.GLTF,i FileFormat.MICROSOFT_3MFNone stałe i nie należy przekazywać do scene.save().Użyj automatycznej detekcji rozszerzenia pliku lub metod fabrycznych przedstawionych powyżej.

Zobacz również

 Polski