Hogyan konvertáljunk FBX-et glTF-re Pythonban

Hogyan konvertáljunk FBX-et glTF-re Pythonban

Probléma

A fejlesztőknek FBX 3D modellfájlokat kell glTF vagy GLB formátumba konvertálniuk, hogy webes megjelenítőkben, játékmotorokban és modern renderelési csővezetékekben használhassák őket. Az Aspose.3D ezt a Scene.from_file() segítségével tölti be az FBX fájlt, és a scene.save() segítségével írja ki a glTF kimenetet.

Megjegyzés az FBX támogatásról: Az Aspose.3D FOSS kísérleti FBX támogatással rendelkezik. Az FBX tokenizáló meg van valósítva, de a parsernek ismert strukturális hibái vannak: helytelen CLOSE_BRACKET kezelése és korlátlan rekurzió összetett, egymásba ágyazott FBX hatókörök esetén. Összetett vagy nagy FBX fájlok RecursionError hibát válthatnak ki. Egyszerű, sík geometriai FBX működhet. Gyártási környezetben részesítsd előnyben a COLLADA, OBJ vagy glTF formátumot az FBX helyett. További részletekért lásd a FAQ oldalt.

Előfeltételek

  • Python 3.7 vagy újabb
  • Telepítés pip segítségével: pip install aspose-3d-foss
from aspose.threed import Scene

Átalakítási lépések

1. lépés: FBX fájl betöltése

Használja a Scene.from_file() parancsot az FBX fájl betöltéséhez. A formátum automatikusan felismerésre kerül a .fbx kiterjesztésből.

from aspose.threed import Scene

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

2. lépés: Mentés glTF binárisba (GLB)

Hívja meg a scene.save()-t a .glb kiterjesztéssel, hogy a kimenetet kompakt bináris glTF fájlként írja. A formátum automatikusan a kiterjesztésből kerül meghatározásra. Ez a javasolt megközelítés: egyetlen fájl, kompakt és széles körben kompatibilis.

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

Megjegyzés: FileFormat.GLTF2_BINARY és FileFormat.GLTF None helyőrző konstansok a jelenlegi könyvtárverzióban, és nem szabad őket átadni a scene.save()-nek. Használja a fájlkiterjesztés automatikus felismerését vagy a FileFormat.GLTF2() gyári metódust helyette.

A JSON glTF mentéséhez ehelyett:

scene.save("output.gltf")

3. lépés: (Opcionális) Használja a GltfSaveOptions-t

A glTF kimenet nagyobb szabályozásához adjon át egy GltfSaveOptions objektumot:

from aspose.threed.formats import GltfSaveOptions

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

Kódpélda

Teljes FBX‑to‑GLB konverzió három sorban:

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

Támogatott kimeneti formátumok

FBX konvertálásakor a következő kimeneti formátumok megbízhatóan működnek:

Kimeneti formátumKiterjesztésHogyan adható meg
glTF 2.0 bináris.glbkiterjesztés automatikus felismerése (vagy FileFormat.GLTF2())
glTF 2.0 JSON.gltfkiterjesztés automatikus felismerése (vagy FileFormat.GLTF2())
Wavefront OBJ.objkiterjesztés automatikus felismerése
STL.stlkiterjesztés automatikus felismerése
Microsoft 3MF.3mfkiterjesztés automatikus felismerése (vagy FileFormat.MICROSOFT_3MF_FORMAT())

Megjegyzés: FileFormat.GLTF2_BINARY, FileFormat.GLTF és FileFormat.MICROSOFT_3MF None helyőrző konstansok, és nem szabad őket átadni a scene.save()-nek. Használja a fájlkiterjesztés automatikus felismerését vagy a fent bemutatott gyári metódusokat.

Lásd még

 Magyar