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
.mtlmateriaalit, vain tuonti), glTF 2.0 / GLB, STL (binääri- ja ASCII), 3MF ja COLLADA sekä tiedostopolkujen että muistissa olevienBufferobjektien. glTF, STL, 3MF ja COLLADA tukevat myös vientiä. FBX-tuki ei ole vielä kytketty automaattitunnistukseen. - Scene graph -API:
Scene,Node,Mesh,Camera,Lighthierarkia, jossa on täysi vanhempi/lapsi-hallinta; kulje solmut rekursiivisesti käyttäennode.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 onVector4), polygon-indeksit kauttamesh.polygonCount, ja vertex element -kanavat kauttamesh.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/SaveOptionsluokat 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');