Johdanto
Aspose.3D FOSS TypeScriptille (@aspose/3d) on avoimen lähdekoodin, MIT-lisenssiä käyttävä 3D-tiedostomuotokirjasto 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 tärkeimpiä vaihtomuotoja — OBJ, glTF 2.0 / GLB, STL, 3MF ja COLLADA sekä tuonnissa että viennissä. FBX-tuonti-/vienti-luokkia on olemassa, mutta ne eivät ole vielä kytketty formaatin automaattitunnistukseen. Scene graph -API heijastaa 3D‑luontityökalujen tunnettua mallia: Scene sisältää rootNode, jokainen Node voi kantaa alisolmuja ja entiteettikohteita (Mesh, Camera, Light), ja transformaatiohierarkia on täysin käytettävissä sekä lukemiseen että kirjoittamiseen.
Keskeiset ominaisuudet
- Moniformaatti I/O: Tuo ja vie OBJ (kanssa
.mtlmateriaaleja), glTF 2.0 / GLB, STL (binääri- ja ASCII), 3MF ja COLLADA sekä tiedostopolkujen että muistin sisälläBufferobjekteja. FBX-tuki ei ole vielä kytketty automaattitunnistukseen. - Kohtausgrafiikka-API:
Scene,Node,Mesh,Camera,Lighthierarkia, jossa on täysi vanhempi/lapsi-hallinta; kulje solmut rekursiivisesti kauttanode.childNodes - PBR-materiaalijärjestelmä: Lambert-, Phong- ja PBR (metallinen/karkeus) -materiaalit käytettävissä kautta
node.entity.material - Mesh-toiminnot: Pääsy raakavertexitietoihin kautta
mesh.controlPoints(taulukkoVector4), polygonin indeksit kauttamesh.polygonCount, ja vertex element channels kauttamesh.getElement() - Matematiikkatyökalut:
Vector2,Vector3,Vector4,Matrix4,Quaternion, ja bounding box -tyypit tilallisia laskelmia varten - Animaatiojärjestelmä: Avainruutuanimaatio kanssa
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 kohtausgraafia:
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:ksi
Tallenna ladattu tai rakennettu kohtaus graafi glTF 2.0 -binäärimuotoon (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 PBR-materiaalin upottamisen, tekstuurien sekä binaari- ja JSON-koodauksen hallintaan.
Skenen rakentaminen
Rakenna skene 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');