Kā konvertēt FBX uz glTF Python valodā

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 Scene

Pā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ātsPaplašinājumsKā norādīt
glTF 2.0 binary.glbpaplašinājums automātiski noteikts (vai FileFormat.GLTF2())
glTF 2.0 JSON.gltfpaplašinājums automātiski noteikts (vai FileFormat.GLTF2())
Wavefront OBJ.objpaplašinājums automātiski noteikts
STL.stlpaplašinājums automātiski noteikts
Microsoft 3MF.3mfpaplaš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.

Skatīt arī

 Latviešu