Sådan konverteres FBX til glTF i Python
Problem
Udviklere har brug for at konvertere FBX 3D-modelfiler til glTF- eller GLB-formatet for brug i web‑visere, spilmotorer og moderne renderings‑pipelines. Aspose.3D håndterer dette med Scene.from_file() til at indlæse FBX-filen og scene.save() til at skrive glTF-output.
Bemærk om FBX-understøttelse: Aspose.3D FOSS har eksperimentel FBX-understøttelse. FBX-tokenizeren er implementeret, men parseren har kendte strukturelle fejl: forkert håndtering af CLOSE_BRACKET og ubegrænset rekursion i komplekse indlejrede FBX-områder. Komplekse eller store FBX-filer kan udløse RecursionError. Simpel flad-geometri FBX kan fungere. Til produktionsbrug foretrækkes COLLADA, OBJ eller glTF frem for FBX. Se FAQ for flere detaljer.
Forudsætninger
- Python 3.7 eller senere
- Installer via pip:
pip install aspose-3d-foss
from aspose.threed import SceneKonverteringstrin
Trin 1: Indlæs FBX-filen
Brug Scene.from_file() til at indlæse FBX-filen. Formatet opdages automatisk ud fra .fbx-udvidelsen.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")Trin 2: Gem som glTF Binary (GLB)
Kald scene.save() med .glb-udvidelsen for at skrive output som en kompakt binær glTF-fil. Formatet udledes automatisk fra udvidelsen. Dette er den anbefalede tilgang: enkeltfil, kompakt og bredt kompatibel.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")Bemærk: FileFormat.GLTF2_BINARY og FileFormat.GLTF er None stub-konstanter i den aktuelle biblioteksversion og bør ikke videregives til scene.save(). Brug automatisk filtypegenkendelse eller FileFormat.GLTF2() fabriksmetode i stedet.
For at gemme som JSON glTF i stedet:
scene.save("output.gltf")Trin 3: (Valgfrit) Brug GltfSaveOptions
For mere kontrol over glTF-outputtet, videregiv et GltfSaveOptions-objekt:
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Kodeeksempel
Komplet FBX-til-GLB-konvertering på tre linjer:
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")Understøttede outputformater
Når du konverterer fra FBX, fungerer følgende outputformater pålideligt:
| Outputformat | Filendelse | Sådan angives |
|---|---|---|
| glTF 2.0 binary | .glb | filendelse automatisk genkendelse (eller FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | filendelse automatisk genkendelse (eller FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | filendelse automatisk genkendelse |
| STL | .stl | filendelse automatisk genkendelse |
| Microsoft 3MF | .3mf | filendelse automatisk genkendelse (eller FileFormat.MICROSOFT_3MF_FORMAT()) |
Bemærk: FileFormat.GLTF2_BINARY, FileFormat.GLTF og FileFormat.MICROSOFT_3MF er None stub-konstanter og må ikke videregives til scene.save(). Brug filtypebaseret automatisk genkendelse eller fabriksmetoderne vist ovenfor.