Kaip konvertuoti FBX į glTF naudojant Python

Kaip konvertuoti FBX į glTF naudojant Python

Problema

Programuotojams reikia konvertuoti FBX 3D modelio failus į glTF arba GLB formatą, kad būtų galima naudoti juos interneto peržiūros programose, žaidimų varikliuose ir moderniose vaizdavimo grandinėse. Aspose.3D tai tvarko naudojant Scene.from_file() FBX failo įkėlimui ir scene.save() glTF išvesties rašymui.

Pastaba apie FBX palaikymą: Aspose.3D FOSS turi eksperimentinį FBX palaikymą. FBX tokenizatorius yra įgyvendintas, tačiau analizatoriui yra žinomų struktūrinių klaidų: neteisingas CLOSE_BRACKET tvarkymas ir neribota rekursija sudėtinguose įdėtų FBX srities blokų. Sudėtingi arba dideli FBX failai gali sukelti RecursionError. Paprastas plokščios geometrijos FBX gali veikti. Produkciniam naudojimui, teikiant pirmenybę COLLADA, OBJ arba glTF prieš FBX. Daugiau informacijos rasite FAQ.

Būtinosios sąlygos

  • Python 3.7 arba vėlesnė
  • Įdiekite per pip: pip install aspose-3d-foss
from aspose.threed import Scene

Konvertavimo žingsniai

Žingsnis 1: Įkelti FBX failą

Naudokite Scene.from_file(), kad įkeltumėte FBX failą. Formatą aptinka automatiškai pagal .fbx plėtinį.

from aspose.threed import Scene

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

2 žingsnis: Išsaugoti į glTF binarinį (GLB)

Iškvieskite scene.save() su .glb plėtiniu, kad išvestį įrašytumėte kaip kompaktinį binarinį glTF failą. Formatą automatiškai nustato iš plėtinio. Tai rekomenduojamas metodas: vienas failas, kompaktiškas ir plačiai suderinamas.

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

Pastaba: FileFormat.GLTF2_BINARY ir FileFormat.GLTF yra None stub konstantos dabartinėje bibliotekos versijoje ir neturėtų būti perduodamos scene.save(). Naudokite failo plėtinio automatinį aptikimą arba FileFormat.GLTF2() gamyklos metodą.

Norėdami išsaugoti kaip JSON glTF vietoje:

scene.save("output.gltf")

Žingsnis 3: (Pasirinktinai) Naudoti GltfSaveOptions

Norėdami gauti didesnę kontrolę glTF išvesties atžvilgiu, perduokite GltfSaveOptions objektą:

from aspose.threed.formats import GltfSaveOptions

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

Kodo pavyzdys

Pilnas FBX į GLB konvertavimas trijose eilutėse:

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

Palaikomi išvesties formatai

Konvertuojant iš FBX, šie išvesties formatai veikia patikimai:

Išvesties formatasPlėtinysKaip nurodyti
glTF 2.0 binarinis.glbplėtinys automatinis aptikimas (arba FileFormat.GLTF2())
glTF 2.0 JSON.gltfplėtinys automatinis aptikimas (arba FileFormat.GLTF2())
Wavefront OBJ.objplėtinys automatinis aptikimas
STL.stlplėtinys automatinis aptikimas
Microsoft 3MF.3mfplėtinys automatinis aptikimas (arba FileFormat.MICROSOFT_3MF_FORMAT())

Pastaba: FileFormat.GLTF2_BINARY, FileFormat.GLTF ir FileFormat.MICROSOFT_3MF yra None stub konstantos ir neturi būti perduodamos scene.save(). Naudokite failo plėtinio automatinį aptikimą arba aukščiau parodytas gamyklines metodus.

Žr. taip pat

 Lietuvių