Cómo convertir FBX en glTF en Python
Problemas
Los desarrolladores necesitan convertir los archivos de modelo 3D de FBX en el formato glTF o GLB para su uso en espectadores web, motores de juego y tubos modernos de rendimiento. Scene.from_file() para cargar el archivo FBX y scene.save() para escribir la salida de glTF.
Nota sobre el soporte FBX: Aspose.3D FOSS tiene Experimental El tokenizer FBX se implementa pero el parser ha conocido errores estructurales: tratamiento incorrecto de CLOSE_BRACKET y recursion ilimitada en los espaldos FB X complejos. archivos complexos o grandes FBx pueden desencadenar RecursionError. simple geometría plana FBX puede funcionar. para el uso de producción, prefiera COLLADA, OBJ o glTF sobre FB X. Ver la FAQ Para más detalles.
Prediciones
- Python 3.7 o más tarde
- Instalación por pip:
pip install aspose-3d-foss
from aspose.threed import ScenePasos de conversión
Paso 1: Cargar el archivo FBX
Uso Scene.from_file() para cargar el archivo FBX. El formato se detecta automáticamente desde la .fbx La extensión.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")Paso 2: Salva para glTF Binario (GLB)
llamadas scene.save() Con el .glb Extension para escribir la salida como un archivo compacto binario glTF. El formato se deriva automáticamente de la extensión. Este es el enfoque recomendado: único archivos, compactos y ampliamente compatibles.
# Use the .glb extension for binary GLB output (auto-detected)
scene.save("output.glb")Nota de: ElFileFormat.GLTF2_BINARY y FileFormat.GLTF Son None constantes en la versión actual de la biblioteca y no deben ser pasados a scene.save().Utilice la extensión de archivo para el auto-detección o FileFormat.GLTF2() En lugar de la fabricación.
Para salvar como JSON glTF en lugar:
scene.save("output.gltf")Paso 3: (Opcional) Use GltfSaveOptions
Para obtener más control sobre la salida de glTF, pasar a GltfSaveOptions Objetos :
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)Código de ejemplo
Conversión completa de FBX a GLB en tres líneas:
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")Formatos de salida apoyados
Al convertirse de FBX, los siguientes formatos de salida funcionan de manera fiable:
| Formato | Extensiones | Cómo especificar |
|---|---|---|
| GTTF | .glb / .gltf | Extension Auto-detector; GLB binario o glTF JSON |
| OBJ | .El OBJ | Extensiones de auto-detecto |
| STL | .El STL | Extensiones de auto-detecto |
| 3MF | .3MF | Extensiones de auto-detecto |
Nota de: ElFileFormat.GLTF2_BINARY, FileFormat.GLTF,y, FileFormat.MICROSOFT_3MF Son None constantes y no deben ser cedidos a scene.save().Utilice la detección automática de extensión de archivo o los métodos de fábrica mostrados anteriormente.