Úvodní článek

3D FOSS pro TypeScript (@aspose/3d) je knihovna 3D formátů s otevřeným zdrojovým kódem, licencovaná MIT. Je navržena především pro Node.js. Vývojáři vytvářejí zobrazovače modelů 3d, konvertory formátu, nástroje na zpracování geometrie nebo serverové 3 D potrubí a mohou ji instalovat jedinou aplikací. npm install @aspose/3d Knihovna používá 3D příkazy a okamžitě začít načítat, vytvářet a exportovat 3d obsah. require('fs') a) Buffer z Node.js; používání prohlížeče vyžaduje vhodné shims pro tyto API a není oficiálně podporováno.

Knihovna podporuje hlavní formáty výměny OBJ, glTF 2.0 / GLB, STL, 3MF a COLLADA pro dovoz i vývoz. Existují třídy FBX importér/exportér, ale ještě nejsou propojeny s automatickým detekcí formátu. API grafu scény odráží model známý z nástrojů pro vytváření 3D: Scene drží v sobě: rootNode, každý Node může přenášet dětské uzly a objekty entit (Mesh, Camera, Light), a hierarchie transformace je plně přístupná pro čtení i psaní.

Klíčové prvky

  • Multifomátové V/V: Dovoz a vývoz OBJ (s: .mtl materiály), glTF 2.0 / GLB, STL (binární a ASCII), 3MF a COLLADA z obou směrů souborů i v paměti. Buffer Podpora FBX ještě není připojená k automatickému detekci.
  • API grafu scény: Scene, Node, Mesh, Camera, Light hierarchii s plným vedením rodiče/děti; průřezové uzly rekurzivně prostřednictvím node.childNodes
  • Systém materiálů PBR: Lambert, Phong a PBR (metal/hrubost) materiály přístupné prostřednictvím: node.material
  • Provoz sítě:Přístup k datům o vrcholu pomocí: mesh.controlPoints (pořadí Vector4), indexy polygonů prostřednictvím mesh.polygonCount, a kanály vrcholu prostřednictvím mesh.getElement()
  • Matematické služby: Vector2, Vector3, Vector4, Matrix4, Quaternion, a typy ohraničovacích polí pro prostorové výpočty
  • Systém animace: animace klíčového rámu s: AnimationClip, AnimationChannel, a interpolační křivky (lineární, Bezierova, TCB spline)
  • Možnosti specifické pro formát: V formátu LoadOptions / SaveOptions třídy ovládání koordinát přepínání, měřítko, nakládka materiálu a další

Jak začít?

Instalace z npm. Je nutná Node.js 18 nebo novější verze; doporučuje se TypeScript 5.0+.

asposefoss/3d is not yet published — build from source until it ships. See the project README for build instructions.

Nahrdej soubor a prohlédni místo činu .:

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

Vývoz do glTF

Uložte jakoukoli načtenou nebo vytvořenou scénu do binárního systému 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 rozšíření souboru. GltfSaveOptions Příklad pro kontrolu vložení materiálu PBR, textury a binární versus kódování JSON.

Výstavba scény

Programaticky vytvořit scénu a exportovat 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é: