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, alatnim lancima specifičnim za platformu 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 tipovi su uključeni; nema zasebnih @types/ paket je potreban.

Ključne karakteristike

Višeformatni 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. FBX klase za uvoz/izvoz postoje, ali automatsko otkrivanje formata još nije implementirano, tako da 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‑ovi 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.objDaNeSamo uvoz; čita .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 kategorija u vreme kompajliranja, a ne u vreme izvršavanja. Kada pozovete scene.save(), kompajler proverava da objekat opcija odgovara očekivanom SaveOptions podtipu za izabrani format. Opcije za učitavanje i čuvanje specifične za format izlažu samo svojstva relevantna za taj format; ne postoji ne‑tipizovana torba opcija 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 tipovi vršnih elemenata na VertexElement su svi slično tipizirani i otkrivaju se putem IntelliSense bez konsultovanja spoljne dokumentacije.

Open source i besplatan

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

Zaključak

@aspose/3d verzija 24.12.0 pruža stabilnu, tipiziranu, laganu u 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.