Introduksjon

Aspose.3D FOSS for TypeScript (@aspose/3d) er et åpen kildekode, MIT-lisensiert 3D-filformatbibliotek for Node.js og moderne nettlesermiljøer. Utviklere som bygger 3D-modellvisere, formatkonverterere, geometri‑behandlingsverktøy eller server‑side 3D‑pipelines kan installere det med en enkelt npm install @aspose/3d kommando og umiddelbart begynne å laste, konstruere og eksportere 3D‑innhold.

Biblioteket støtter de viktigste utvekslingsformatene — OBJ, glTF 2.0 / GLB, STL, 3MF og COLLADA for både import og eksport. FBX‑import‑/eksportklasser finnes, men er ennå ikke koblet inn i automatisk formatgjenkjenning. Scene‑graf‑API‑en speiler modellen som er kjent fra 3D‑authoringsverktøy: en Scene inneholder en rootNode, hver Node kan bære undernoder og entitetsobjekter (Mesh, Camera, Light), og transform‑hierarkiet er fullt tilgjengelig for lesing og skriving.

Nøkkelfunksjoner

  • Multi-format I/O: Import og eksport av OBJ (med .mtl materialer), glTF 2.0 / GLB, STL (binær og ASCII), 3MF og COLLADA fra både filstier og minne‑baserte Buffer objekter. FBX‑støtte er ennå ikke koblet inn i automatisk gjenkjenning.
  • Scene‑graf‑API: Scene, Node, Mesh, Camera, Light hierarki med full forelder/under‑administrasjon; traverser noder rekursivt via node.childNodes
  • PBR‑materialsystem: Lambert, Phong og PBR (metallic/roughness) materialer tilgjengelig via node.entity.material
  • Mesh-operasjoner: Tilgang til rå vertex-data via mesh.controlPoints (array av Vector4), polygonindekser via mesh.polygonCount, og vertex element channels via mesh.getElement()
  • Matematikkverktøy: Vector2, Vector3, Vector4, Matrix4, Quaternion, og bounding box-typer for romlige beregninger
  • Animasjonssystem: Nøkkelbildeanimasjon med AnimationClip, AnimationChannel, og interpolasjonskurver (lineær, Bezier, TCB spline)
  • Formatspesifikke alternativer: Per-format LoadOptions / SaveOptions klasser styrer koordinatflipping, skalering, materiallasting og mer

Kom i gang

Installer fra npm. Node.js 18 eller nyere kreves; TypeScript 5.0+ anbefales.

npm install @aspose/3d

Last inn en OBJ‑fil og inspiser 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

Lagre enhver lastet eller konstruert scene til 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 oppdager automatisk utdataformatet fra filendelsen. Pass en GltfSaveOptions instans for kontroll over PBR-materialinnsetting, teksturer og binær vs. JSON-koding.

Scenekonstruksjon

Bygg 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å