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

Aspose.3D FOSS for TypeScript

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

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

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

该库提供了围绕 SceneNodeEntityMeshCameraLightTransform 构建的完整类型化场景图 API,这与专业 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 会自动安装。

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。
  • 游戏工具链: 在没有原生引擎或渲染器的情况下批量处理 3D 网格。
  • 3D 打印工作流: 读取、验证并重新导出 STL 和 3MF 文件。
  • 无服务器后端: 在 Lambda 或 Cloud Functions 中运行 3D 转换端点。
  • 内容迁移: 从单个脚本大规模在不同格式族之间转换。

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

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

开发者体验

Aspose.3D 用于 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 材质文件。调用带有 .gltf 扩展名的 scene.save() 会写入标准的 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());

// 导出为 glTF 2.0 JSON
scene.save("model.gltf");

将 STL 转换为二进制 GLB

要生成紧凑的二进制 GLB 而不是默认的 JSON glTF,请传入 GltfSaveOptions 并将 binaryMode = true

import { Scene } from "@aspose/3d";
import { GltfSaveOptions } from "@aspose/3d/formats/gltf";

const scene = new Scene();
scene.open("mesh.stl");

// 保存为紧凑的二进制 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 requests。

  

支持和学习资源

 中文