Uvod
Zadovoljstvo nam je objaviti 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 je podržan za uvoz; 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().
Podrška za TypeScript prvog reda. 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. Nema izvornih dodataka koji se kompiliraju tijekom instalacije, 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 | Napomene |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Da | Ne | Samo uvoz; čita .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 u paketu 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 podtipu za odabrani format. Opcije učitavanja i spremanja specifične za format izlažu samo svojstva relevantna za taj format; ne postoji ne tipizirani spremnik 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 tipovi vršnih elemenata na VertexElement su svi slično tipizirani i otkrivaju se putem IntelliSensea bez potrebe za konzultiranjem vanjske dokumentacije.
Otvoreni kod i besplatno
Paket je objavljen pod MIT licencom. Izvorni kod je dostupan na GitHubu. Doprinosi, izvješća 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 osnovu 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 cjevovod, biblioteka pokriva najčešće 3D formate razmjene pod permisivnom open-source licencom.
Instalirajte ga danas i javite nam što izradite.