Úvod

S radosťou oznamujeme dostupnosť Aspose.3D FOSS pre TypeScript ako @aspose/3d npm balík. Táto MIT-licencovaná knižnica prináša produkčnej kvality spracovanie 3D scén do aplikácií v TypeScripte a Node.js bez potreby natívnych bináriek, špecifických nástrojových reťazcov pre platformu ani komerčných licencií.

Knižnica je navrhnutá okolo jednoduchého Scene API: načítať 3D súbor pomocou scene.open(), skontrolovať alebo transformovať graf scény a zapísať výsledok pomocou scene.save(). Kompletné definície typov pre TypeScript sú zahrnuté; nie je potrebný žiadny samostatný @types/ balík.

Kľúčové funkcie

Vstup/výstup viacerých formátov. Balík číta a zapisuje šesť hlavných 3D formátov v jednej inštalácii. OBJ je podporovaný pre import; glTF 2.0, GLB, STL, 3MF a COLLADA podporujú import aj export. Triedy pre import/export FBX existujú, ale automatická detekcia formátu ešte nie je implementovaná, takže FBX súbory nie je možné načítať pomocou scene.open().

Prvotriedna podpora TypeScriptu. Všetky verejné triedy, výčty a typy možností sú plne typované. IDE s podporou TypeScript jazykovej služby (VS Code, WebStorm atď.) poskytujú presné automatické dopĺňanie a inline dokumentáciu pre každé volanie API.

Kompatibilita s Node.js 18–22+. Balík je testovaný proti verziám Node.js 18, 20 a 22 LTS. Počas inštalácie sa nekompilujú žiadne natívne doplnky, takže funguje na všetkých platformách, ktoré Node.js podporuje.

Jedna runtime závislosť. Jedinou závislosťou je xmldom, používaná výhradne na parsovanie COLLADA XML. Všetky ostatné parsery formátov sú čisté implementácie v JavaScripte.

Licencia MIT. Použiť @aspose/3d v komerčných, open-source alebo interných projektoch bez obmedzenia.

Rýchly štart

Nainštalujte balík:

npm install @aspose/3d

Načítajte OBJ súbor a konvertujte ho na binárny 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');

Iterujte cez uzly scény a prehliadajte geometriu:

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}`);
    }
}

Podporované formáty

FormátRozšírenieImportExportPoznámky
Wavefront OBJ.objÁnoNieIba import; číta .mtl súbory materiálov
glTF 2.0.gltfÁnoÁnoJSON s externým .bin buffer
Binárny GLB.glbÁnoÁnoNastaviť binaryMode: true v GltfSaveOptions
STL.stlÁnoÁnoASCII a binárny STL
3MF.3mfÁnoÁnoarchív Open Packaging Convention
FBX.fbxNie*Nie*Importér/exportér existuje, ale automatické rozpoznávanie formátu nie je prepojené
COLLADA.daeÁnoÁnoVyžaduje bundled xmldom závislosť

Výhody TypeScriptu

Práca s @aspose/3d v TypeScripte zachytáva chyby kategórie počas kompilácie namiesto v čase behu. Keď voláte scene.save(), kompilátor overuje, že objekt možností zodpovedá očakávanému SaveOptions podtypu pre zvolený formát. Formátovo špecifické možnosti načítania a ukladania odhaľujú iba vlastnosti relevantné pre daný formát; neexistuje nešpecifikovaná sada možností, o ktorej by sa muselo hádať.

Napríklad, GltfSaveOptions.binaryMode je typovaný boolean, takže kompilátor odmietne saveOpts.binaryMode = 'yes' predtým, ako sa spustí akýkoľvek kód. Vlastnosti animácie na AnimationClip, kanály materiálu na PbrMaterial, a typy vrcholových prvkov na VertexElement sú všetky podobne typované a objaviteľné prostredníctvom IntelliSense bez potreby konzultovať externú dokumentáciu.

Open Source a zadarmo

Balík je publikovaný pod MIT License. Zdrojový kód je dostupný na GitHub. Príspevky, hlásenia chýb a požiadavky na podporu formátov sú vítané prostredníctvom issue trackeru úložiska.

Knižnica má jednu runtime závislosť: xmldom verzia 0.9+, používaná iba pri čítaní alebo zápise súborov COLLADA. Všetky ostatné parsery a zapisovače sú samostatné pure-JavaScript implementácie bez binárnych komponentov.

Začíname

Záver

@aspose/3d verzia 24.12.0 poskytuje stabilný, typovaný, s nízkymi závislosťami základ pre spracovanie 3D súborov v TypeScript a Node.js. Či už je prípad použitia konverzia formátu, kontrola scény, extrakcia geometrie alebo integrácia do pipeline, knižnica pokrýva najbežnejšie 3D výmenné formáty pod permisívnou open-source licenciou.

Nainštalujte si ho ešte dnes a dajte nám vedieť, čo vytvoríte.