Uvod
Zadovoljstvo nam je najaviti dostupnost Aspose.3D FOSS za TypeScript kao @aspose/3d npm paket. Ova MIT-licencirana biblioteka donosi obradu 3D scena proizvodne kvalitete u TypeScript i Node.js aplikacije bez potrebe za izvorim binarnim datotekama, alatnim lancima specifičnim za platformu ili komercijalnim licencama.
Biblioteka je dizajnirana oko jednostavnog Scene API: učitaj 3D datoteku pomoću scene.open(), pregledaj ili transformiraj graf scene i zapiši rezultat pomoću scene.save(). Potpune TypeScript definicije tipova su uključene; nije potreban zaseban @types/ paket.
Ključne značajke
Višestruki format I/O. Paket čita i piše šest glavnih 3D formata u jednoj instalaciji. OBJ, glTF 2.0, GLB, STL, 3MF i COLLADA podržavaju i uvoz i izvoz. Postoje klase za uvoz/izvoz FBX-a, ali automatsko otkrivanje formata još nije implementirano, pa se FBX datoteke ne mogu učitati putem scene.open().
prvoklasna TypeScript podrška. Sve javne klase, enumeracije i tipovi opcija potpuno su tipizirani. IDE-ovi s podrškom za TypeScript jezičnu uslugu (VS Code, WebStorm, itd.) pružaju precizno automatsko dovršavanje i inline dokumentaciju za svaki API poziv.
Kompatibilnost s Node.js 18–22+. Paket je testiran na Node.js 18, 20 i 22 LTS izdanjima. Tijekom instalacije se ne kompiliraju izvorni dodatci, pa radi na svim platformama koje Node.js podržava.
Jedna runtime ovisnost. Jedina ovisnost je xmldom, korišten isključivo za parsiranje COLLADA XML-a. Svi ostali parseri formata su čiste JavaScript implementacije.
MIT licenca. Uporabi @aspose/3d u komercijalnim, open-source ili internim projektima bez ograničenja.
Brzi početak
Instalirajte paket:
npm install @aspose/3d
Učitajte OBJ datoteku i pretvorite je u binarni GLB:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
import { GltfSaveOptions, GltfFormat } from '@aspose/3d/formats/gltf';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
const saveOpts = new GltfSaveOptions();
saveOpts.binaryMode = true; // produce a single .glb file
scene.save('output.glb', GltfFormat.getInstance(), saveOpts);
console.log('Converted to GLB successfully');
Iterirajte kroz čvorove scene kako biste pregledali geometriju:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('model.obj', new ObjLoadOptions());
for (const node of scene.rootNode.childNodes) {
console.log(`Node: ${node.name}`);
if (node.entity) {
console.log(` Entity type: ${node.entity.constructor.name}`);
}
}
Podržani formati
| Format | Ekstenzija | Uvoz | Izvoz | Bilješke |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Da | Da | Čita/pisuje .mtl datoteke materijala |
| glTF 2.0 | .gltf | Da | Da | JSON s vanjskim .bin bafer |
| Binarni GLB | .glb | Da | Da | Postavi binaryMode: true u GltfSaveOptions |
| STL | .stl | Da | Da | ASCII i binarni STL |
| 3MF | .3mf | Da | Da | Open Packaging Convention arhiva |
| FBX | .fbx | Ne* | Ne* | Postoje uvoznik/izvoznik, ali automatsko otkrivanje formata nije povezano |
| COLLADA | .dae | Da | Da | Zahtijeva spakirano xmldom ovisnost |
Prednosti TypeScript-a
Rad s @aspose/3d u TypeScriptu hvata pogreške kategorije u vrijeme kompilacije, a ne u vrijeme izvođenja. Kada pozovete scene.save(), kompajler provjerava da objekt opcija odgovara očekivanom SaveOptions podtip za odabrani format. Opcije učitavanja i spremanja specifične za format izlažu samo svojstva relevantna za taj format; ne postoji neodređena torba opcija za nagađanje.
Na primjer, GltfSaveOptions.binaryMode je tipiziran boolean, pa kompajler odbija saveOpts.binaryMode = 'yes' prije nego što se izvrši bilo koji kod. Svojstva animacije na AnimationClip, kanali materijala na PbrMaterial, i vrste vršnih elemenata na VertexElement su sve slično tipizirane i otkrivaju se putem IntelliSensea bez potrebe za konzultiranjem vanjske dokumentacije.
Open Source
Paket je objavljen pod MIT licencom. Izvorni kod je dostupan na GitHubu. Doprinosi, izvještaji o greškama i zahtjevi za podršku formata su dobrodošli putem sustava za praćenje problema repozitorija.
Biblioteka ima jednu runtime ovisnost: xmldom verzija 0.9+, koristi se samo pri čitanju ili pisanju COLLADA datoteka. Svi ostali parseri i pisci su samostalne implementacije čistog JavaScripta bez binarnih komponenti.
Početak rada
- npm:
npm install @aspose/3d - Baza znanja: Kako učitati 3D modele u TypeScriptu
- Baza znanja: Kako izvesti 3D scene u glTF/GLB u TypeScriptu
- API referenca: Aspose.3D FOSS za TypeScript: Potpuna referenca klasa
- GitHub: aspose-3d/aspose-3d-node
Zaključak
@aspose/3d verzija 24.12.0 pruža stabilnu, tipiziranu, laganu ovisnostima temelj za obradu 3D datoteka u TypeScriptu i Node.js-u. Bilo da je slučaj upotrebe konverzija formata, inspekcija scene, ekstrakcija geometrije ili integracija u pipeline, biblioteka pokriva najčešće 3D formate razmjene pod permisivnom open-source licencom.
Instalirajte ga danas i javite nam što izradite.