Uvod

Aspose.3D FOSS za TypeScript (@aspose/3d) je open-source, MIT-licencirana 3D biblioteka za rad s formatima datoteka za Node.js i moderna okruženja preglednika. Programeri koji grade preglednike 3D modela, konvertere formata, alate za obradu geometrije ili poslužiteljske 3D cjevovode mogu je instalirati jednim npm install @aspose/3d naredba i odmah započeti učitavanje, konstruiranje i izvoz 3D sadržaja.

Biblioteka podržava glavne formate razmjene — glTF 2.0 / GLB, STL, 3MF i COLLADA za uvoz i izvoz, te OBJ samo za uvoz. Postoje klase za uvoz/izvoz FBX‑a, ali još nisu povezane s automatskim prepoznavanjem formata. API grafova scene odražava model poznat iz alata za 3D modeliranje: a Scene drži a rootNode, svaki Node može nositi podčvorove i objekte entiteta (Mesh, Camera, Light), a hijerarhija transformacija je potpuno dostupna za čitanje i pisanje.

Ključne značajke

  • Višestruki format I/O: Uvoz OBJ (s .mtl materijali, samo uvoz), glTF 2.0 / GLB, STL (binarni i ASCII), 3MF i COLLADA iz obje putanje datoteka i iz memorije Buffer objekti. glTF, STL, 3MF i COLLADA također podržavaju izvoz. FBX podrška još nije povezana s automatskim otkrivanjem.
  • API grafova scene: Scene, Node, Mesh, Camera, Light hijerarhija s potpunim upravljanjem roditelj/dijete; rekurzivno prolazite kroz čvorove putem node.childNodes
  • PBR sustav materijala: Lambert, Phong i PBR (metallic/roughness) materijali dostupni putem node.entity.material
  • Operacije mreže: Pristup sirovim podacima vrha putem mesh.controlPoints (niz od Vector4), indeksi poligona putem mesh.polygonCount, i kanale elemenata vrha putem mesh.getElement()
  • Matematičke pomoćne funkcije: Vector2, Vector3, Vector4, Matrix4, Quaternion, i vrste okvira ograničenja za prostorne izračune
  • Sustav animacije: Animacija ključnih okvira s AnimationClip, AnimationChannel, i krivulje interpolacije (linearne, Bezier, TCB spline)
  • Opcije specifične za format: Po formatu LoadOptions / SaveOptions klase kontroliraju okretanje koordinata, skaliranje, učitavanje materijala i još mnogo toga

Početak rada

Instalirajte putem npm-a. Potreban je Node.js 18 ili noviji; preporuča se TypeScript 5.0+.

npm install @aspose/3d

Učitajte OBJ datoteku i pregledajte scenu:

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

Izvoz u glTF

Spremi bilo koju učitanu ili konstruiranu scenu u glTF 2.0 binarni (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');

Biblioteka automatski otkriva izlazni format iz ekstenzije datoteke. Proslijedite GltfSaveOptions instancu za kontrolu ugradnje PBR materijala, tekstura i binarnog naspram JSON kodiranja.

Izgradnja scene

Programski izgradite scenu i izvezite je:

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

Vidi također