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

Aspose.3D FOSS - Aspose.3D 适用于 TypeScript 的 FOSS

在 Node.js 中加载、构建、转换并导出 3D 场景——完整类型、开源且可直接用于生产,只需一次 npm 安装。

用于 3D 文件处理的开源 TypeScript 库

Aspose.3D FOSS for TypeScript 是一个基于 MIT 许可证的库,用于在 Node.js 应用程序中处理 3D 文件格式。使用单个 npm install @aspose/3d 命令安装它,即可立即在 TypeScript 中读取、构建和写入 3D 场景,无需编译本机插件、无需安装外部 SDK,也不需要渲染器。

该库提供了一个完整类型化的场景图 API,围绕 SceneNodeEntityMeshCameraLightTransform 构建,这与专业 3D 工具使用的概念模型相同。支持的格式包括 OBJ(Wavefront,支持 .mtl 材质加载)、glTF 2.0 和 GLB 二进制(PBR 材质)、STL(二进制和 ASCII,完整往返)、COLLADA(DAE)、3MF 和 FBX。每种格式的选项类,例如 ObjLoadOptionsGltfSaveOptions,让您能够精确控制坐标系方向、缩放、法线归一化、二进制与 JSON 输出以及材质加载。

Aspose.3D FOSS 目标 Node.js 18、20 和 22+,使用 TypeScript 5.0+,并编译为 CommonJS。该库随严格的 TypeScript 编译器设置(noImplicitAnystrictNullChecks)一起发布,以便您的 IDE 提供完整的自动完成和编译时安全性。它唯一的运行时依赖 xmldom 会自动安装。有关企业产品系列,请参阅 Aspose.3D — Enterprise Product Family

3D 格式支持与类型化场景图 API

  • OBJ / MTL: 加载带有伴随材质定义的 Wavefront OBJ 文件。
  • glTF 2.0 / GLB: 通过 GltfSaveOptions 加载 PBR 材质并输出二进制 GLB.
  • STL: 读取和写入二进制及 ASCII STL,并进行完整的往返验证。
  • COLLADA, 3MF, FBX: 额外的格式支持,使用每种格式的选项类。
  • Full TypeScript types: 每个类、方法和选项都使用 noImplicitAnystrictNullChecks 进行强类型定义。

可以使用 Aspose.3D FOSS 的地方

  • Node.js 资产管道: 导入 OBJ 文件,验证并重新定向几何体,并在 CI 中导出为 GLB。
  • Game tooling: 在没有本机引擎或渲染器的情况下批量处理 3D 网格。
  • 3D 打印工作流: 读取、验证并重新导出 STL 和 3MF 文件。
  • Serverless backends: 在 Lambda 或 Cloud Functions 中运行 3D 转换端点。
  • 内容迁移: 从单个脚本大规模地在不同格式族之间进行转换。

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

  • 坐标系方向: 翻转轴并根据格式使用选项类调整比例。
  • 法线归一化: 在加载或保存时自动归一化顶点法线。
  • 二进制 vs. JSON 输出: 通过 GltfSaveOptions 选择紧凑的 GLB 或可读的 glTF。
  • 材质加载控制: 启用或禁用 MTL/纹理加载,以加快解析。
  • 往返保真度: 未知的场景图节点在重新保存时会原样保留。

开发者体验

Aspose.3D FOSS for TypeScript 使用单个 npm install @aspose/3d 命令进行安装。没有需要编译的本机插件。该库是纯 TypeScript/JavaScript,带有一个自动安装的依赖 (xmldom)。

强类型 API 为每个场景图类和格式选项提供完整的 IDE 自动完成。该库面向 Node.js 18–22+ 和 TypeScript 5.0+,在 Linux CI 运行器和开发者工作站上运行方式完全相同,采用 MIT 许可证,并在 GitHub 上拥有开放的 issue 跟踪系统。

加载 OBJ 场景并导出为 glTF

使用 npm 安装,然后使用 scene.open()ObjLoadOptions 加载网格及其 MTL 材质文件。open()save() 都是同步的 — 不需要 await 或 Promise 链接。调用 scene.save() 并使用 .gltf 扩展名可写入标准 glTF 2.0 JSON — 格式会自动从文件扩展名推断。

npm install @aspose/3d
import { Scene } from "@aspose/3d";
import { ObjLoadOptions } from "@aspose/3d/formats/obj";
const scene = new Scene();
scene.open("model.obj", new ObjLoadOptions());
// Export as glTF 2.0 JSON
scene.save("model.gltf");

将 STL 转换为 Binary GLB

要生成紧凑的二进制 GLB 而不是默认的 JSON glTF,请使用 GltfSaveOptions 并传入 binaryMode = trueopen()save() 都是同步的 — 不需要 await

import { Scene } from "@aspose/3d";
import { GltfSaveOptions } from "@aspose/3d/formats/gltf";
const scene = new Scene();
scene.open("mesh.stl");
// Save as compact binary GLB
const opts = new GltfSaveOptions();
opts.binaryMode = true;
scene.save("mesh.glb", opts);

常见问题

什么是 Aspose.3D FOSS for TypeScript?

它是一个免费、MIT 许可证的 TypeScript/Node.js 库,用于加载、操作和保存 3D 场景,无需安装任何本机插件或外部 SDK。

支持哪些 3D 格式?

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

它需要原生 Node.js 插件吗?

否。Aspose.3D FOSS for TypeScript 是纯 JavaScript/TypeScript。它不需要编译步骤,并且只有一个运行时依赖 (xmldom),由 npm 自动安装。

我该如何安装它?

运行 npm install @aspose/3d。不需要额外的系统软件包或原生插件。

支持哪些 Node.js 和 TypeScript 版本?

Node.js 18、20 和 22+。TypeScript 5.0+。该库编译为 CommonJS,并在严格的 TypeScript 设置下工作。

它是否随附 TypeScript 类型定义?

是。所有类、方法、枚举和选项类型在启用 noImplicitAnystrictNullChecks 时都已完整类型化。

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

是。每种格式的选项类,例如 ObjLoadOptionsGltfSaveOptions,可以让您在无需自定义解析代码的情况下翻转轴、调整比例并归一化法线。

我可以在哪里找到源代码?

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

  

支持和学习资源

 中文