Introduktion

Aspose.3D FOSS för TypeScript (@aspose/3d) är ett open-source, MIT-licensierat 3D-filformatbibliotek för Node.js och moderna webbläsarmiljöer. Utvecklare som bygger 3D-modellvisare, formatkonverterare, geometriprocessverktyg eller server‑sidiga 3D‑pipelines kan installera det med ett enda npm install @aspose/3d kommando och omedelbart börja ladda, konstruera och exportera 3D‑innehåll.

Biblioteket stödjer de viktigaste utbytesformaten — glTF 2.0 / GLB, STL, 3MF och COLLADA för både import och export, samt OBJ endast för import. FBX‑import‑/export‑klasser finns men är ännu inte kopplade till automatisk formatdetektering. Scene Scene‑graph‑API:n speglar den modell som är bekant från 3D‑authoringsverktyg: en rootNode,innehåller en Node kan bära undernoder och entitetsobjekt (Mesh, Camera, Light), och transformhierarkin är fullt åtkomlig för läsning och skrivning.

Nyckelfunktioner

  • Multi‑format I/O: Importera OBJ (med .mtl material, endast import), glTF 2.0 / GLB, STL (binär och ASCII), 3MF och COLLADA från både filsökvägar och minnes‑ Buffer objekt. glTF, STL, 3MF och COLLADA stödjer även export. FBX‑stöd är ännu inte kopplat till automatisk detektering.
  • Scene‑graph‑API: Scene, Node, Mesh, Camera, Light hierarki med full föräldra/underhantering; traversera noder rekursivt via node.childNodes
  • PBR‑materialsystem: Lambert, Phong och PBR (metallic/roughness) material åtkomliga via node.entity.material
  • Meshoperationer: Åtkomst till rå vertexdata via mesh.controlPoints (array av Vector4), polygonindex via mesh.polygonCount, och vertex-elementkanaler via mesh.getElement()
  • Matematikverktyg: Vector2, Vector3, Vector4, Matrix4, Quaternion, och typer av begränsningsboxar för rumsliga beräkningar
  • Animationssystem: Nyckelbildsanimation med AnimationClip, AnimationChannel, och interpolationskurvor (linjär, Bezier, TCB-spline)
  • Format-specifika alternativ: Per-format LoadOptions / SaveOptions klasser styr koordinatvändning, skala, materialinläsning och mer

Komma igång

Installera via npm. Node.js 18 eller senare krävs; TypeScript 5.0+ rekommenderas.

npm install @aspose/3d

Läs in en OBJ‑fil och inspektera scenen:

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`);
    }
}

Exportera till glTF

Spara vilken laddad eller konstruerad scen som helst till glTF 2.0 binär (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');

Biblioteket upptäcker automatiskt utdataformatet från filändelsen. Skicka en GltfSaveOptions instans för kontroll över PBR-materialinbäddning, texturer och binär vs. JSON-kodning.

Scenkonstruktion

Bygg en scen programatiskt och exportera den:

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

Se även