Kā konvertēt FBX uz glTF Python valodā
Problēma
Attīstītājiem jāveic FBX 3D modeļu failu konvertēšana uz glTF vai GLB formātu, lai tos varētu izmantot tīmekļa skatītājos, spēļu dzinējos un mūsdienīgās renderēšanas cauruļvados. Aspose.3D to nodrošina, izmantojot Scene.from_file(), lai ielādētu FBX failu, un scene.save(), lai rakstītu glTF izvadi.
Piezīme par FBX atbalstu: Aspose.3D FOSS ir eksperimentāls FBX atbalsts. FBX tokenizators ir implementēts, bet parserim ir zināmas strukturālas kļūdas: nepareiza CLOSE_BRACKET apstrāde un neierobežota rekursija sarežģītās ligzdotās FBX apjomās. Sarežģīti vai lieli FBX faili var izraisīt RecursionError. Vienkāršs plakanais ģeometrijas FBX var darboties. Ražošanas lietošanai dodiet priekšroku COLLADA, OBJ vai glTF pār FBX. Skatiet BUJ papildu informācijai.
Priekšnosacījumi
- Python 3.7 vai jaunāks
- Instalējiet, izmantojot pip:
pip install aspose-3d-foss
from aspose.threed import ScenePārveidošanas soļi
1. solis: Ielādēt FBX failu
Izmantojiet Scene.from_file(), lai ielādētu FBX failu. Formāts tiek automātiski noteikts no .fbx paplašinājuma.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")2. solis: Saglabāt glTF Binary (GLB)
Izsauciet scene.save() ar .glb paplašinājumu, lai ierakstītu izvadi kā kompakto bināro glTF failu. Formāts tiek automātiski noteikts no paplašinājuma. Šī ir ieteicamā pieeja: vienas faila, kompakta un plaši saderīga.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")Piezīme: FileFormat.GLTF2_BINARY and FileFormat.GLTF ir None stub konstantes pašreizējā bibliotēkas versijā un nevajadzētu nodot scene.save(). Izmantojiet faila paplašinājuma automātisko noteikšanu vai FileFormat.GLTF2() ražotāja metodi.
Lai saglabātu kā JSON glTF, tā vietā:
scene.save("output.gltf")3. solis: (pēc izvēles) Izmantot GltfSaveOptions
Lai iegūtu lielāku kontroli pār glTF izvadi, nododiet GltfSaveOptions objektu:
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Koda piemērs
Pilnīga FBX‑uz‑GLB konvertēšana trīs rindās:
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")Atbalstītie izvades formāti
Pārvēršot no FBX, šādi izvades formāti darbojas uzticami:
| Izvades formāts | Paplašinājums | Kā norādīt |
|---|---|---|
| glTF 2.0 binary | .glb | paplašinājums automātiski noteikts (vai FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | paplašinājums automātiski noteikts (vai FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | paplašinājums automātiski noteikts |
| STL | .stl | paplašinājums automātiski noteikts |
| Microsoft 3MF | .3mf | paplašinājums automātiski noteikts (vai FileFormat.MICROSOFT_3MF_FORMAT()) |
Piezīme: FileFormat.GLTF2_BINARY, FileFormat.GLTF, un FileFormat.MICROSOFT_3MF ir None stub konstantes un tās nedrīkst nodot scene.save(). Izmantojiet faila paplašinājuma automātisko noteikšanu vai iepriekš parādītās ražotāja metodes.