Uvod
Sa zadovoljstvom najavljujemo 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 nativnim binarnim fajlovima, platformski specifičnim alatnim lancima ili komercijalnim licencama.
Biblioteka je dizajnirana oko jednostavnog Scene API: učitaj 3D fajl pomoću scene.open(), pregledaj ili transformiši graf scene i zapiši rezultat pomoću scene.save(). Puni TypeScript definicije tipova su uključene; nema zasebnih @types/ paket je obavezan.
Ključne karakteristike
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 FBX fajlovi ne mogu biti učitani putem scene.open().
Prvoklasna podrška za TypeScript. Sve javne klase, enumeracije i tipovi opcija su potpuno tipizovani. IDE‑i sa podrškom za TypeScript jezički servis (VS Code, WebStorm, itd.) pružaju tačno automatsko dovršavanje i inline dokumentaciju za svaki API poziv.
Kompatibilnost sa Node.js 18–22+. Paket je testiran na Node.js 18, 20 i 22 LTS izdanjima. Nema nativnih dodataka koji se kompajliraju tokom instalacije, pa radi na svim platformama koje Node.js podržava.
Jedna runtime zavisnost. Jedina zavisnost je xmldom, korišćena isključivo za parsiranje COLLADA XML. Svi ostali parseri formata su čiste JavaScript implementacije.
MIT licenca. Koristite @aspose/3d u komercijalnim, open-source ili internim projektima bez ograničenja.
Brzi početak
Instalirajte paket:
npm install @aspose/3d
Učitajte OBJ fajl i konvertujte ga 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 da pregledate 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 | Beleške |
|---|---|---|---|---|
| Wavefront OBJ | .obj | Da | Da | Čita/piše .mtl datoteke materijala |
| glTF 2.0 | .gltf | Da | Da | JSON sa eksternim .bin bafer |
| Binarni GLB | .glb | Da | Da | Skup binaryMode: true u GltfSaveOptions |
| STL | .stl | Da | Da | ASCII i binarni STL |
| 3MF | .3mf | Da | Da | Open Packaging Convention arhiva |
| FBX | .fbx | Ne* | Ne* | Importer/exporter postoji, ali automatsko otkrivanje formata nije povezano |
| COLLADA | .dae | Da | Da | Zahteva spakovano xmldom zavisnost |
Prednosti TypeScript-a
Rad sa @aspose/3d u TypeScript-u hvata greške kategorije u vreme kompajliranja, a ne u vreme izvršavanja. Kada pozovete scene.save(), kompajler proverava da options object odgovara očekivanom SaveOptions podtipu za izabrani format. Format‑specifične load and save options izlažu samo svojstva relevantna za taj format; ne postoji ne‑tipizovana options bag za nagađanje.
Na primer, GltfSaveOptions.binaryMode je tipizovan boolean, pa kompajler odbija saveOpts.binaryMode = 'yes' pre nego što se bilo koji kod izvrši. Animacijska svojstva na AnimationClip, kanali materijala na PbrMaterial, i vertex element types na VertexElement su svi slično tipizirani i otkrivaju se putem IntelliSense-a bez konsultovanja spoljne dokumentacije.
Otvoreni kod
Paket je objavljen pod MIT License. Izvorni kod je dostupan na GitHub-u. Doprinosi, izveštaji o greškama i zahtevi za podršku formata su dobrodošli putem issue tracker-a repozitorijuma.
Biblioteka ima jednu runtime zavisnost: xmldom verzija 0.9+, koristi se samo pri čitanju ili pisanju COLLADA fajlova. Svi ostali parseri i writeri su samostalne pure-JavaScript implementacije bez binarnih komponenti.
Početak rada
- npm:
npm install @aspose/3d - Baza znanja: Kako učitati 3D modele u TypeScript-u
- Baza znanja: Kako izvesti 3D scene u glTF/GLB u TypeScript-u
- 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 po zavisnostima osnovu za obradu 3D fajlova u TypeScript-u 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 razmene pod permisivnom open-source licencom.
Instalirajte ga danas i javite nam šta ste izgradili.