Hvordan konvertere FBX til glTF i Python
Problem
Utviklere trenger å konvertere FBX 3D-modellfiler til glTF- eller GLB-formatet for bruk i nettleservisere, spillmotorer og moderne renderingsrørledninger. Aspose.3D håndterer dette med Scene.from_file() for å laste FBX-filen og scene.save() for å skrive glTF-utdata.
Merk om FBX-støtte: Aspose.3D FOSS har eksperimentell FBX-støtte. FBX-tokenizeren er implementert, men parseren har kjente strukturelle feil: feil håndtering av CLOSE_BRACKET og ubegrenset rekursjon på komplekse nestede FBX-områder. Kompleks eller stor FBX-fil kan utløse RecursionError. Enkelt flat-geometri FBX kan fungere. For produksjonsbruk, foretrekk COLLADA, OBJ eller glTF fremfor FBX. Se FAQ for mer detalj.
Forutsetninger
- Python 3.7 eller nyere
- Installer via pip:
pip install aspose-3d-foss
from aspose.threed import SceneKonverteringssteg
Steg 1: Last inn FBX-filen
Bruk Scene.from_file() for å laste FBX-filen. Formatet oppdages automatisk fra .fbx‑utvidelsen.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")Steg 2: Lagre til glTF-binær (GLB)
Kall scene.save() med .glb‑utvidelsen for å skrive utdataene som en kompakt binær glTF‑fil. Formatet blir automatisk avledet fra utvidelsen. Dette er den anbefalte tilnærmingen: enkeltfil, kompakt og bredt kompatibel.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")Merk: FileFormat.GLTF2_BINARY og FileFormat.GLTF er None stub‑konstanter i den nåværende bibliotekversjonen og bør ikke sendes til scene.save(). Bruk automatisk gjenkjenning av filtype eller FileFormat.GLTF2() fabrikkmetode i stedet.
For å lagre som JSON glTF i stedet:
scene.save("output.gltf")Trinn 3: (Valgfritt) Bruk GltfSaveOptions
For mer kontroll over glTF‑utdataene, send inn et GltfSaveOptions‑objekt:
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Kodeeksempel
Fullstendig FBX-til-GLB-konvertering i 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")Støttede utdataformater
Når du konverterer fra FBX, fungerer følgende utdataformater pålitelig:
| Output Format | Extension | How to specify |
|---|---|---|
| glTF 2.0 binær | .glb | utvidelse automatisk gjenkjenning (eller FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | utvidelse automatisk gjenkjenning (eller FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | utvidelse automatisk gjenkjenning |
| STL | .stl | utvidelse automatisk gjenkjenning |
| Microsoft 3MF | .3mf | utvidelse automatisk gjenkjenning (eller FileFormat.MICROSOFT_3MF_FORMAT()) |
Merk: FileFormat.GLTF2_BINARY, FileFormat.GLTF og FileFormat.MICROSOFT_3MF er None stub‑konstanter og må ikke sendes til scene.save(). Bruk automatisk gjenkjenning av filtype eller fabrikkmetodene vist ovenfor.