Comment convertir FBX en glTF dans Python

Comment convertir FBX en glTF dans Python

Problème

Les développeurs doivent convertir les fichiers de modèle 3D FBX au format glTF ou GLB pour les utiliser dans les visionneuses web, les moteurs de jeu et les pipelines de rendu modernes. Aspose.3D gère cela avec Scene.from_file() pour charger le fichier FBX et scene.save() pour écrire la sortie glTF.

Note sur la prise en charge de FBX : Aspose.3D FOSS possède expérimental prise en charge de FBX. Le tokenizer FBX est implémenté mais l’analyseur présente des bugs structurels connus : gestion incorrecte de CLOSE_BRACKET et récursion non bornée sur des portées FBX imbriquées complexes. Les fichiers FBX complexes ou volumineux peuvent déclencher RecursionError. Un FBX à géométrie plate simple peut fonctionner. Pour une utilisation en production, privilégiez COLLADA, OBJ ou glTF plutôt que FBX. Voir le FAQ pour plus de détails.

Prérequis

  • Python 3.7 ou version ultérieure
  • Installez via pip : pip install aspose-3d-foss
from aspose.threed import Scene

Étapes de conversion

Étape 1 : charger le fichier FBX

Utilisez Scene.from_file() pour charger le fichier FBX. Le format est détecté automatiquement à partir du .fbx extension.

from aspose.threed import Scene

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

Étape 2 : enregistrer en glTF binaire (GLB)

Appeler scene.save() avec le .glb extension pour écrire la sortie sous forme d’un fichier glTF binaire compact. Le format est déduit automatiquement de l’extension. C’est l’approche recommandée : fichier unique, compact et largement compatible.

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

Remarque : FileFormat.GLTF2_BINARY et FileFormat.GLTF sont None des constantes factices dans la version actuelle de la bibliothèque et ne doivent pas être transmises à scene.save(). Utilisez la détection automatique de l’extension de fichier ou le FileFormat.GLTF2() méthode de fabrique à la place.

Pour enregistrer en glTF JSON à la place :

scene.save("output.gltf")

Étape 3 : (Optionnel) utilisez GltfSaveOptions

Pour plus de contrôle sur la sortie glTF, passez un GltfSaveOptions objet :

from aspose.threed.formats import GltfSaveOptions

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

Exemple de code

Conversion complète FBX-vers-GLB en trois lignes :

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

Formats de sortie pris en charge

Lors de la conversion depuis FBX, les formats de sortie suivants fonctionnent de manière fiable :

Format de sortieExtensionComment spécifier
glTF 2.0 binaire.glbdétection automatique de l’extension (ou FileFormat.GLTF2())
glTF 2.0 JSON.gltfdétection automatique de l’extension (ou FileFormat.GLTF2())
Wavefront OBJ.objdétection automatique de l’extension
STL.stldétection automatique de l’extension
Microsoft 3MF.3mfdétection automatique de l’extension (ou FileFormat.MICROSOFT_3MF_FORMAT())

Note : FileFormat.GLTF2_BINARY, FileFormat.GLTF, et FileFormat.MICROSOFT_3MF sont None des constantes factices et ne doivent pas être passées à scene.save(). Utilisez la détection automatique de l’extension de fichier ou les méthodes de fabrique présentées ci‑dessus.

Voir aussi

 Français