Introducció

Aspose.3D FOSS per TypeScript (@aspose/3d) és una biblioteca de format de fitxer 3D de codi obert, amb llicència MIT, per a Node.js i entorns de navegadors moderns. Els desenvolupadors que construeixen visualitzadors de models 3D, convertidors de formats, eines de processament de geometria o canals 3D del costat del servidor poden instal·lar-la amb un únic npm install @aspose/3d comanda i començar immediatament a carregar, construir i exportar contingut 3D.

La biblioteca admet els principals formats d’intercanvi — OBJ, glTF 2.0 / GLB, STL, 3MF i COLLADA tant per a importació com per a exportació. Existeixen classes d’importador/exportador FBX però encara no estan integrades en la detecció automàtica de formats. L’API del gràfic de escena reflecteix el model familiar de les eines d’autorització 3D: un Scene conté un rootNode, cada Node pot portar nodes fills i objectes d’entitat (Mesh, Camera, Light), i la jerarquia de transformacions és totalment accessible per a lectura i escriptura.

Característiques clau

  • E/S multiformat: Importa i exporta OBJ (amb .mtl materials), glTF 2.0 / GLB, STL (binari i ASCII), 3MF i COLLADA tant des de rutes de fitxer com en memòria Buffer objectes. El suport per a FBX encara no està connectat a la detecció automàtica.
  • API del gràfic d’escena: Scene, Node, Mesh, Camera, Light jerarquia amb gestió completa de pares/fills; recorre els nodes recursivament via node.childNodes
  • sistema de materials PBR: Lambert, Phong i materials PBR (metàl·lic/abrasiu) accessibles via node.entity.material
  • Operacions de malla: Accedeix a dades de vèrtexs en brut via mesh.controlPoints (matriu de Vector4), índexs de polígons via mesh.polygonCount, i canals d’elements de vèrtex via mesh.getElement()
  • Utilitats matemàtiques: Vector2, Vector3, Vector4, Matrix4, Quaternion, i tipus de caixes delimitadores per a càlculs espacials
  • Sistema d’animació: Animació per fotogrames amb AnimationClip, AnimationChannel, i corbes d’interpolació (lineal, Bezier, TCB spline)
  • Opcions específiques del format: Per-format LoadOptions / SaveOptions classes controlen la inversió de coordenades, l’escala, la càrrega de materials i més

Com començar

Instal·leu des de npm. Es requereix Node.js 18 o superior; es recomana TypeScript 5.0+.

npm install @aspose/3d

Carregueu un fitxer OBJ i inspeccioneu l’escena:

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);

for (const node of scene.rootNode.childNodes) {
    if (node.entity && 'controlPoints' in node.entity) {
        const mesh = node.entity as any;
        console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
    }
}

Exporta a glTF

Desa qualsevol escena carregada o construïda a glTF 2.0 binari (GLB):

import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';

const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');

La biblioteca detecta automàticament el format de sortida a partir de l’extensió del fitxer. Passa un GltfSaveOptions instància per controlar la incrustació de materials PBR, textures i la codificació binària vs. JSON.

Construcció d’escena

Construeix una escena programàticament i exporta-la:

import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';

const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');

Vegeu també