Introducció

↑ «L’Edifòrum de la Llengua d’Escriptura» (@aspose/3d) és una biblioteca de format de fitxers 3D amb font oberta, llicenciada pel MIT principalment dissenyada per a Node.js. Els desenvolupadors construeixen visualitzadors de model 3d, convertidors de formats, eines de processament geomètrica o tubs 3 D del servidor poden instal·lar-lo amb un únic mòdul. npm install @aspose/3d Comanda i comença immediatament la carrega, construcció i exportació de contingut 3D. La biblioteca utilitza el material que es troba a l’interior del web. require('fs') i Buffer de Node.js; l’ús del navegador requereix les xims adequades per a aquestes APIs i no està oficialment recolzat.

La biblioteca suporta els formats d’intercanvi principals - OBJ, glTF 2.0 / GLB, STL, 3MF i COLLADA per tant l’import i l’exportació. classes de importador/exportador FBX existeixen però encara no estan connectades a la detecció automàtica del format. API de gràfic de escena mirra el model familiar de les eines d’autorització 3D: un Scene Tenim una rootNode,Cada un Node Els nens poden portar objectes de la persona (Mesh, Camera, LightLa jerarquia de la transformació és totalment accessible per a llegir i escriure.

Característiques clau

  • Màster I/O:Import i exportació (objet) amb .mtl materials), glTF 2.0 / GLB, STL (binari i ASCII), 3MF, i COLLADA des de les dues pistes de fitxers i en memòria Buffer El suport FBX encara no està connectat a la detecció automàtica.
  • El Grau de l’API: Scene, Node, Mesh, Camera, Light ierarquia amb plena gestió parental/infant; travessar nodes recursivament a través de la node.childNodes
  • Sistema de material PBR: Lambert, Phong i PBR (metàl·lic/sòl) materials accessibles a través de la node.material
  • Operacions de mesh:Accés a les dades de vertex cru per mitjà mesh.controlPoints (Araïda de Vector4Indicadors de poligons a través del mesh.polygonCount,Canals de l’element vertex a través del mesh.getElement()
  • Utilitats matemàtiques: Vector2, Vector3, Vector4, Matrix4, Quaternion, i els tipus de caixa límit per a càlculs espacials
  • Sistema d’animació:· Animació amb el Keyframe AnimationClip, AnimationChannel, i les curves d’interpolament (linear, Bezier, TCB)
  • Opcions específiques de format:Per-formació LoadOptions / SaveOptions classes de control coordinat flipping, escala, càrrega del material i més

Començar a fer

Instal·lació des de l’instant. node.js 18 o més tard es requereix; TipiScript 5.0+ es recomana.

npm install @aspose/3d

Carregar un fitxer OBJ i inspeccionar la 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`);
    }
}

Exportació a la GTTF

Salva 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 de l’extensori de fitxers. Passar a GltfSaveOptions Per exemple, per controlar la incorporació de material PBR, textures i codificació binària vs. JSON.

Escena de construcció

Construeix una escena programàticament i l’exporta:

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');

Veure també