Ú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 .mtl materiály), glTF 2.0 / GLB, STL (binární a ASCII), 3MF a COLLADA jak z cest k souborům, tak z paměťových Buffer objektů. Podpora FBX zatím není zapojena do automatické detekce.
  • API grafu scény: Scene, Node, Mesh, Camera, Light hierarchie 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 (pole Vector4), indexy polygonů přes mesh.polygonCount, a kanály elementů vrcholů přes mesh.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 / SaveOptions tří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');

Viz také