1. 产品
  2.   Aspose.3D
  3.   Aspose.3D FOSS for Python

Aspose.3D FOSS for Python

加载、创建、转换并导出来自 Python 的 3D 场景 — 免费且开源。

开源 Python 库,用于 3D 文件处理

Aspose.3D FOSS for Python 是一个 MIT-licensed、pure-Python 库,用于处理 3D 文件格式。只需一条 pip 命令即可安装,立即开始读取、构建和写入 3D 场景,无需安装任何本地运行时、外部 SDK 或第三方渲染器。

该库提供了一个简洁的场景图 API,围绕 SceneNodeMeshCameraLightTransform 构建,这与专业 3D 工具使用的概念模型相同。支持的格式包括 OBJ(带 .mtl 材质加载)、STL(二进制和 ASCII,已验证往返)、glTF 2.0 / GLB(PBR 材质)、COLLADA(DAE)、3MF 和 FBX。每种格式的加载和保存选项让您能够控制坐标翻转、缩放、法线归一化以及材质加载,而无需编写任何特定格式的解析代码。

Aspose.3D FOSS 支持 Python 3.7 至 3.12,并在 Windows、macOS 和 Linux CI 运行器、Docker 容器以及无服务器环境中表现一致。无需编译本地扩展,也无需安装系统软件包。

3D 格式支持与场景图 API

  • OBJ / MTL: 加载带有相应材质定义的 Wavefront OBJ 文件。
  • STL: 读取和写入二进制及 ASCII STL,并进行完整的往返验证。
  • glTF 2.0 / GLB: 通过 GltfSaveOptions 实现 PBR 材质加载和二进制 GLB 输出。
  • COLLADA, 3MF, FBX: 通过每种格式的选项类提供额外的格式支持。
  • Scene-graph API: SceneNodeMeshCameraLightTransform

Aspose.3D FOSS 可用于何处

  • 资产验证流水线: 在 CI 中验证、重新定向并重新导出 3D 资产。
  • 游戏开发工具: 在没有原生引擎的情况下批量处理 OBJ/GLB 网格。
  • 3D 打印工作流: 读取、验证并重新导出 STL 和 3MF 文件。
  • Web 后端: 在 Docker 或无服务器函数中提供 3D 转换端点。
  • 内容迁移: 大规模在不同格式族之间转换。

每种格式的选项与坐标控制

  • 坐标系方向: 翻转轴并根据格式调整比例,无需自定义代码。
  • 法线归一化: 在加载或保存时自动归一化顶点法线。
  • 材质加载控制: 启用或禁用 MTL/纹理加载以加快解析。
  • 二进制与 JSON 输出: 通过选项选择紧凑的 GLB 或可读的 glTF。
  • 往返保真度: 场景图结构在加载和保存循环中保持(节点保真度取决于格式,且未对所有格式进行独立验证)。

开发者体验

Aspose.3D FOSS for Python 可通过单个 pip install aspose-3d-foss 命令进行安装。该库是纯 Python,无需编译本地扩展,也不需要安装系统软件包。

场景图 API 反映了专业 3D 工具的概念模型,因此对熟悉 Three.js 或 Blender 数据模型的用户来说学习曲线很短。该库采用 MIT 许可证,开源,并欢迎在 GitHub 上提交 bug 报告和贡献代码。

加载 OBJ 场景并导出为 glTF

使用 pip 安装后,调用 Scene.open() 并传入 ObjLoadOptions 来加载包含其 MTL 材质定义的 OBJ 文件。只需一次 scene.save() 调用并使用 .gltf 扩展名,即可写出 glTF 2.0 JSON 文件,无需格式注册表或转换器对象。

pip install aspose-3d-foss
from aspose.threed import Scene
from aspose.threed.formats import ObjLoadOptions

# 加载 OBJ 文件(带 .mtl 材质)
scene = Scene()
scene.open("model.obj", ObjLoadOptions())

# 导出为 glTF 2.0
scene.save("model.gltf")

将 STL 转换为二进制 GLB 并进行坐标翻转

要生成紧凑的二进制 GLB(而不是默认的 JSON glTF),请传入一个 GltfSaveOptions 实例并将 binary_mode = True。相同的模式同样适用于坐标系调整——将选项类替换为您所针对的格式。

from aspose.threed import Scene
from aspose.threed.formats import GltfSaveOptions

scene = Scene()
scene.open("mesh.stl")

# 保存为二进制 GLB
opts = GltfSaveOptions()
opts.binary_mode = True
scene.save("mesh.glb", opts)

常见问题

什么是 Aspose.3D FOSS 用于 Python?

它是一个免费、MIT 许可证的 pure-Python 库,用于加载、操作和保存 3D 场景,无需安装任何本机运行时或外部 SDK。

支持哪些 3D 格式?

OBJ(含 .mtl)、STL(二进制和 ASCII)、glTF 2.0 与 GLB、COLLADA(DAE)、3MF 和 FBX。每种格式都有专用的加载/保存选项类。

它是否需要任何本地依赖?

不。Aspose.3D FOSS for Python 是纯 Python,没有任何本机扩展。它可在 Windows、macOS 和 Linux 上运行,无需任何编译步骤。

我该如何安装它?

运行 pip install aspose-3d-foss。不需要额外的系统软件包或本机扩展。

我可以控制坐标系方向吗?

是的。每种格式的选项类允许您翻转轴、调整比例并归一化法线,无需编写任何特定格式的解析代码。

支持哪些 Python 版本?

Python 支持 3.7 到 3.12。该库在所有主流操作系统上表现一致。

源代码可用吗?

是的。该库采用 MIT 许可证,托管在 GitHub 上。欢迎提交 bug 报告和 pull request。

  

支持和学习资源

 中文