Johdanto

Aspose.3D FOSS TypeScriptille (@aspose/3d) on avoimen lähdekoodin, MIT-lisenssiä käyttävä 3D-tiedostomuottikirjasto Node.js:lle ja nykyaikaisille selainympäristöille. Kehittäjät, jotka rakentavat 3D-mallin katselijoita, formaattimuuntimia, geometrian käsittelytyökaluja tai palvelinpuolen 3D-putkia, voivat asentaa sen yhdellä npm install @aspose/3d komennolla ja aloittaa välittömästi 3D-sisällön lataamisen, rakentamisen ja viennin.

Kirjasto tukee suurimpia vaihtomuotoja — glTF 2.0 / GLB, STL, 3MF ja COLLADA sekä tuontiin että vientiin, sekä OBJ vain tuontiin. FBX-tuonti-/vientiluokkia on olemassa, mutta ne eivät ole vielä kytketty formaatin automaattitunnistukseen. Scene Scene graph -API heijastaa 3D‑luontityökalujen tunnettua mallia: rootNode,sisältää Node voi kantaa alisolmuja ja entiteettikohteita (Mesh, Camera, Light), ja transformaatiohierarkia on täysin käytettävissä sekä lukemiseen että kirjoittamiseen.

Keskeiset ominaisuudet

  • Moniformaattinen I/O: Tuo OBJ (materiaalien kanssa .mtl materiaalit, vain tuonti), glTF 2.0 / GLB, STL (binääri- ja ASCII), 3MF ja COLLADA sekä tiedostopolkujen että muistissa olevien Buffer objektien. glTF, STL, 3MF ja COLLADA tukevat myös vientiä. FBX-tuki ei ole vielä kytketty automaattitunnistukseen.
  • Scene graph -API: Scene, Node, Mesh, Camera, Light hierarkia, jossa on täysi vanhempi/lapsi-hallinta; kulje solmut rekursiivisesti käyttäen node.childNodes
  • PBR-materiaalijärjestelmä: Lambert-, Phong- ja PBR (metallinen/karkeus) -materiaalit, jotka ovat käytettävissä kautta node.entity.material
  • Mesh-toiminnot: Pääse käsiksi raakavertexitietoihin kautta mesh.controlPoints (taulukko, jossa on Vector4), polygon-indeksit kautta mesh.polygonCount, ja vertex element -kanavat kautta mesh.getElement()
  • Matematiikkatyökalut: Vector2, Vector3, Vector4, Matrix4, Quaternion, ja bounding box -tyypit spatiaalilaskentaa varten
  • Animaatiojärjestelmä: Avainruutuanimaatio käyttäen AnimationClip, AnimationChannel, ja interpolointikäyrät (lineaarinen, Bezier, TCB-spline)
  • Formaattiin liittyvät asetukset: Formaattikohtainen LoadOptions / SaveOptions luokat hallitsevat koordinaattien kääntämistä, skaalausta, materiaalin lataamista ja muuta

Aloittaminen

Asenna npm:stä. Node.js 18 tai uudempi vaaditaan; TypeScript 5.0+ suositellaan.

npm install @aspose/3d

Lataa OBJ‑tiedosto ja tarkastele kohtaus:

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

Vie glTF:iin

Tallenna ladattu tai rakennettu kohtaus glTF 2.0 -binääriin (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');

Kirjasto havaitsee automaattisesti tulostusformaatin tiedostopäätteestä. Anna GltfSaveOptions instanssi hallitaksesi PBR-materiaalin upottamista, tekstuureja sekä binaari- ja JSON-koodausta.

Kohtauksen rakentaminen

Rakenna kohtaus ohjelmallisesti ja vie se:

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

Katso myös