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

FormatEkstenzijaUvozIzvozBilješke
Wavefront OBJ.objDaDaČita/pisuje .mtl datoteke materijala
glTF 2.0.gltfDaDaJSON s vanjskim .bin bafer
Binarni GLB.glbDaDaPostavi binaryMode: true u GltfSaveOptions
STL.stlDaDaASCII i binarni STL
3MF.3mfDaDaOpen Packaging Convention arhiva
FBX.fbxNe*Ne*Postoje uvoznik/izvoznik, ali automatsko otkrivanje formata nije povezano
COLLADA.daeDaDaZahtijeva 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

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.