Uvod
Aspose.3D FOSS za TypeScript (@aspose/3d) je open‑source, MIT‑licencirana biblioteka za 3D formate datoteka za Node.js i moderne pregledače. Programeri koji razvijaju 3D preglednike modela, konvertore formata, alate za obradu geometrije ili server‑side 3D pipeline‑ove mogu je instalirati jednim npm install @aspose/3d komandom i odmah početi da učitavaju, konstrušu i izvezu 3D sadržaj.
Biblioteka podržava glavne formate za razmenu — glTF 2.0 / GLB, STL, 3MF i COLLADA za uvoz i izvoz, i OBJ samo za uvoz. FBX klase za uvoz/izvoz postoje, ali još nisu povezane sa automatskim otkrivanjem formata. API grafika scene odražava model poznat iz 3D alata za autorstvo: a Scene sadrži rootNode, svaki Node može nositi podčvorove i objekte entiteta (Mesh, Camera, Light).
Ključne karakteristike
- Višestruki format I/O: Uvoz OBJ (sa
.mtlmaterijalima, samo uvoz), glTF 2.0 / GLB, STL (binarni i ASCII), 3MF i COLLADA iz putanja do datoteka i iz memorijeBufferobjekata. glTF, STL, 3MF i COLLADA takođe podržavaju izvoz. FBX podrška još nije povezana sa automatskim otkrivanjem. - API grafičkog stabla scene:
Scene,Node,Mesh,Camera,Lighthijerarhija sa potpunim upravljanjem roditelj/deca; rekurzivno prolazite kroz čvorove putemnode.childNodes - PBR sistem materijala: Lambert, Phong i PBR (metallic/roughness) materijali dostupni putem
node.entity.material - Operacije mreže: Pristup sirovim podacima o vrhu putem
mesh.controlPoints(niz odVector4), indeksi poligona putemmesh.polygonCount, i kanali elemenata vrha putemmesh.getElement() - Matematički alati:
Vector2,Vector3,Vector4,Matrix4,Quaternion, i tipovi bounding box-a za prostorne proračune - Sistem animacije: Анимација кључних кадрова са
AnimationClip,AnimationChannel, и криве интерполације (линеарне, Bezier, TCB spline) - Опције специфичне за формат: По формату
LoadOptions/SaveOptionsкласе контролишу обртање координата, скалирање, учитавање материјала и још много тога
Početak
Instalirajte putem npm‑a. Potreban je Node.js 18 ili noviji; preporučuje 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`);
}
}
Izvezi u glTF
Sačuvajte bilo koju učitanu ili konstruisanu 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');
Библиотека аутоматски открива излазни формат из екстензије датотеке. Проследите GltfSaveOptions инстанцу за контролу уметања PBR материјала, текстура и бинарног у односу на JSON кодирање.
Konstrukcija 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');