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
.mtlmaterijali, samo uvoz), glTF 2.0 / GLB, STL (binarni i ASCII), 3MF i COLLADA iz obje putanje datoteka i iz memorijeBufferobjekti. 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,Lighthijerarhija s potpunim upravljanjem roditelj/dijete; rekurzivno prolazite kroz čvorove putemnode.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 odVector4), indeksi poligona putemmesh.polygonCount, i kanale elemenata vrha putemmesh.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/SaveOptionsklase 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');