Úvod

S potěšením oznamujeme dostupnost Aspose.3D FOSS pro TypeScript jako @aspose/3d npm balíček. Tato knihovna licencovaná pod MIT přináší produkční kvalitu zpracování 3D scén do aplikací v TypeScriptu a Node.js, aniž by vyžadovala nativní binárky, platformně specifické toolchainy 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í typové definice pro TypeScript jsou součástí; není potřeba samostatný @types/ balíček není vyžadován.

Klíčové vlastnosti

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

Plnohodnotná 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. Během instalace se nekompilují žádné nativní doplňky, 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í.

Quick 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 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.objAnoNePouze import; čte .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í napojeno
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 a zdarma

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 na závislosti základnu pro zpracování 3D souborů v TypeScriptu a Node.js. Ať už je případ použití konverze formátů, 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.