Cum să convertești FBX în glTF în Python

Cum să convertești FBX în glTF în Python

Problemă

Dezvoltatorii trebuie să convertească fișierele de modele 3D FBX în formatul glTF sau GLB pentru utilizare în vizualizatoare web, motoare de jocuri și conducte moderne de redare. Aspose.3D gestionează acest lucru cu Scene.from_file() pentru a încărca fișierul FBX și scene.save() pentru a scrie ieșirea glTF.

Notă privind suportul FBX: Aspose.3D FOSS are suport FBX experimental. Tokenizatorul FBX este implementat, dar parserul are buguri structurale cunoscute: manipularea incorectă a CLOSE_BRACKET și recursiune nelimitată pe domenii FBX încorporate complexe. Fișierele FBX complexe sau mari pot declanșa RecursionError. FBX simplu cu geometrie plată poate funcționa. Pentru utilizare în producție, preferați COLLADA, OBJ sau glTF în loc de FBX. Consultați FAQ pentru mai multe detalii.

Cerințe preliminare

  • Python 3.7 sau o versiune ulterioară
  • Instalați prin pip: pip install aspose-3d-foss
from aspose.threed import Scene

Pași de conversie

Pasul 1: Încarcă fișierul FBX

Folosiți Scene.from_file() pentru a încărca fișierul FBX. Formatul este detectat automat din extensia .fbx.

from aspose.threed import Scene

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

Pasul 2: Salvează în glTF Binary (GLB)

Apelă scene.save() cu extensia .glb pentru a scrie rezultatul ca un fișier glTF binar compact. Formatul este dedus automat din extensie. Aceasta este abordarea recomandată: un singur fișier, compact și larg compatibil.

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

Notă: FileFormat.GLTF2_BINARY și FileFormat.GLTF sunt constante stub None în versiunea curentă a bibliotecii și nu ar trebui să fie transmise către scene.save(). Utilizați detectarea automată a extensiei fișierului sau metoda fabrică FileFormat.GLTF2() în schimb.

Pentru a salva ca JSON glTF în schimb:

scene.save("output.gltf")

Pasul 3: (Opțional) Utilizați GltfSaveOptions

Pentru un control mai mare asupra ieșirii glTF, transmiteți un obiect GltfSaveOptions:

from aspose.threed.formats import GltfSaveOptions

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

Exemplu de cod

Conversie completă FBX-în-GLB în trei linii:

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

Formate de ieșire acceptate

Când convertiți din FBX, următoarele formate de ieșire funcționează în mod fiabil:

Format de ieșireExtensieCum se specifică
glTF 2.0 binar.glbdetectare automată a extensiei (sau FileFormat.GLTF2())
glTF 2.0 JSON.gltfdetectare automată a extensiei (sau FileFormat.GLTF2())
Wavefront OBJ.objdetectare automată a extensiei
STL.stldetectare automată a extensiei
Microsoft 3MF.3mfdetectare automată a extensiei (sau FileFormat.MICROSOFT_3MF_FORMAT())

Notă: FileFormat.GLTF2_BINARY, FileFormat.GLTF și FileFormat.MICROSOFT_3MF sunt None stub constants și nu trebuie transmise către scene.save(). Utilizați detectarea automată a extensiei fișierului sau factory methods prezentate mai sus.

Vezi și

 Română