Uvod u članak
Aspose.3D FOSS za TypeScript (@aspose/3d) je otvorena izvorna, MIT-licencirana 3D format biblioteka koja je prvenstveno dizajnirana za Node.js. Razvijači koji grade 3d modela pregledača, pretvarače formata, alate za obradu geometrije ili serverske 3 D cijevi mogu ga instalirati jednim jednostavnim programom. npm install @aspose/3d Komanda i odmah početi s punjenjem, izgradnju i izvoz 3D sadržaja. require('fs') i u članku 1. Buffer Od Node.js; korištenje preglednika zahtijeva odgovarajuće shims za te API-e i nije službeno podržano.
Biblioteka podržava glavne formate razmjene OBJ, glTF 2.0 / GLB, STL, 3MF i COLLADA za uvoz i izvoz. FBX klase uvoznika/izvoznika postoje ali još nisu vezane u automatsko otkrivanje formata. API grafikona scene odražava model poznat iz alata za 3D autorstvo: a Scene ima: rootNode, svaki Node može nositi dječje čvorove i objekte entiteta (Mesh, Camera, Light), a hijerarhija transformacije je u potpunosti dostupna za čitanje i pisanje.
Glavne karakteristike
- Uputstva i ispuštanja u više formata:Uvoz i izvoz OBJ (s:
.mtlU ovom slučaju, u skladu s člankom 7. stavkom 1. točka (b) Uredbe (EU) br. 1071/2013 i Uredbom Komisije (EZ) 2015/751 o zaštiti podataka iz članka 4. stavka 2. točke (a) te Direktive od 8. veljače 2016.BufferPodrška FBX još nije uključena u automatsko otkrivanje. - API za grafički prikaz scene:
Scene,Node,Mesh,Camera,Lighthijerarhija s punim roditeljem/dijete upravljanjem; poprečne čvorove rekurzivno putemnode.childNodes - PBR sustav materijala:U ovom slučaju, u skladu s člankom 21. stavkom 1. točka (a) Uredbe (EZ) br. 1272/2005, za koje je navedeno da su:
node.material - Operativne aktivnosti mrežnih mreža:Pristup sirovim podacima o vrhu putem:
mesh.controlPoints(svrha od:Vector4), indeks poligona putemmesh.polygonCount, i kanala vrhova elemenata putemmesh.getElement() - Matematičke usluge:
Vector2,Vector3,Vector4,Matrix4,Quaternion, i tipovi graničnih polja za prostorno izračunavanje - Sistem animacije:Animacija ključnih slika s:
AnimationClip,AnimationChannel, i interpolacijske krivulje (linearna, Bezierova, TCB splina) - Opcije specifične za oblikovanje:U skladu s člankom 21. stavkom 1.
LoadOptions/SaveOptionsklase kontrolirati koordinate prebacivanje, razmjer, materijal opterećenje i više
Početak
Instalirajte iz npm. Potrebno je Node.js 18 ili noviji; preporučuje se TypeScript 5.0+.
npm install @aspose/3d
Uplatite OBJ datoteku i pregledati mjesto zločina:
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-u
Svaka učita ili izgrađena scena u glTF 2.0 binarnom (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 od proširenja datoteke. Prenosite GltfSaveOptions Primjer za kontrolu uklopenja PBR materijala, tekstura i binarno vs. JSON kodiranje.
Izgradnja pozornice
Programski izraditi scenu i izvoziti 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');