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átum | Kiterjesztés | Hogyan adható meg |
|---|---|---|
| glTF 2.0 bináris | .glb | kiterjesztés automatikus felismerése (vagy FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | kiterjesztés automatikus felismerése (vagy FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | kiterjesztés automatikus felismerése |
| STL | .stl | kiterjesztés automatikus felismerése |
| Microsoft 3MF | .3mf | kiterjeszté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.