Bevezetés

Örömmel jelentjük be, hogy elérhető Aspose.3D FOSS TypeScript-hez mint a @aspose/3d npm csomag. Ez az MIT licenc alatt álló könyvtár termelésre kész 3D jelenetfeldolgozást biztosít a TypeScript és a Node.js alkalmazások számára, anélkül, hogy natív binárisokra, platformfüggő eszközkészletekre vagy kereskedelmi licencekre lenne szükség.

A könyvtár egy egyszerű köré tervezve Scene API: 3D fájlt betölt a scene.open(), ellenőrizze vagy alakítsa át a jelenet gráfot, és írja ki az eredményt a scene.save(). A teljes TypeScript típusdefiníciók be vannak csomagolva; nincs külön @types/ csomag szükséges.

Főbb jellemzők

Többformátumú I/O. A csomag egyetlen telepítéssel hat fő 3D formátumot olvas és ír. OBJ, glTF 2.0, GLB, STL, 3MF és COLLADA egyaránt támogatja az importot és az exportot. FBX importáló/exportáló osztályok léteznek, de a formátum automatikus felismerése még nincs beépítve, így az FBX fájlok nem tölthetők be a via scene.open().

Első osztályú TypeScript támogatás. Minden nyilvános osztály, felsorolás és opciótípus teljesen tipizált. A TypeScript nyelvi szolgáltatást támogató IDE-k (VS Code, WebStorm stb.) pontos automatikus kiegészítést és beágyazott dokumentációt biztosítanak minden API híváshoz.

Node.js 18–22+ kompatibilitás. A csomagot a Node.js 18, 20 és 22 LTS kiadásokkal tesztelték. Telepítéskor nem kerülnek natív kiegészítők fordításra, így minden Node.js által támogatott platformon működik.

Egy futásidejű függőség. Az egyetlen függőség a xmldom, amely kizárólag a COLLADA XML feldolgozásához használatos. A többi formátumparsoló tiszta JavaScript megvalósítás.

MIT licenc. Használat @aspose/3d kereskedelmi, nyílt forráskódú vagy belső projektekben korlátozás nélkül.

Gyors kezdés

Telepítse a csomagot:

npm install @aspose/3d

Töltsön be egy OBJ fájlt, és konvertálja bináris GLB formátumba:

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');

Iteráljon a jelenet csomópontjain, hogy megvizsgálja a geometriát:

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

Támogatott formátumok

FormátumKiterjesztésImportálásExportálásMegjegyzések
Wavefront OBJ.objIgenIgenOlvas/ír .mtl anyagfájlok
glTF 2.0.gltfIgenIgenJSON külsővel .bin puffer
Bináris GLB.glbIgenIgenBeállítás binaryMode: true ban GltfSaveOptions
STL.stlIgenIgenASCII és bináris STL
3MF.3mfIgenIgenOpen Packaging Convention archívum
FBX.fbxNem*Nem*Importáló/exportáló létezik, de a formátum automatikus felismerése nincs bekötve
COLLADA.daeIgenIgenKöveteli a csomagolt xmldom függőséget

A TypeScript előnyei

Munkavégzés a @aspose/3d a TypeScript-ben a kategória hibákat fordítási időben, nem pedig futásidőben észleli. Amikor meghívod scene.save(), a fordító ellenőrzi, hogy az opciók objektuma megfelel-e a várt SaveOptions alattípusnak a kiválasztott formátumhoz. A formátum-specifikus betöltési és mentési opciók csak a formátumra releváns tulajdonságokat fedik fel; nincs nem típusos opciós zsák, amire tippelni kellene.

Például, GltfSaveOptions.binaryMode egy típusos boolean, ezért a fordító elutasítja saveOpts.binaryMode = 'yes' mielőtt bármilyen kód futna. Animációs tulajdonságok a AnimationClip, anyagcsatornák a PbrMaterial, és csúcs elem típusok a VertexElement mind hasonlóan típusosak és felfedezhetők az IntelliSense segítségével anélkül, hogy külső dokumentációt kellene konzultálni.

Nyílt forráskód

A csomag a MIT Licenc. A forráskód elérhető a GitHubon. A közreműködések, hibajelentések és formátumtámogatási kérések szívesen fogadottak a tároló hibakövetőjén keresztül.

A könyvtárnak egy futásidejű függősége van: xmldom 0.9+ verzió, csak COLLADA fájlok olvasásakor vagy írásakor használatos. Minden más parser és író önálló, tiszta JavaScript megvalósítás, bináris komponensek nélkül.

Első lépések

Összegzés

@aspose/3d A 24.12.0-s verzió stabil, típusos, függőségekben kevés alapot biztosít a 3D fájlfeldolgozáshoz TypeScriptben és Node.js‑ben. Akár formátumkonverzió, jelenetellenőrzés, geometria kinyerése vagy feldolgozási lánc integráció a felhasználási eset, a könyvtár lefedi a leggyakoribb 3D csereformátumokat egy engedékeny nyílt forráskódú licenc alatt.

Telepítsd ma, és tudasd velünk, mit építesz.