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: .mtl U 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. Buffer Podrška FBX još nije uključena u automatsko otkrivanje.
  • API za grafički prikaz scene: Scene, Node, Mesh, Camera, Light hijerarhija s punim roditeljem/dijete upravljanjem; poprečne čvorove rekurzivno putem node.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 putem mesh.polygonCount, i kanala vrhova elemenata putem mesh.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 / SaveOptions klase 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');

Također pogledajte: