Inleiding
Aspose.3D FOSS voor TypeScript (@aspose/3d) is een open-source, MIT-gelicentieerde 3D-bestandsformaatbibliotheek voor Node.js en moderne browseromgevingen. Ontwikkelaars die 3D-modelviewers, formaatconverters, geometrieverwerkingstools of server-side 3D-pijplijnen bouwen, kunnen het installeren met een enkele npm install @aspose/3d commando en onmiddellijk beginnen met laden, construeren en exporteren van 3D-inhoud.
De bibliotheek ondersteunt de belangrijkste uitwisselformaten — OBJ, glTF 2.0 / GLB, STL, 3MF en COLLADA voor zowel import als export. FBX‑importer/exporter‑klassen bestaan, maar zijn nog niet gekoppeld aan automatische formaterkenning. De scene graph API weerspiegelt het model dat bekend is van 3D‑authoring‑tools: a Scene houdt een rootNode, elk Node kan kindknooppunten en entiteitsobjecten bevatten (Mesh, Camera, Light), en de transformatiehiërarchie is volledig toegankelijk voor lezen en schrijven.
Belangrijkste kenmerken
- Multi‑formaat I/O: Import en export OBJ (met
.mtlmaterialen), glTF 2.0 / GLB, STL (binair en ASCII), 3MF, en COLLADA van zowel bestandspaden als in‑memoryBufferobjecten. FBX-ondersteuning is nog niet gekoppeld aan automatische detectie. - Scene graph API:
Scene,Node,Mesh,Camera,Lighthiërarchie met volledig ouder/kind‑beheer; doorloop knooppunten recursief vianode.childNodes - PBR-materialsysteem: Lambert, Phong, en PBR (metallic/roughness) materialen toegankelijk via
node.entity.material - Mesh-bewerkingen: Toegang tot ruwe vertex-gegevens via
mesh.controlPoints(array vanVector4), polygoonindices viamesh.polygonCount, en vertex-elementkanalen viamesh.getElement() - Wiskundige hulpprogramma’s:
Vector2,Vector3,Vector4,Matrix4,Quaternion, en begrenzingsvaktypen voor ruimtelijke berekeningen - Animatiesysteem: Keyframe-animatie met
AnimationClip,AnimationChannel, en interpolatiecurves (lineair, Bezier, TCB-spline) - Formaat-specifieke opties: Per-formaat
LoadOptions/SaveOptionsklassen regelen coördinatenomkering, schaal, materiaallading en meer
Aan de slag
Installeer via npm. Node.js 18 of hoger is vereist; TypeScript 5.0+ wordt aanbevolen.
npm install @aspose/3d
Laad een OBJ‑bestand en inspecteer de scene:
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`);
}
}
Exporteren naar glTF
Sla elke geladen of geconstrueerde scene op als glTF 2.0 binary (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');
De bibliotheek detecteert automatisch het uitvoerformaat aan de hand van de bestandsextensie. Geef een GltfSaveOptions instantie voor controle over PBR-materiaalinsluiting, texturen en binaire versus JSON-codering.
Scèneconstructie
Bouw een scène programmatisch en exporteer deze:
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');