Hur konvertera FBX till glTF i Python

Hur konvertera FBX till glTF i Python

Problemet

Utvecklare behöver konvertera FBX 3D-modellfiler till glTF eller GLB format för användning i webbläsare, spelmotorer och moderna renderingspullar. Aspose.3D hanterar detta med hjälp av Scene.from_file() Ladda upp fbx-filen och scene.save() Skriv ut gltf-utgåvan.

Anmärkning på FBX stöd: Aspose.3D FOSS har ett Experimental FBX-stöd. den FB X tokenizer implementeras men parser har känt strukturella buggar: fel CLOSE_BRACKET hantering och obegränsad recursion på komplexa nestade FBx spår. Komplex eller stora FB x filer kan trigga RecursionError. Enkel fladgeometri FBX kan fungera. för produktionsanvändning, föredra COLLADA, OBJ eller glTF över FB X. Se den FAQ För mer detalj.

Förutsättningar

  • Python 3.7 eller senare
  • Installera via pip: pip install aspose-3d-foss
from aspose.threed import Scene

Konverteringssteg

Steg 1: Ladda upp FBX-filen

Användning Scene.from_file() ladda upp fbx-filen. formatet detekteras automatiskt från .fbx förlängning .

from aspose.threed import Scene

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

Steg 2: Spara till glTF binära (GLB)

Ringa till scene.save() Med den .glb Extension för att skriva utgången som en kompakt binär glTF fil. Formatet är automatiskt infört från förlängningen. Detta är den rekommenderade metoden: en-fil, kompakt och bredt kompatibel.

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

Notera på: -här är detFileFormat.GLTF2_BINARY och FileFormat.GLTF är None stub konstant i den nuvarande bibliotekversionen och bör inte överföras till scene.save(). Använd filändelse självdetektion eller FileFormat.GLTF2() Tillverkningsmetod istället.

För att spara som JSON glTF istället:

scene.save("output.gltf")

Steg 3: (alternativt) Använd GltfSaveOptions

För mer kontroll över glTF-utgången, passera en GltfSaveOptions Objektet är:

from aspose.threed.formats import GltfSaveOptions

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

Kod Exempel

Fullständig FBX-till-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ödda utgångsformat

När du konverterar från FBX fungerar följande utgångsformat på ett tillförlitligt sätt:

FormateraUtvidgningenHur man specificerar
GTTF.glb / .gltfUtökning Auto-detekt; GLB binär eller glTF JSON
OBJ.OmrUtökning Auto-detekt
STL.StlUtökning Auto-detekt
3MF.3mfUtökning Auto-detekt

Notera på: -här är detFileFormat.GLTF2_BINARY, FileFormat.GLTF,och FileFormat.MICROSOFT_3MF är None styv konstant och får inte överföras till scene.save().Använd filutvidgning självdetektion eller fabriksmetoderna som visas ovan.

Se även

 Svenska