Bevezetés
Aspose.3D FOSS TypeScript-hez (@aspose/3d) egy nyílt forráskódú, MIT licencű 3D fájlformátum könyvtár a Node.js-hez és a modern böngészői környezetekhez. A 3D modellnézőket, formátumkonvertereket, geometriai feldolgozó eszközöket vagy szerveroldali 3D csővezetékeket építő fejlesztők egyetlen npm install @aspose/3d parancs segítségével azonnal elkezdhetik betölteni, felépíteni és exportálni a 3D tartalmakat.
A könyvtár támogatja a főbb csereformátumokat — OBJ, glTF 2.0 / GLB, STL, 3MF és COLLADA, mind import, mind export esetén. FBX importáló/exportáló osztályok léteznek, de még nincsenek összekapcsolva a formátum automatikus felismerésével. A jelenetgrafikon API tükrözi a 3D szerkesztőeszközökben ismert modellt: egy Scene tartalmaz egy rootNode, minden Node tartalmazhat gyermekcsomópontokat és entitásobjektumokat (Mesh, Camera, Light), és a transzformációs hierarchia teljesen elérhető olvasásra és írásra.
Főbb jellemzők
- Többformátumú I/O: OBJ importálása és exportálása (ezzel
.mtlanyagok), glTF 2.0 / GLB, STL (bináris és ASCII), 3MF, és COLLADA fájlútvonalakról és memóriábanBufferobjektumok. Az FBX támogatás még nincs bekötve az automatikus felismerésbe. - Jelenetgrafikon API:
Scene,Node,Mesh,Camera,Lighthierarchia teljes szülő/gyermek kezelésével; csomópontok rekurzívan bejárása a következőn keresztülnode.childNodes - PBR anyagrendszer: Lambert, Phong és PBR (fémes/érdes) anyagok elérhetők a következőn keresztül
node.entity.material - Háló műveletek: Nyers csúcspont adat elérése a következőn keresztül
mesh.controlPoints(tömbje aVector4), sokszög indexek amesh.polygonCount, és csúcs elem csatornákon keresztülmesh.getElement() - Matematikai segédprogramok:
Vector2,Vector3,Vector4,Matrix4,Quaternion, és határolódoboz típusok térbeli számításokhoz - Animációs rendszer: Kulcskocka animáció ezzel
AnimationClip,AnimationChannel, és interpolációs görbék (lineáris, Bezier, TCB spline) - Formátum-specifikus beállítások: Formátumonként
LoadOptions/SaveOptionsosztályok vezérlik a koordináta fordítást, méretezést, anyag betöltést és egyebeket
Első lépések
Telepítés npm-ből. Node.js 18 vagy újabb szükséges; TypeScript 5.0+ ajánlott.
npm install @aspose/3d
Tölts be egy OBJ fájlt és vizsgáld meg a jelenetet:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
const options = new ObjLoadOptions();
options.enableMaterials = true;
scene.open('model.obj', options);
for (const node of scene.rootNode.childNodes) {
if (node.entity && 'controlPoints' in node.entity) {
const mesh = node.entity as any;
console.log(`Mesh "${node.name}": ${mesh.controlPoints.length} vertices`);
}
}
Exportálás glTF-be
Ments bármely betöltött vagy felépített jelenetet glTF 2.0 bináris (GLB) formátumba:
import { Scene } from '@aspose/3d';
import { ObjLoadOptions } from '@aspose/3d/formats/obj';
const scene = new Scene();
scene.open('input.obj', new ObjLoadOptions());
scene.save('output.glb');
console.log('Exported to output.glb');
A könyvtár automatikusan felismeri a kimeneti formátumot a fájlkiterjesztés alapján. Adjon át egy GltfSaveOptions példányt a PBR anyag beágyazás, textúrák és bináris vs. JSON kódolás felügyeletéhez.
Jelenet felépítése
Építs fel egy jelenetet programozottan, és exportáld:
import { Scene, Node } from '@aspose/3d';
import { Mesh } from '@aspose/3d/entities';
const scene = new Scene();
const mesh = new Mesh();
// ... populate mesh.controlPoints and polygons ...
const node = new Node('myMesh');
node.entity = mesh;
scene.rootNode.addChildNode(node);
scene.save('programmatic.glb');