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 SceneKrok 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.GLTF są None 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:
| Formatowanie | Rozszerzenie | Jak określić |
|---|---|---|
| GTTF | .Wskaźnik .glb / .gltf | Rozszerzenie automatyczne wykrywa; GLB binary lub glTF JSON |
| OBJ | .Wujek OBJ | Rozszerzenie Auto-detekty |
| STL | .Stl | Rozszerzenie Auto-detekty |
| 3MF | .3 mf | Rozszerzenie Auto-detekty |
Uwaga : WystarczyFileFormat.GLTF2_BINARY, FileFormat.GLTF,i FileFormat.MICROSOFT_3MF są None stałe i nie należy przekazywać do scene.save().Użyj automatycznej detekcji rozszerzenia pliku lub metod fabrycznych przedstawionych powyżej.