Kuinka muuntaa FBX glTF:ksi Pythonissa
Ongelma
Kehittäjien täytyy muuntaa FBX 3D -mallitiedostot glTF- tai GLB-muotoon web‑katselijoita, pelimoottoreita ja nykyaikaisia renderöintiputkia varten. Aspose.3D hoitaa tämän Scene.from_file() FBX‑tiedoston lataamiseen ja scene.save() glTF‑tulosteen kirjoittamiseen.
Huomautus FBX-tuesta: Aspose.3D FOSS:lla on kokeellinen FBX-tuki. FBX-tokenisoija on toteutettu, mutta parserissa on tunnettuja rakenteellisia virheitä: virheellinen CLOSE_BRACKET‑käsittely ja rajoittamaton rekursio monimutkaisissa sisäkkäisissä FBX‑alueissa. Monimutkaiset tai suuret FBX‑tiedostot voivat laukaista RecursionError. Yksinkertainen tasogeometrinen FBX saattaa toimia. Tuotantokäytössä suosi COLLADAa, OBJ:ta tai glTF:ta FBX:n sijaan. Katso FAQ lisätietoja varten.
Edellytykset
- Python 3.7 tai uudempi
- Asenna pipin kautta:
pip install aspose-3d-foss
from aspose.threed import SceneMuuntaamisvaiheet
Vaihe 1: Lataa FBX‑tiedosto
Käytä Scene.from_file() FBX‑tiedoston lataamiseen. Tiedostomuoto tunnistetaan automaattisesti .fbx‑tunnisteesta.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")Vaihe 2: Tallenna glTF-binääriin (GLB)
Kutsu scene.save() .glb-päätteellä kirjoittaaksesi tuloksen tiiviinä binäärisenä glTF‑tiedostona. Muoto päätellään automaattisesti päätteestä. Tämä on suositeltu lähestymistapa: yksi tiedosto, tiivis ja laajalti yhteensopiva.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")Huomaa: FileFormat.GLTF2_BINARY ja FileFormat.GLTF ovat None-vakioita nykyisessä kirjaston versiossa, eikä niitä tule välittää scene.save()-funktiolle. Käytä tiedostopäätteen automaattitunnistusta tai FileFormat.GLTF2()-tehdasmenetelmää sen sijaan.
Tallentaaksesi JSON glTF:nä sen sijaan:
scene.save("output.gltf")Vaihe 3: (Valinnainen) Käytä GltfSaveOptions
Saadaksesi enemmän hallintaa glTF‑tulosteeseen, anna GltfSaveOptions‑objekti:
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Koodiesimerkki
Täydellinen FBX-to-GLB -muunnos kolmessa rivissä:
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")Tuetut tulostusmuodot
Kun muunnetaan FBX:stä, seuraavat tulostusformaatit toimivat luotettavasti:
| Tulostusmuoto | Tiedostopääte | Miten määrittää |
|---|---|---|
| glTF 2.0 binary | .glb | tiedostopäätteen automaattinen tunnistus (tai FileFormat.GLTF2()) |
| glTF 2.0 JSON | .gltf | tiedostopäätteen automaattinen tunnistus (tai FileFormat.GLTF2()) |
| Wavefront OBJ | .obj | tiedostopäätteen automaattinen tunnistus |
| STL | .stl | tiedostopäätteen automaattinen tunnistus |
| Microsoft 3MF | .3mf | tiedostopäätteen automaattinen tunnistus (tai FileFormat.MICROSOFT_3MF_FORMAT()) |
Huomaa: FileFormat.GLTF2_BINARY, FileFormat.GLTF ja FileFormat.MICROSOFT_3MF ovat None-vakioita, eikä niitä tule välittää scene.save(). Käytä tiedostopäätteen automaattitunnistusta tai yllä esitettyjä tehdasmenetelmiä.