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 SceneKonvertavimo ž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 formatas | Plėtinys | Kaip nurodyti |
|---|---|---|
| glTF 2.0 binarinis | .glb | plėtinys automatinis aptikimas (arba FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | plėtinys automatinis aptikimas (arba FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | plėtinys automatinis aptikimas |
| STL | .stl | plėtinys automatinis aptikimas |
| Microsoft 3MF | .3mf | plė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.