Introducció
Ens complau anunciar la disponibilitat de Aspose.3D FOSS per TypeScript com a @aspose/3d paquet npm. Aquesta biblioteca amb llicència MIT ofereix processament d’escenes 3D de qualitat de producció a aplicacions TypeScript i Node.js sense requerir binaris natius, cadenes d’eines específiques de plataforma o llicències comercials.
La biblioteca està dissenyada al voltant d’una Scene API: carregar un fitxer 3D amb scene.open(), inspeccionar o transformar el gràfic d’escena i escriure el resultat amb scene.save(). Les definicions de tipus complet de TypeScript s’inclouen; no cal cap @types/ paquet addicional.
Característiques clau
E/S multiformat. El paquet llegeix i escriu sis formats 3D principals en una única instal·lació. OBJ, glTF 2.0, GLB, STL, 3MF i COLLADA admeten tant la importació com l’exportació. Existeixen classes d’importador/exportador FBX, però la detecció automàtica del format encara no està implementada, de manera que els fitxers FBX no es poden carregar via scene.open().
Suport de TypeScript de primera classe. Totes les classes públiques, enumeracions i tipus d’opcions estan completament tipats. Els IDEs amb suport del servei de llenguatge TypeScript (VS Code, WebStorm, etc.) ofereixen autocompleció precisa i documentació en línia per a cada crida a l’API.
Compatibilitat amb Node.js 18–22+. El paquet s’ha provat amb les versions LTS de Node.js 18, 20 i 22. No es compilen complements natius durant la instal·lació, de manera que funciona en totes les plataformes que suporta Node.js.
Una única dependència d’execució. L’única dependència és xmldom, utilitzada exclusivament per a l’anàlisi XML de COLLADA. Tots els altres analitzadors de formats són implementacions purament JavaScript.
Llicència MIT. Utilitza @aspose/3d en projectes comercials, de codi obert o interns sense cap restricció.
Inici ràpid
Instal·la el paquet:
npm install @aspose/3d
Carrega un fitxer OBJ i converteix-lo a un GLB binari:
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');
Itera sobre els nodes de l’escena per inspeccionar la geometria:
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}`);
}
}
Formats compatibles
| Format | Extensió | Importa | Exporta | Notes |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Sí | Sí | Llegeix/escriu .mtl fitxers de material |
| glTF 2.0 | .gltf | Sí | Sí | JSON amb extern .bin buffer |
| GLB binari | .glb | Sí | Sí | Conjunt binaryMode: true a GltfSaveOptions |
| STL | .stl | Sí | Sí | ASCII i STL binari |
| 3MF | .3mf | Sí | Sí | Arxiu Open Packaging Convention |
| FBX | .fbx | No* | No* | Existeixen importador/exportador però la detecció automàtica del format no està connectada |
| COLLADA | .dae | Sí | Sí | Requereix empaquetat xmldom dependència |
Avantatges de TypeScript
Treballant amb @aspose/3d a TypeScript captura errors de categoria en temps de compilació en lloc d’execució. Quan crides scene.save(), el compilador verifica que l’objecte d’opcions coincideixi amb el subtipus esperat SaveOptions subtipus per al format triat. Les opcions de càrrega i desament específiques del format exposen només les propietats rellevants per a aquest format; no hi ha cap sac d’opcions sense tipar per endevinar.
Per exemple, GltfSaveOptions.binaryMode és un tipat boolean,de manera que el compilador rebutja saveOpts.binaryMode = 'yes' abans que s’executi cap codi. AnimationClip,Propietats d’animació a PbrMaterial,canals de material a VertexElement i tipus d’elements de vèrtex a.
Codi obert
El paquet es publica sota la Llicència MIT. El codi font està disponible a GitHub. Les contribucions, informes d’errors i sol·licituds de suport de format són benvingudes a través del gestor d’incidències del repositori.
La biblioteca té una dependència d’execució: xmldom versió 0.9+, utilitzada només en la lectura o escriptura de fitxers COLLADA. Tots els altres analitzadors i generadors són implementacions autònomes purament JavaScript sense components binaris.
Com començar
- npm:
npm install @aspose/3d - Base de coneixement: Com carregar models 3D en TypeScript
- Base de coneixement: Com exportar escenes 3D a glTF/GLB en TypeScript
- Referència de l’API: Aspose.3D FOSS per a TypeScript: Referència completa de classes
- GitHub: aspose-3d/aspose-3d-node
Conclusió
@aspose/3d La versió 24.12.0 ofereix una base estable, tipada i lleugera en dependències per al processament de fitxers 3D en TypeScript i Node.js. Tant si el cas d’ús és la conversió de formats, la inspecció d’escenes, l’extracció de geometria o la integració en pipelines, la biblioteca cobreix els formats d’intercanvi 3D més comuns sota una llicència de codi obert permissiva.
Instal·la-la avui i fes-nos saber què construeixes.