如何在 Python 中将 FBX 转换为 glTF

如何在 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 二进制.glbFileFormat.GLTF2_BINARY
glTF 2.0 JSON.gltfFileFormat.GLTF
Wavefront OBJ.obj扩展名自动检测
STL.stl扩展名自动检测
Microsoft 3MF.3mf扩展自动检测

另请参阅

 中文