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

FormatEkstenzijaUvozIzvozBeleške
Wavefront OBJ.objDaDaČita/piše .mtl datoteke materijala
glTF 2.0.gltfDaDaJSON sa eksternim .bin bafer
Binarni GLB.glbDaDaSkup binaryMode: true u GltfSaveOptions
STL.stlDaDaASCII i binarni STL
3MF.3mfDaDaOpen Packaging Convention arhiva
FBX.fbxNe*Ne*Importer/exporter postoji, ali automatsko otkrivanje formata nije povezano
COLLADA.daeDaDaZahteva 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

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.