Úvod
Aspose.3D FOSS pro TypeScript (@aspose/3d) je open-source knihovna pro formáty 3D souborů s licencí MIT pro Node.js a moderní prohlížečová prostředí. Vývojáři, kteří vytvářejí prohlížeče 3D modelů, konvertory formátů, nástroje pro zpracování geometrie nebo serverové 3D pipeline, ji mohou nainstalovat jedním npm install @aspose/3d příkazem a okamžitě začít načítat, vytvářet a exportovat 3D obsah.
Knihovna podporuje hlavní výměnné formáty — OBJ, glTF 2.0 / GLB, STL, 3MF a COLLADA jak pro import, tak pro export. Třídy pro import/export FBX existují, ale zatím nejsou zapojeny do automatické detekce formátu. API grafu scény odráží model známý z 3D autorovacích nástrojů: a Scene obsahuje rootNode, každý Node může nést podřízené uzly a entity objekty (Mesh, Camera, Light), a hierarchie transformací je plně přístupná pro čtení i zápis.
Hlavní funkce
- Víceformátové I/O: Import a export OBJ (s
.mtlmateriály), glTF 2.0 / GLB, STL (binární a ASCII), 3MF a COLLADA jak z cest k souborům, tak z paměťovýchBufferobjektů. Podpora FBX zatím není zapojena do automatické detekce. - API grafu scény:
Scene,Node,Mesh,Camera,Lighthierarchie s úplnou správou rodič/potomek; procházet uzly rekurzivně pomocínode.childNodes - Systém PBR materiálů: materiály Lambert, Phong a PBR (metallic/roughness) přístupné přes
node.entity.material - Operace sítě: Přístup k surovým datům vrcholů přes
mesh.controlPoints(poleVector4), indexy polygonů přesmesh.polygonCount, a kanály elementů vrcholů přesmesh.getElement() - Matematické utility:
Vector2,Vector3,Vector4,Matrix4,Quaternion, a typy ohraničujících krabic pro prostorové výpočty - Systém animací: Klíčová snímková animace s
AnimationClip,AnimationChannel, a interpolační křivky (lineární, Bézier, TCB spline) - Formátově specifické možnosti: Per-formát
LoadOptions/SaveOptionstřídy řídí převracení souřadnic, měřítko, načítání materiálů a další
Začínáme
Instalace z npm. Je vyžadován Node.js 18 nebo novější; doporučuje se TypeScript 5.0+.
npm install @aspose/3d
Načtěte soubor OBJ a prozkoumejte scénu:
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`);
}
}
Exportovat do glTF
Uložte libovolnou načtenou nebo vytvořenou scénu do binárního formátu glTF 2.0 (GLB):
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');
Knihovna automaticky detekuje výstupní formát z přípony souboru. Předávejte GltfSaveOptions instanci pro kontrolu vkládání PBR materiálů, textur a binárního vs. JSON kódování.
Konstrukce scény
Vytvořte scénu programově a exportujte ji:
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');