Introduktion

Aspose.3D FOSS til TypeScript (@aspose/3d) er et open-source, MIT-licenseret 3D-filformatbibliotek til Node.js og moderne browsermiljøer. Udviklere, der bygger 3D-modelvisere, formatkonvertere, geometri-behandlingsværktøjer eller server-side 3D-pipelines, kan installere det med en enkelt npm install @aspose/3d kommando og straks begynde at indlæse, konstruere og eksportere 3D-indhold.

Biblioteket understøtter de vigtigste udvekslingsformater — OBJ, glTF 2.0 / GLB, STL, 3MF og COLLADA både for import og eksport. FBX-import/eksport-klasser findes, men er endnu ikke integreret i formatets auto-detektion. Scenegraph-API’en spejler den model, der er kendt fra 3D-forfatterværktøjer: en Scene indeholder en rootNode, hver Node kan bære undernoder og entitetsobjekter (Mesh, Camera, Light), og transformhierarkiet er fuldt tilgængeligt for læsning og skrivning.

Nøglefunktioner

  • Multi-format I/O: Import og eksport af OBJ (med .mtl materialer), glTF 2.0 / GLB, STL (binær og ASCII), 3MF og COLLADA fra både filstier og in-memory Buffer objekter. FBX-support er endnu ikke integreret i auto-detektion.
  • Scenegraph-API: Scene, Node, Mesh, Camera, Light hierarki med fuld forælder/understyring; gennemløb noder rekursivt via node.childNodes
  • PBR-materialsystem: Lambert, Phong og PBR (metallic/roughness) materialer tilgængelige via node.entity.material
  • Mesh-operationer: Få adgang til rå vertex-data via mesh.controlPoints (array af Vector4), polygonindekser via mesh.polygonCount, og vertex-elementkanaler via mesh.getElement()
  • Matematikværktøjer: Vector2, Vector3, Vector4, Matrix4, Quaternion, og bounding box-typer til rumlige beregninger
  • Animationssystem: Keyframe-animation med AnimationClip, AnimationChannel, og interpolationskurver (lineær, Bezier, TCB-spline)
  • Format-specifikke indstillinger: Per-format LoadOptions / SaveOptions klasser styrer koordinatflipping, skalering, materialelæsning og mere

Kom i gang

Installer fra npm. Node.js 18 eller nyere er påkrævet; TypeScript 5.0+ anbefales.

npm install @aspose/3d

Indlæs en OBJ‑fil og inspicer 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`);
    }
}

Eksporter til glTF

Gem enhver indlæst eller konstrueret scene som 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 auto-detekterer outputformatet ud fra filendelsen. Send en GltfSaveOptions instans for kontrol over PBR-materialeindlejring, teksturer og binær vs. JSON-kodning.

Sceneopbygning

Byg en scene programmatisk og eksporter 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 også