Πώς να μετατρέψετε το FBX σε glTF με Python

Πώς να μετατρέψετε το FBX σε glTF με Python

Πρόβλημα

Οι προγραμματιστές χρειάζονται να μετατρέψουν αρχεία μοντέλων 3D FBX στη μορφή glTF ή GLB για χρήση σε προβολείς ιστού, μηχανές παιχνιδιών και σύγχρονες γραμμές παραγωγής απόδοσης. Το Aspose.3D το διαχειρίζεται με Scene.from_file() για τη φόρτωση του αρχείου FBX και scene.save() για τη γραφή της εξόδου glTF.

Σημείωση σχετικά με την υποστήριξη FBX: Aspose.3D FOSS έχει πειραματική υποστήριξη FBX. Ο διαχωριστής FBX έχει υλοποιηθεί, αλλά ο αναλυτής έχει γνωστά δομικά σφάλματα: εσφαλμένη διαχείριση του CLOSE_BRACKET και απεριόριστη αναδρομή σε σύνθετες ένθετες περιοχές FBX. Πολύπλοκα ή μεγάλα αρχεία FBX μπορεί να ενεργοποιήσουν RecursionError. Απλό FBX επίπεδης γεωμετρίας μπορεί να λειτουργήσει. Για παραγωγική χρήση, προτιμήστε COLLADA, OBJ ή glTF αντί για FBX. Δείτε το FAQ για περισσότερες λεπτομέρειες.

Προαπαιτούμενα

  • Python 3.7 ή νεότερη
  • Εγκατάσταση μέσω pip: pip install aspose-3d-foss
from aspose.threed import Scene

Βήματα Μετατροπής

Βήμα 1: Φορτώστε το αρχείο FBX

Χρησιμοποιήστε Scene.from_file() για να φορτώσετε το αρχείο FBX. Η μορφή ανιχνεύεται αυτόματα από την επέκταση .fbx.

from aspose.threed import Scene

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

Βήμα 2: Αποθήκευση σε glTF Binary (GLB)

Καλέστε το scene.save() με την επέκταση .glb για να γράψετε την έξοδο ως ένα συμπαγές δυαδικό αρχείο glTF. Η μορφή προκύπτει αυτόματα από την επέκταση. Αυτή είναι η συνιστώμενη προσέγγιση: μονοαρχείο, συμπαγής και ευρέως συμβατός.

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

Σημείωση: FileFormat.GLTF2_BINARY και FileFormat.GLTF είναι None stub constants στην τρέχουσα έκδοση της βιβλιοθήκης και δεν πρέπει να περαστούν στο scene.save(). Χρησιμοποιήστε την αυτόματη ανίχνευση επέκτασης αρχείου ή τη μέθοδο κατασκευής FileFormat.GLTF2() αντί αυτού.

Για αποθήκευση ως JSON glTF αντί αυτού:

scene.save("output.gltf")

Βήμα 3: (Προαιρετικό) Χρησιμοποιήστε GltfSaveOptions

Για μεγαλύτερο έλεγχο της εξόδου glTF, περάστε ένα αντικείμενο GltfSaveOptions:

from aspose.threed.formats import GltfSaveOptions

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

Παράδειγμα Κώδικα

Ολοκληρωμένη μετατροπή FBX σε GLB σε τρεις γραμμές:

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

Υποστηριζόμενες μορφές εξόδου

Κατά τη μετατροπή από FBX, οι ακόλουθες μορφές εξόδου λειτουργούν αξιόπιστα:

Μορφή ΕξόδουΕπέκτασηΠώς να καθορίσετε
glTF 2.0 binary.glbαυτόματη ανίχνευση επέκτασης (ή FileFormat.GLTF2())
glTF 2.0 JSON.gltfαυτόματη ανίχνευση επέκτασης (ή FileFormat.GLTF2())
Wavefront OBJ.objαυτόματη ανίχνευση επέκτασης
STL.stlαυτόματη ανίχνευση επέκτασης
Microsoft 3MF.3mfαυτόματη ανίχνευση επέκτασης (ή FileFormat.MICROSOFT_3MF_FORMAT())

Σημείωση: FileFormat.GLTF2_BINARY, FileFormat.GLTF, και FileFormat.MICROSOFT_3MF είναι None stub constants και δεν πρέπει να περαστούν στο scene.save(). Χρησιμοποιήστε αυτόματη ανίχνευση επέκτασης αρχείου ή τις μεθόδους κατασκευής που εμφανίζονται παραπάνω.

Δείτε επίσης

 Ελληνικά