Úvod

S potěšením oznamujeme dostupnost Aspose.3D FOSS pro TypeScript jako @aspose/3d npm balíček. Tato MIT-licencovaná knihovna přináší zpracování 3D scén v produkční kvalitě do aplikací v TypeScript a Node.js, aniž by vyžadovala nativní binární soubory, nástroje specifické pro platformu nebo komerční licence.

Knihovna je navržena kolem jednoduchého Scene API: načíst 3D soubor pomocí scene.open(), prohlédnout nebo transformovat graf scény a výsledek zapsat pomocí scene.save(). Kompletní definice typů pro TypeScript jsou součástí balíčku; není vyžadován žádný @types/ samostatný balíček.

Klíčové vlastnosti

Víceformátové I/O. Balíček čte a zapisuje šest hlavních 3D formátů v jedné instalaci. OBJ, glTF 2.0, GLB, STL, 3MF a COLLADA podporují jak import, tak export. Třídy pro import/export FBX existují, ale automatické rozpoznání formátu zatím není implementováno, takže soubory FBX nelze načíst pomocí scene.open().

Prvotřídní podpora TypeScriptu. Všechny veřejné třídy, výčty a typy možností jsou plně typované. IDE s podporou TypeScript language service (VS Code, WebStorm atd.) poskytují přesné automatické doplňování a inline dokumentaci pro každý API volání.

Kompatibilita s Node.js 18–22+. Balíček je testován proti verzím Node.js 18, 20 a 22 LTS. Žádné nativní doplňky nejsou během instalace kompilovány, takže funguje na všech platformách, které Node.js podporuje.

Jedna runtime závislost. Jedinou závislostí je xmldom, používá se výhradně pro parsování COLLADA XML. Všechny ostatní parsery formátů jsou čisté implementace v JavaScriptu.

Licence MIT. Použít @aspose/3d v komerčních, open-source nebo interních projektech bez omezení.

Rychlý start

Nainstalujte balíček:

npm install @aspose/3d

Načtěte soubor OBJ a převeďte jej na binární 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 přes uzly scény a prohlédněte si geometrii:

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átPříponaImportExportPoznámky
Wavefront OBJ.objAnoAnoČte/zapisuje .mtl soubory materiálů
glTF 2.0.gltfAnoAnoJSON s externími .bin buffer
Binární GLB.glbAnoAnoNastavit binaryMode: true v GltfSaveOptions
STL.stlAnoAnoASCII a binární STL
3MF.3mfAnoAnoarchiv Open Packaging Convention
FBX.fbxNe*Ne*Importér/exportér existuje, ale automatické rozpoznání formátu není zapojeno
COLLADA.daeAnoAnoVyžaduje zabalené xmldom závislost

Výhody TypeScriptu

Práce s @aspose/3d v TypeScript zachytává chyby kategorií při kompilaci místo během běhu. Když voláte scene.save(), kompilátor ověřuje, že objekt možností odpovídá očekávanému SaveOptions podtyp pro zvolený formát. Formátově specifické možnosti načítání a ukládání vystavují pouze vlastnosti relevantní pro tento formát; neexistuje žádná netypovaná sbírka možností, kterou by bylo třeba hádat.

Například, GltfSaveOptions.binaryMode je typovaný boolean, takže kompilátor odmítá saveOpts.binaryMode = 'yes' před spuštěním jakéhokoli kódu. Vlastnosti animace na AnimationClip, kanály materiálu na PbrMaterial, a typy vrcholových elementů na VertexElement jsou všechny podobně typované a objevitelných pomocí IntelliSense bez nutnosti konzultovat externí dokumentaci.

Open Source

Balíček je publikován pod MIT License. Zdrojový kód je dostupný na GitHubu. Přispěvky, hlášení chyb a žádosti o podporu formátů jsou vítány prostřednictvím issue trackeru repozitáře.

Knihovna má jednu runtime závislost: xmldom verze 0.9+, používá se pouze při čtení nebo zápisu souborů COLLADA. Všechny ostatní parsery a zapisovače jsou samostatné čistě JavaScriptové implementace bez binárních komponent.

Začínáme

Závěr

@aspose/3d verze 24.12.0 poskytuje stabilní, typovanou, lehkou z hlediska závislostí základnu pro zpracování 3D souborů v TypeScriptu a Node.js. Ať už je případ použití konverze formátu, inspekce scény, extrakce geometrie nebo integrace do pipeline, knihovna pokrývá nejběžnější 3D výměnné formáty pod permisivní open-source licencí.

Nainstalujte ji ještě dnes a dejte nám vědět, co vytvoříte.