如何在 Python 中将 FBX 转换为 glTF
问题
开发者需要将 FBX 3D 模型文件转换为 glTF 或 GLB 格式,以便在网页查看器、游戏引擎和现代渲染管线中使用。Aspose.3D 通过以下方式处理: Scene.from_file() 用于加载 FBX 文件,并 scene.save() 用于写入 glTF 输出。.
关于 FBX 支持的说明:: Aspose.3D FOSS 对 FBX 的支持有限。从 FBX 文件加载基本几何体(网格和节点层次结构)在大多数情况下可行,但复杂的动画、蒙皮以及专有的 FBX 功能可能无法保留。将已加载的几何体转换为 glTF 或 GLB 得到良好支持。.
先决条件
- Python 3.7 或更高版本
- 通过 pip 安装::
pip install aspose-3d-foss
from aspose.threed import Scene, FileFormat转换步骤
步骤 1:加载 FBX 文件
使用 Scene.from_file() 来加载 FBX 文件。格式会自动从中检测 .fbx 扩展。.
from aspose.threed import Scene
scene = Scene.from_file("input.fbx")步骤 2:保存为 glTF 二进制(GLB)
调用 scene.save() 使用 FileFormat.GLTF2_BINARY 将输出写入紧凑的二进制 glTF 文件。这是推荐的输出格式:单文件、紧凑且广泛兼容。.
from aspose.threed import FileFormat
scene.save("output.glb", FileFormat.GLTF2_BINARY)如果要保存为 JSON glTF,请使用::
scene.save("output.gltf", FileFormat.GLTF)步骤 3:(可选)使用 GltfSaveOptions
若需对 glTF 输出进行更细致的控制,请传入一个 GltfSaveOptions 对象::
from aspose.threed.formats import GltfSaveOptions
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("output.glb", opts)代码示例
仅用三行代码完成 FBX 到 GLB 转换::
from aspose.threed import Scene, FileFormat
scene = Scene.from_file("input.fbx")
scene.save("output.glb", FileFormat.GLTF2_BINARY)
print("Conversion complete: input.fbx -> output.glb")支持的输出格式
从 FBX 转换时,以下输出格式可靠可用::
| 输出格式 | 扩展名 | FileFormat 常量 |
|---|---|---|
| glTF 2.0 二进制 | .glb | FileFormat.GLTF2_BINARY |
| glTF 2.0 JSON | .gltf | FileFormat.GLTF |
| Wavefront OBJ | .obj | 扩展名自动检测 |
| STL | .stl | 扩展名自动检测 |
| Microsoft 3MF | .3mf | 扩展自动检测 |