Indledning

Aspose.3D FOSS til TypeScript (@aspose/3d) er et open-source, MIT-licenseret 3D filformat bibliotek primært designet til Node.js. Udviklere der bygger 3d modelvisere, formatkonvertere, geometrisk behandling værktøjer eller serverside 3 D pipelines kan installere det med en enkelt kode. npm install @aspose/3d Biblioteket bruger 3D-teknologi til at udarbejde og distribuere indhold i 3d. require('fs') og: Buffer fra Node.js; brug af browser kræver passende shims for disse API’er og er ikke officielt understøttet.

Biblioteket understøtter de vigtigste udvekslingsformater OBJ, glTF 2.0 / GLB, STL, 3MF og COLLADA til både import og eksport. FBX importer/eksporter klasser findes men er endnu ikke kablet ind i format auto-detektion. Scene graph API spejler den model bekendt fra 3D forfatterværktøjer: en Scene indeholder en rootNode, hver Node kan bære barneknuder og entitetsobjekter (Mesh, Camera, Light), og transformhierarkiet er fuldt tilgængeligt for læsning og skrivning.

Nøgleegenskaber

  • Multiformatsind/udtagning: Import og eksport OBJ (med .mtl Materialer), glTF 2.0 / GLB, STL (binær og ASCII), 3MF og COLLADA fra både filveje og i-memori. Buffer FBX-støtten er ikke trådbundet til automatisk detektion.
  • Scene graph API: Scene, Node, Mesh, Camera, Light Hierarki med fuld forælder/barn-styring; tværgående knuder rekursivt via node.childNodes
  • PBR-materialesystem: Lambert-, Phong- og PBR (metallisk/rughed) materialer, der kan tilgås via: node.material
  • Maskeoperationer:Tilgang til rå data via: mesh.controlPoints (array af Vector4), polygonindekser via mesh.polygonCount, og kanaler via vertex-elementer mesh.getElement()
  • Matematiske værktøjer: Vector2, Vector3, Vector4, Matrix4, Quaternion, og afgrænsningskassetyper til rumlige beregninger
  • Animationssystem: Animassion af nøglebillede med: AnimationClip, AnimationChannel, og interpoleringskurver (linje, Bezier-spline, TCB)
  • Format-specifikke indstillinger:Formal: LoadOptions / SaveOptions klasser kontrol koordinater flipning, skala, materiale belastning og mere

Hvordan man begynder

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

npm install @aspose/3d

Indtast en OBJ-fil og tjek stedet.:

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

Eksport til GFT

Gem enhver indlæst eller konstrueret 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 registrerer automatisk udgangsformatet fra filudvidelsen. GltfSaveOptions Eksempelvis for kontrol over PBR-materialeindlejring, teksturer og binær vs. JSON-kodning.

Scenekonstruktion

Byg en scene programmeret og eksportere 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å: