介绍
我们很高兴宣布已提供 Aspose.3D FOSS for TypeScript 作为 @aspose/3d npm 包。此 MIT 许可证的库为 TypeScript 和 Node.js 应用程序提供生产级的 3D 场景处理,无需本机二进制文件、特定平台的工具链或商业许可证。.
该库围绕一个简洁的 Scene API:使用…加载 3D 文件 scene.open(),,检查或转换场景图,并使用…写入结果 scene.save().。完整的 TypeScript 类型定义已捆绑;无需单独 @types/ 的包。.
主要特性
多格式 I/O。. 该包在一次安装中即可读取和写入六种主流 3D 格式。OBJ 支持导入;glTF 2.0、GLB、STL、3MF 和 COLLADA 支持导入和导出。虽然存在 FBX 导入/导出类,但尚未实现格式自动检测,因此无法通过 via scene.open().
一流的 TypeScript 支持。. 所有公共类、枚举和选项类型均已完整类型化。支持 TypeScript 语言服务的 IDE(如 VS Code、WebStorm 等)能够为每个 API 调用提供精准的自动补全和内联文档。.
兼容 Node.js 18–22+。. 该包已在 Node.js 18、20 和 22 LTS 版本上进行测试。安装过程中不编译本机插件,因此可在 Node.js 支持的所有平台上运行。.
仅有一个运行时依赖。. 唯一的依赖是 xmldom,,仅用于 COLLADA XML 解析。所有其他格式解析器均为纯 JavaScript 实现。.
MIT 许可证。. 使用 @aspose/3d 在商业、开源或内部项目中无限制使用。.
快速入门
安装包::
npm install @aspose/3d
加载 OBJ 文件并转换为二进制 GLB::
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true; // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);
console.log('Converted to GLB successfully');
遍历场景节点以检查几何体::
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
for (const node of scene.rootNode.childNodes) {
console.log(`Node: ${node.name}`);
if (node.entity) {
console.log(` Entity type: ${node.entity.constructor.name}`);
}
}
支持的格式
| 格式 | 扩展名 | 导入 | 导出 | 备注 |
|---|---|---|---|---|
| Wavefront OBJ | .obj | 是 | 否 | 仅导入;读取 .mtl 材质文件 |
| glTF 2.0 | .gltf | 是 | 是 | 带外部的 JSON .bin 缓冲区 |
| 二进制 GLB | .glb | 是 | 是 | 设置 binaryMode: true 在 GltfSaveOptions |
| STL | .stl | 是 | 是 | ASCII 和二进制 STL |
| 3MF | .3mf | 是 | 是 | Open Packaging Convention 存档 |
| FBX | .fbx | 否* | 否* | 导入器/导出器已存在,但格式自动检测未接通 |
| COLLADA | .dae | 是 | 是 | 需要捆绑的 xmldom 依赖 |
TypeScript 优势
使用 @aspose/3d 在 TypeScript 中会在编译时捕获类别错误,而不是在运行时。当你调用 scene.save(), 编译器会验证 options 对象是否匹配预期的 SaveOptions 所选格式的子类型。特定格式的加载和保存选项仅公开该格式相关的属性;不存在需要猜测的未类型化 options 包。.
例如,, GltfSaveOptions.binaryMode 是一个已类型化的 boolean, 因此编译器会拒绝 saveOpts.binaryMode = 'yes' 在任何代码运行之前。动画属性位于 AnimationClip,,材质通道位于 PbrMaterial,,以及顶点元素类型位于 VertexElement 都具有相似的类型,并且可以通过 IntelliSense 发现,无需查阅外部文档。.
开源
该软件包发布于 MIT 许可证.。源代码可在 GitHub 上获取。欢迎通过仓库的 issue 跟踪器提交贡献、错误报告和格式支持请求。.
该库有一个运行时依赖:: xmldom 版本 0.9+,仅在读取或写入 COLLADA 文件时使用。所有其他解析器和写入器都是自包含的纯 JavaScript 实现,不含二进制组件。.
快速入门
- npm:
npm install @aspose/3d - 知识库: 如何在 TypeScript 中加载 3D 模型
- 知识库: 如何在 TypeScript 中导出 3D 场景为 glTF/GLB
- API 参考: Aspose.3D FOSS for TypeScript:完整类参考
- GitHub: aspose-3d/aspose-3d-node
结论
@aspose/3d 版本 24.12.0 为 TypeScript 和 Node.js 中的 3D 文件处理提供了一个稳定、类型化、轻依赖的基础。无论使用场景是格式转换、场景检查、几何提取,还是管道集成,该库在宽松的开源许可证下覆盖了最常见的 3D 互换格式。.
今天就安装它,并告诉我们您构建了什么。.